Cummins Specific PID's

EverydayDiesel

I drink diesel
Joined
Feb 12, 2016
Messages
196
This is not really specific to EFI Live but I think this is the best place to ask...

Can any one please tell me where I might find the cummins specific PID's

Here is the standard
https://en.wikipedia.org/wiki/OBD-II_PIDs

But where are the others that are specific to cummins, like fuel rail pressure, boost, trans gear etc

Where does one find these at?
 
How does one view a. Bbx

Sent from my Moto X using Tapatalk
 
you view it with efi live but what I am looking for is the cummins specific pids down at the binary level (no efi live)

so I would hook up a odbii scanner to get the raw CANN bus data and I would reqest "0C" which would then return me a two digit code that could then tell me the RPM by using the formula 256 firstdigit + seconddigit / 100 to get the rpms.

Essentially I am writing the scan tool of efi live but one that intergrates into my pc (yes I have a linux based pc in my truck)
 
Not shabby. Talk to Jory. He nailed down quite a few PID's in the interest of viewing on his Murphy unit

Sent from my Moto X using Tapatalk
 
thanks, i sent him a pm

hopefully he will respond in this thread. if not I will build a packet sniffer
 
Build build build. I'm not sure what all he was able to decipher. Most of the threads I just reviewed he expressed frustration

Sent from my Moto X using Tapatalk
 
I want this too! I use Torque and a Bluetooth OBD2 dongle, but I can barely read anything off my truck. Granted... It's a 12v. ;-)

The Ford one's are public and easy to find.
 
you view it with efi live but what I am looking for is the cummins specific pids down at the binary level (no efi live)

so I would hook up a odbii scanner to get the raw CANN bus data and I would reqest "0C" which would then return me a two digit code that could then tell me the RPM by using the formula 256 firstdigit + seconddigit / 100 to get the rpms.

Essentially I am writing the scan tool of efi live but one that intergrates into my pc (yes I have a linux based pc in my truck)

I've been out of pocket....but here I is. :D

So, what I've managed to figure out with a little help from another person. This works on my 2009....I think 2007.5-2009 are the same. I have no idea if it applies to any other year model. It's not as easy as sending a two digit code.

The ECM address is 0x000007E0. Any response will be that address plus 8 so the responses come from 0x000007E8. You will need to put the ECM into "diagnostic" mode by sending it a string of bits. Then you will request the blocks of data you want. The messages to and from the ECM will be 8 bytes consisting of 8 bits each. The RPM is located byte 6 and 7 from the PID 0x21 located in block 22.

That is the one paragraph response....so chew on that for a while and see if it gets you anywere.

My problem is that I can't seem to get the timing down. I know exactly what my tuner is sending and what comes back....but I just can't make it respond to requests that I send. Basically all I'm doing it parsing out the data captured from the bus as it goes past my display to the programmer. The programmer is doing all the requests, I just know where all the data is buried in all the packets.
 
So I would hook up a odbii scanner to get the raw CANN bus data and I would reqest "0C" which would then return me a two digit code that could then tell me the RPM by using the formula 256 firstdigit + seconddigit / 100 to get the rpms.

So I'm not sure what you mean by digit....but bytes are made up of bits. And I'm also not sure where you got your info about "just request a 0C" and get back a two digit code. Jesus, I wish it were that simple. For example, the RPM comes back on bytes 6 and 7. If those bytes are 0x15 and 0xD4, you combine them either Big Endian or Little Endian (tells you which byte to put first). In this case, it is Big Endian....so it would be 0x15D4. Enter 15D4 into your scientific calculator and divide that by 8. It equals 0x2BA which converts to 698 decimal which is your RPM....which is the RPM my truck was idling at when I captured the data 0x15D4. This at least works on an '07.5-'09 Cummins. I can't speak for anything else. Might work, might not. But it does show the complexity of this bullshidt OBD crap. J1939 is so much easier. Everything has it's own PID and they are an industry standard. Way less of this proprietary OEM bull crap.

Transmission gear, pressure, and temp comes from the body control module at 0x000007E1. Line pressure is Little Endian, it is the exception. :D
 
Last edited:
The ECM address is 0x000007E0. Any response will be that address plus 8 so the responses come from 0x000007E8. You will need to put the ECM into "diagnostic" mode by sending it a string of bits. Then you will request the blocks of data you want. The messages to and from the ECM will be 8 bytes consisting of 8 bits each. The RPM is located byte 6 and 7 from the PID 0x21 located in block 22.

Thank you for the reply.

I am just a c/c++ developer so bare with me ;)

When you say the ECM "address" is 2024 I will assume that you are not talking about the boot loader but rather the first EPROM address. Do we know the ending address?

I have no problems querying the CANN BUS while sending and receiving data. The true problem is that once I read the data, I do not know the units associated so that I can convert the data. To combat this problem I am in the process of building an arduino CAN-BUS sniffer to log the raw data coming from the ODBII port. I will run minimal parms on the scanner, log, change one of the params to what I am after, log and compare the delta

My opinion is that you are too low level as most of the scanning devices handle the CAN BUS specifics automatically. For this exercise, we just need to know the PID's and the units that the ecm stores these values so we can convert to what we know (like psi, fahrenheit).


My problem is that I can't seem to get the timing down. I know exactly what my tuner is sending and what comes back....but I just can't make it respond to requests that I send. Basically all I'm doing it parsing out the data captured from the bus as it goes past my display to the programmer. The programmer is doing all the requests, I just know where all the data is buried in all the packets.

I am not sure what you mean by timing. Once you get the pid's down, you would basically setup a thread to handle the query, send the AT command and lock the thread until the ECM sent the response, then use a call back to handle the results. I have had great success doing this for the standard ODBII PIDs and now I am looking for cummins specific ones.


If you have raw data that you have captured you should post it up and we can look at it.
 
Are you going to Ennis for the NHRDA finals in a few weeks? I think we need to have a beer and discuss nerd stuff. :D

I do have sniffed messages and I also have all following parameters displaying which means I know the conversion factors and where all the data bytes are in the PID's. I think if you teach me how to talk to the ECM I can decipher the data for ya for the Cummins.....but I'm not going to post up 2 years worth of tinkering online.

I have an off-the-shelf programmer and it is doing all the communications with the OBDII diag port. I'm just capturing the data and parsing it out to parameters. I couldn't every make my display talk directly to the OBDII port. I'd love to though.

Come to Ennis and let's discuss.
 
I would love to have a cold one with you but I am scheduled to meet a client in vegas around that time. Another time perhaps.

I think this information should be free to the people, maybe its the freemason in me, so I will publish it when I get it.
 
I agree that it should be standardized and free and none of this "proprietary" junk. If it was the OEM's junk I'd post it. But I was helped by a few in the industry and don't want to throw their hard work online for all to see. I did my display for personal use only, I'm not selling anything. I'll be happy to help you work things out without dropping years of research to the public. :D
 
My God I hate bit maphs ?
I wish you guys wouldn't keep this to yourselves.

I do have this to add, it sounds like your hurdle is directly related to diag mode and what it entails. You should be able to query data just like any node on the network, no?

Sent from my Moto X using Tapatalk
 
Diag mode entails sending the ECM a string of bits and waiting on the diag ack response.
 
Back
Top