Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

machine hours logging #107

Open
mbroger opened this issue Oct 26, 2020 · 15 comments
Open

machine hours logging #107

mbroger opened this issue Oct 26, 2020 · 15 comments
Labels
enhancement New feature or request

Comments

@mbroger
Copy link

mbroger commented Oct 26, 2020

Is there a way we can log machine hours? This would be useful for tracking machine maintenance, hours in each field, etc. By machine I mean hopefully the vehicle that the isoblue is attached to.

@aaron97neu aaron97neu added the enhancement New feature or request label Oct 26, 2020
@aaron97neu
Copy link
Member

From 10/26 Agrinovus OATS Team call. Should not be too difficult to implement but need to understand the need more and how we can make it useful. Could possibly integrate with VT. Are engine hours typically supplied on the CAN bus? That could be another integration

@mbroger
Copy link
Author

mbroger commented Oct 26, 2020

I do think machine hours is supplied on the CAN in one way or another, or multiple ways. Total machine hours since manufacture and machine hours since ignition switch turned on may both be available. Are the isoblues key on only? Or are they working at all times? That may be another way to do it.

@facastiblancor
Copy link
Collaborator

If that information is on the CAN bus, that would be great. We would have to look for PGN with that info. I am not sure if there is one in the J1939 Standard.

@mbroger Typically ISOBlue works with key-on only (unless a debug flag is set to keep IB on).

@aaron97neu
Copy link
Member

ISOBlues are typically key on only.

Most machines always have power provided to their diagnostic ports which is where a standard ISOBlue gets it's power. In that case, it is the ISOBlue's responsibility to turn itself off with the engine to avoid killing the battery but that means it's possible to do some tasks before turning off (IE recording the time that the machine was turned off).

Other machines only provide power to the diag port when key is on. In those cases ISOBlue will boot whenever power is restored but would not have a chance to do anything before power is lost.

We could probably record own own computed machine hours if needed or just use what we see on the bus. Is there a difference between "Engine Hours" and "Machine hours"? IE if I have the ignition in the "on" position but without the engine running, does that increment the counter?

My question was more how will you use this data. A maintenance tracker would be cool, but may be already implemented in the machine (Making one better than the built in one or having one that works on all your machines could certainty be a reason to do it anyways). What other uses could this data have? Could it enhance other data that we are collecting?

@abalmos
Copy link
Member

abalmos commented Oct 26, 2020 via email

@mbroger
Copy link
Author

mbroger commented Oct 26, 2020

tractor or combine. Implements too. Just wanting a way to track machine hours for maintenance. Engine hours is most important here. I've never seen a tractor that tracks maintenance. Maybe the new ones do but the 2011 we have in ABE does not. We could probably say "key on" hours is close enough too. I don't think most people will leave the tractor/combine in "key on" position without the engine running for very long for fear of running down the batteries.

@abalmos
Copy link
Member

abalmos commented Oct 26, 2020

I think something like:

cansend can0 59904#65253

should make the ECU send the 65253 PGN (if it is supported). Looks 65253's message is simple a 4 byte number of 1/20 of an hour.

Maybe when one of us has some time we can try it out on an ISOBlue in the field.

@abalmos
Copy link
Member

abalmos commented Oct 26, 2020

Er, bit ordering is LSB. So something like this:

./cansend can0 18EAFF80#E5FE000000000000

according to: https://copperhilltech.com/blog/monitoring-sae-j1939-data-using-the-raspberry-pi-plus-pican2-can-bus-interface-board-/

Of course, we would need to use an address not currently in use.

@aaron97neu
Copy link
Member

aaron97neu commented Oct 26, 2020

We don't have a robust mechanism for querying data from CAN (obviously we can't be in listen-only mode). I think is would be a good one to start out with before we move on to querying for more complicated data. This would force us to figure out baud rate detection and address claiming as well

@abalmos
Copy link
Member

abalmos commented Jan 23, 2021

@wang701 maybe this could be a neat demo? On the server side we could do some maintenance reminders?

Would be cool to show off edge computing though

@wang701
Copy link
Contributor

wang701 commented Jan 23, 2021

@abalmos yes but I doubt we can parse machine hour out of CAN data; we should be able to restart a timer whenever the machine turns on though.

Another similar idea is a machine fuel tank monitor. We can set up a threshold say 30%. Whenever the machine turns on and the fuel tank level is below this number, we can have ISOBlue send a notification to the server. The server decides whether or not to send a reminder to the user depending how many times this notification shows up on the server in like a 5 day period. This also depends on if we can parse out fuel tank level messages though.

Maybe something related to GPS coordinates (e.g., machine moved from one field to the other) will be good too.

@aaron97neu
Copy link
Member

The idea of a notification (presumably for the grain cart operator) when a combine grain tank is nearing full has been mentioned a few times as well

@abalmos
Copy link
Member

abalmos commented Jan 24, 2021

@wang701some of our CNH sheets show engine hour reports and PGN 65253 can be requested. Not sure if our machines support PGN 65253.

I like the idea of using CAN and then using IB to fill in a secondary data point when CAN is not good enough.

@abalmos
Copy link
Member

abalmos commented Jan 27, 2021

@wang701 Likely not, but we have a candidate message we could look at:

I think something like:

cansend can0 59904#65253

should make the ECU send the 65253 PGN (if it is supported). Looks 65253's message is simple a 4 byte number of 1/20 of an hour.

Maybe when one of us has some time we can try it out on an ISOBlue in the field.

This is a message you have to request. It doesn't come automagically

@wang701
Copy link
Contributor

wang701 commented Jan 28, 2021

That is cool. I think @facastiblancor tried it today in the skidsteer. We will see if there is anything interesting in the log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants