oats-center / isoblue

ISOBlue Hardware, Avena software, and Deployment Files
MIT License
20 stars 9 forks source link

machine hours logging #107

Open mbroger opened 3 years ago

mbroger commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

Is this engine hours for a tractor or usage hours for an implement? There is the J1939 standard PGN 65253 which can send engine hours upon request. I believe we have also seen a 1 per second engine-seconds message on CNH machines as well.

Andrew

mbroger commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

@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 commented 3 years ago

@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 commented 3 years ago

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 commented 3 years ago

@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 commented 3 years ago

@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 commented 3 years ago

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