PCM Diagnostics & Tuning HP Tuners | Holley | Diablo
Sponsored by:
Sponsored by:

DIY: Getting data from Holley CAN BUS

Thread Tools
 
Search this Thread
 
Old 12-14-2023, 04:45 PM
  #41  
TECH Resident
 
NSFW's Avatar
 
Join Date: Jan 2018
Posts: 853
Received 136 Likes on 104 Posts
Default

Originally Posted by LSswap
LMK if you have ideas for projects, even if you don't know how to get them done. I'm curious to see what people would like to see built.
I've been wanting something that fits into a standard 52mm gauge pod and uses a screen like this one with a microcontroller like this one plus a canbus interface. Peripherals optional, I'd be happy with just power, ground, and CAN.

The electronics is a little over my head but if you're interested in doing that part, I'm perfectly happy to do the software part. My main goal is basically to have a unified gauge that just tells me that everything is OK, or which thing is not OK, but there's other fun stuff I'd like to do as well, like a side-scrolling AFR chart. And since the screen supports touch, the driver could swipe through different gauges, which would be neat.

Separately, but relatedly, and simple enough to do on my own, I'm itching to build something that will log a bunch of data from the stock PCM and send it over CAN, using this module from Pete Sonntag (OBDX, LS Droid) and either Arduino MKR or Seeed XIAO for the CPU and canbus stuff. The parts are all here, and hoping to get it working between xmas and new year's since I have the week off.
Old 01-18-2024, 10:20 AM
  #42  
TECH Fanatic
Thread Starter
 
LSswap's Avatar
 
Join Date: Nov 2014
Posts: 1,169
Received 534 Likes on 341 Posts
Default

Originally Posted by NSFW
I've been wanting something that fits into a standard 52mm gauge pod and uses a screen like this one with a microcontroller like this one plus a canbus interface. Peripherals optional, I'd be happy with just power, ground, and CAN.

The electronics is a little over my head but if you're interested in doing that part, I'm perfectly happy to do the software part. My main goal is basically to have a unified gauge that just tells me that everything is OK, or which thing is not OK, but there's other fun stuff I'd like to do as well, like a side-scrolling AFR chart. And since the screen supports touch, the driver could swipe through different gauges, which would be neat.

Separately, but relatedly, and simple enough to do on my own, I'm itching to build something that will log a bunch of data from the stock PCM and send it over CAN, using this module from Pete Sonntag (OBDX, LS Droid) and either Arduino MKR or Seeed XIAO for the CPU and canbus stuff. The parts are all here, and hoping to get it working between xmas and new year's since I have the week off.
That round display and controller look awesome. That controller looks like it has bluetooth. So now, all you need is to get the data from GM and send it over the bluetooth. The platform I designed supports canbus and bluetooth and there already exists a library for OBDII on arduino, so I don't see a problem getting data from a GM ECM from the OBDII port and sending it to the bluetooth of the round dial displays. If you are already playing with one of those displays and controllers, I can provide you with the hardware to get the info from OBDII and output to bluetooth. I haven't done it myself yet, but suspect it's doable with my new board.

Let me know if you're interested.

Does anyone know if there is an OBDII simulator? That would be the easiest way to get his going.
Old 01-18-2024, 10:22 AM
  #43  
TECH Fanatic
Thread Starter
 
LSswap's Avatar
 
Join Date: Nov 2014
Posts: 1,169
Received 534 Likes on 341 Posts
Default

Found this: OBDII simulator
Actually, now that I'm looking, there are lots of them out there.

and there seems to be some free stuff out there https://www.instructables.com/Arduino-OBD2-Simulator/

Last edited by LSswap; 01-18-2024 at 10:52 AM.
Old 05-14-2024, 12:26 AM
  #44  
Registered User
 
turboesky's Avatar
 
Join Date: May 2024
Posts: 1
Likes: 0
Received 0 Likes on 0 Posts
Default

This is a really cool project. Would it be possible to use this to take Class 2 serial data from an early LS1 5.7 and convert it into Racepak Vnet data? I am trying to use an early IQ3 that doesnt have the built in OBD2 module (street version).
Old 05-14-2024, 10:25 PM
  #45  
TECH Fanatic
Thread Starter
 
LSswap's Avatar
 
Join Date: Nov 2014
Posts: 1,169
Received 534 Likes on 341 Posts
Default

Originally Posted by turboesky
This is a really cool project. Would it be possible to use this to take Class 2 serial data from an early LS1 5.7 and convert it into Racepak Vnet data? I am trying to use an early IQ3 that doesnt have the built in OBD2 module (street version).
I'm not sure. Maybe this thread has something you're looking for: https://ls1tech.com/forums/conversio...j-1850vpw.html
Old 07-11-2024, 10:34 AM
  #46  
Registered User
 
crazybenn's Avatar
 
Join Date: Jul 2024
Posts: 2
Received 0 Likes on 0 Posts
Default

Hi! but if i plan to use my DIY dash with a termX (not Max) there's no way to read the CanBus? or do i need to buy an external device to make it possible?
Old 07-11-2024, 02:33 PM
  #47  
TECH Fanatic
Thread Starter
 
LSswap's Avatar
 
Join Date: Nov 2014
Posts: 1,169
Received 534 Likes on 341 Posts
Default

Originally Posted by crazybenn
Hi! but if i plan to use my DIY dash with a termX (not Max) there's no way to read the CanBus? or do i need to buy an external device to make it possible?
The hardware I described can read the CANBUS on the termX, but I don't have the list of can messages for the native bus. Some people out there have it. If you get info on the native messages, LMK, maybe I can help you then.
Old 07-11-2024, 02:42 PM
  #48  
Registered User
 
crazybenn's Avatar
 
Join Date: Jul 2024
Posts: 2
Received 0 Likes on 0 Posts
Default

well i can sniff the CanBus via a Teensy 4.0, I can say the first line look like a clock.. i think i found the MAT , maybe i found the CTS but not sure.. maybe the TPS also... 132 different adress! found the "topic" of a line is easy... for the formula, it's a mind blowing task! ... what's happen if i swith the canbus to Racepack instead of Holley... the Term X have only one CanBus port!
Old 07-31-2024, 08:54 AM
  #49  
Staging Lane
 
Kippdipp's Avatar
 
Join Date: Dec 2020
Location: Ohio
Posts: 51
Received 22 Likes on 11 Posts
Default

Originally Posted by crazybenn
well i can sniff the CanBus via a Teensy 4.0, I can say the first line look like a clock.. i think i found the MAT , maybe i found the CTS but not sure.. maybe the TPS also... 132 different adress! found the "topic" of a line is easy... for the formula, it's a mind blowing task! ... what's happen if i swith the canbus to Racepack instead of Holley... the Term X have only one CanBus port!
Please post log/trace
Old 07-31-2024, 09:31 AM
  #50  
Staging Lane
 
Kippdipp's Avatar
 
Join Date: Dec 2020
Location: Ohio
Posts: 51
Received 22 Likes on 11 Posts
Default

Originally Posted by LSswap
The hardware I described can read the CANBUS on the termX, but I don't have the list of can messages for the native bus. Some people out there have it. If you get info on the native messages, LMK, maybe I can help you then.
I've disassembled some firmware using Ghidra and found the attached function which is from the 7" Holley display which receives and sends CAN data to and from a Holley Terminator X.. Looks like index 0x90 corresponds to AFR from what I can tell. No idea if the command, target ID and other bits are similar to racepak but if they are then AFR would be 0x1F204000 (with serial masked) on the native bus (I think).

Edit: Found this string that does suggest Holley CAN does run at 1Mbps "sbin/ip link set can0 up type can bitrate 1000000 restart-ms 50 listen-only off"
Attached Files
File Type: txt
CAN_RX0_IRQHandler.txt (15.7 KB, 14 views)

Last edited by Kippdipp; 08-01-2024 at 06:40 AM.
Old 07-31-2024, 10:00 AM
  #51  
TECH Addict
 
TrendSetter's Avatar
 
Join Date: Dec 2004
Location: Florida
Posts: 2,129
Received 574 Likes on 427 Posts

Default

check out pages 91 and up
https://www.nhraracer.com/Files/Tech...ions_Rev10.pdf
is that what youre looking for?
Old 07-31-2024, 10:10 AM
  #52  
TECH Senior Member
iTrader: (7)
 
Project GatTagO's Avatar
 
Join Date: Mar 2003
Location: The City of Fountains
Posts: 10,186
Received 1,451 Likes on 916 Posts

Default

Originally Posted by Kippdipp
I've disassembled some firmware using Ghidra and found the attached function which is from the 7" Holley display which receives and sends CAN data to and from a Holley Terminator X. (also found that the native bus likely runs at 500kbps rather than 1mbs like Racepak). Looks like index 0x90 corresponds to AFR from what I can tell. No idea if the command, target ID and other bits are similar to racepak but if they are then AFR would be 0x1F204000 (with serial masked) on the native bus (I think).
The Holley Standard CAN doesn't share the CAN ID or the structure with Racepak. The Standard Holley CAN is 1Mbps.

Andrew
Old 07-31-2024, 10:28 PM
  #53  
TECH Fanatic
Thread Starter
 
LSswap's Avatar
 
Join Date: Nov 2014
Posts: 1,169
Received 534 Likes on 341 Posts
Default

Originally Posted by TrendSetter
check out pages 91 and up
https://www.nhraracer.com/Files/Tech...ions_Rev10.pdf
is that what youre looking for?
Thanks. The is the same data as the original link I provided on the first post in this thread. Unfortunaltely, the original link no longer works. The link you provided points to the same document that describes the racepak protocol. I fixed the link in the first page.
Old 08-10-2024, 02:09 PM
  #54  
Staging Lane
 
Kippdipp's Avatar
 
Join Date: Dec 2020
Location: Ohio
Posts: 51
Received 22 Likes on 11 Posts
Default

Take this with a grain of salt but from what I can gather reverse engineering the digital dash firmware, the normal Holley CANBUS IDs are similar to the Racepak protocol and also runs at 1mbps but has a slightly different structure and values for the ID:

Bits 28:28 – Command Bit (=0 for broadcast i think)
Bits 27:25 – Target ID (I think 101= broadcast)
Bits 24:22 – Source ID (haven't confirmed if 010 is hefi like Racepak but pretty sure it is)
Bits 21:11 – Target Serial (used as a channel # index, index #1 is RPM)
Bits 10:0 – Source Serial Number (11 bits)

So assuming the structure above, the CAN ID for RPM with the source serial number masked out (using 0xfffff800) would be 0x14100001.

For the data:
  • First 4 Bytes: This would be the Value field. These bytes are combined into a 32-bit value. I haven't found any evidence of a scale or offset factor being applied.
  • Second 4 Bytes: This would be the Status field. Usage is TBD.

RPM = (RxMessage.Data[1] << 8 ) | RxMessage.Data[0];

Example:
If the CAN message has:

CAN_ID = 0x14100001
RxMessage.Data[3] = 0x0
RxMessage.Data[2] = 0x0
RxMessage.Data[1] = 0x09
RxMessage.Data[0] = 0xC4

---------------
uint32_t RPM = RxMessage.Data[0] |
(RxMessage.Data[1] << 8) |
(RxMessage.Data[2] << 16) |
(RxMessage.Data[3] << 24);

Then:
RPM = 2500 RPM

My car is currently not operational or else I'd log and confirm. Anyone have a Holley CAN trace / log they can share?

Also think I found all of the other channel #'s but don't know if they directly correspond to the channel # index, but assuming they do then attached is the full list I found in the firmware.
Attached Files
File Type: txt
Holley Can IDs.txt (6.7 KB, 9 views)

Last edited by Kippdipp; 08-12-2024 at 11:43 AM. Reason: typo
Old 08-12-2024, 11:58 AM
  #55  
TECH Fanatic
Thread Starter
 
LSswap's Avatar
 
Join Date: Nov 2014
Posts: 1,169
Received 534 Likes on 341 Posts
Default

Originally Posted by Kippdipp
Take this with a grain of salt but from what I can gather reverse engineering the digital dash firmware, the normal Holley CANBUS IDs are similar to the Racepak protocol and also runs at 1mbps but has a slightly different structure and values for the ID:

Bits 28:28 – Command Bit (=0 for broadcast i think)
Bits 27:25 – Target ID (I think 101= broadcast)
Bits 24:22 – Source ID (haven't confirmed if 010 is hefi like Racepak but pretty sure it is)
Bits 21:11 – Target Serial (used as a channel # index, index #1 is RPM)
Bits 10:0 – Source Serial Number (11 bits)

So assuming the structure above, the CAN ID for RPM with the source serial number masked out (using 0xfffff800) would be 0x14100001.

For the data:
  • First 4 Bytes: This would be the Value field. These bytes are combined into a 32-bit value. I haven't found any evidence of a scale or offset factor being applied.
  • Second 4 Bytes: This would be the Status field. Usage is TBD.

RPM = (RxMessage.Data[1] << 8 ) | RxMessage.Data[0];

Example:
If the CAN message has:

CAN_ID = 0x14100001
RxMessage.Data[3] = 0x0
RxMessage.Data[2] = 0x0
RxMessage.Data[1] = 0x09
RxMessage.Data[0] = 0xC4

---------------
uint32_t RPM = RxMessage.Data[0] |
(RxMessage.Data[1] << 8) |
(RxMessage.Data[2] << 16) |
(RxMessage.Data[3] << 24);

Then:
RPM = 2500 RPM

My car is currently not operational or else I'd log and confirm. Anyone have a Holley CAN trace / log they can share?

Also think I found all of the other channel #'s but don't know if they directly correspond to the channel # index, but assuming they do then attached is the full list I found in the firmware.
That looks promising.

Obviously this needs to be bechtop tested and confirmed. I have a Simulator that can emulate all necessary sensors and cam and crank signals to run a Holley on a desktop. I also have a canbus processor that can interface with the Holley to test these codes. I don't have a Holley however.



Quick Reply: DIY: Getting data from Holley CAN BUS



All times are GMT -5. The time now is 12:52 AM.