Need Help Decoding Automotive CAN Bus Extended Frame Bits

I did some digging online while waiting on some paint to dry and found a few things. A typical OBD2 CAN frame is the same length a typical J1939 frame. Out of the factory Cummins that were put in Dodge trucks use OBD2 messages. https://learn.sparkfun.com/tutorials/getting-started-with-obd-ii/all has a bit of info.

Other than that it could in the end be something totally between Cummins and the Holset and will just take a lot of trial and error. Good luck again.
 

Thread Starter

SaMirakle

Joined Mar 6, 2012
20
@geekoftheweek

Just to make sure things are what they are in my mind... At this point the only thing connected is the turbo actuator and nothing else. If so and those are your values in the spreadsheet then I don't think they are J1939 messages. The source address for a turbo actuator is 02. The PSU value I would think should only be 00 (Engine 1), 40 (Dash), or 255 (Global) since this is almost always the destination address in a J1939 message. There are a few exceptions. Parts of it look workable, but too much of it doesn't.
So that link I sent you is a shared collaboration I believe. The hex values that are on there seem to be input by others that have access to the Google document. If you input the following hex ID's: 18EEFF02, 18FFC502, 18FF0A02 you'll see the Source Address is 2 which would relate to the turbocharger.
I have a feeling since everything seems to be Dodge related you will need to look in to ODB2 type messages. As far as I know J1939 isn't used in passenger vehicles. You'll have to get into industrial, agriculture, buses, middle to large dump trucks, semis, and the like before it switches over.

Well I have 4 units now that are off of heavy duty Cummins ISX 15L engines and 1 of the HE351VE's which is off of a 6.7L medium duty truck. I'm almost positive they're all J1939 messages.

The Arduino stuff looks interesting and would be fun to play with and figure out. If I had an actuator laying around I'd already have it hooked up and be trying things out. Good luck!
So far it's been a fun but a bit aggravating! Any thoughts on how that one guy was able to control an actuator on a bench like that? He doesn't seem to have needed to reference any J1939 PGN or SPN data in his code.
 
Makes sense. Seeing all the Dodge stuff had me confused. Wasn't sure about the spreadsheet. If you just want to make the actuator move it wouldn't take much. Maybe be able to work up something this weekend. Most of the program in the links is to keep you from over boosting. As far as decoding what it spits out I won't be any help.
 
@SaMirakle I did a little more poking around and apologize for dragging this out. I have to admit I know enough to be dangerous and keeping that in mind never tried to do any commands and such with my own experimentation (playing with something on a bench is a lot different than something that will be going down the road). I don't know the ins and outs of Cummins either especially with the smaller ones so it took a bit for all that to soak in also. I did try your data in the spreadsheet and it looks like they may have a couple columns wrong which throws the whole thing off there also.

Anyways...

What it amounts to is the 0x0CFFC600 ID is what the turbo is reporting for the actuator position. The first two bytes of the data are the position, the 0x01 for the third byte I don't know, and the rest are undefined.

The first two bytes are backwards. To get the final value you would put the second byte in front of the first byte (0x####).

To change the position you would send 0x0CFFC600 for the ID, the first data byte would be 0 - 0xFF, the second data byte 0 - 0x01 (may be higher, but the Arduino program seems to stop around this area), the third byte would be 0x01, and the rest 0xff.

Hope that helps!
 
If you have a rate of interest in hacking in this area, the Solution Handbook is an obligatory $20 ante, certainly.

There are plenty of Internet guides on CAN-bus itself. ISO as well as SAE required particular habits for OBD use, yet the FALLEN LEAVE isn't always subject to any of that. ISO11898-1 descirbes the physical web link.
:cool:
It's not a challenging LAN. Unfortunately, it has few customer applications, so test devices and also adapters have a tendency to be exclusive, mystical, and also pricey. Each bus is a differential pair of signals, and no ground is required for some (separated) adapters. Unshielded twisted-pair wire is normally enough for connections. I utilize basic CAT5 ethernet, and have actually not made use of discontinuation when connecting into the DLC.

Both of the CANbus networks run at 500kbps. This isn't specifically demanding.

( From what I can inform, the Main CANISTER is extra 'saturated' with messages than the EV CONTAINER.).
The EV CAN contents can (barely) fit into a 230kbps RS-232 stream, so a few of the CAN-to-RS232 adapters might work.

The USB-connected adapters are preferred, given that they often tend to have 1Mbps+ data transfer readily available.

Adapter instances are:.
ValueCAN or NeoIV from Intrepid Equipments.
Acacetus CAN-uVCCM (limited to 56kbps! useless right here).
Lawicel, both RS-232 and also USB available.

;)
 

Thread Starter

SaMirakle

Joined Mar 6, 2012
20
@SaMirakle I did a little more poking around and apologize for dragging this out. I have to admit I know enough to be dangerous and keeping that in mind never tried to do any commands and such with my own experimentation (playing with something on a bench is a lot different than something that will be going down the road). I don't know the ins and outs of Cummins either especially with the smaller ones so it took a bit for all that to soak in also. I did try your data in the spreadsheet and it looks like they may have a couple columns wrong which throws the whole thing off there also.

Anyways...

What it amounts to is the 0x0CFFC600 ID is what the turbo is reporting for the actuator position. The first two bytes of the data are the position, the 0x01 for the third byte I don't know, and the rest are undefined.

The first two bytes are backwards. To get the final value you would put the second byte in front of the first byte (0x####).

To change the position you would send 0x0CFFC600 for the ID, the first data byte would be 0 - 0xFF, the second data byte 0 - 0x01 (may be higher, but the Arduino program seems to stop around this area), the third byte would be 0x01, and the rest 0xff.

Hope that helps!
Hey bud. Thanks for taking the time to dig some more. I hope your back isn't too achy!

So how did you match that hex id to the turbo actuator position?
 
@SaMirakle I found the hex id in the arduino program. Unfortunately it is the only one in there so the rest the actuator spits out will have to stay a mystery for now.

The digging was no problem. After spending a couple hours sorting like 60 pounds of tubular rivets that fell off the back of a trailer while replacing hinges I needed something to make me feel smart.
 
Last edited:
Top