C4 Tech/Performance L98 Corvette and LT1 Corvette Technical Info, Internal Engine, External Engine

Has anyone reverse-engineered ECM-CCM comms?

Thread Tools
 
Search this Thread
 
Old Jan 6, 2021 | 10:59 AM
  #21  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Originally Posted by phaze426
This is all good stuff. I'm going to see in the near future if I can just hook up a protocol analyzer and take a look at what's coming over the bus and make sense of it. I imagine that although the CCM is the master, there must need to be some query/response mode for it as well. I cannot imagine it's just constantly streaming out the VIN, for example, but rather must get some request from a scanner. I guess it IS possible it's just constantly streaming commands to the EMC, however.
It is not streaming out the VIN. If there is a way to request the VIN from the CCM (check the datastream definition for your year CCM), it will either be a Mode 1 request (which is the "request datastream" function), or a Mode 3 request (where you request the exact spot in the CCM's ROM where the VIN is stored; assuming you know that information).
Reply
Old Jan 6, 2021 | 11:18 AM
  #22  
phaze426's Avatar
phaze426
Instructor
All Eyes On Me
Liked
Loved
Community Favorite
 
Joined: Jul 2020
Posts: 227
Likes: 43
From: New Jersey
Default

Originally Posted by Nomake Wan
It is not streaming out the VIN. If there is a way to request the VIN from the CCM (check the datastream definition for your year CCM), it will either be a Mode 1 request (which is the "request datastream" function), or a Mode 3 request (where you request the exact spot in the CCM's ROM where the VIN is stored; assuming you know that information).
Thanks. I dug through the A111 datastream file and it's got details of everything in the Mode 1 request, but there's no mention of the VIN in there. It appears I need to read out from the ROM until I find something that matches up with a VIN-like pattern. I'll also have to look to find some documentation of the Mode 3 command since that's not in there. OR, I could be lazy and throw money at an eBay Tech1A and just snoop on the line while it reads it (the key barrier here being that once I have the Tech1A and can read it, my laziness might cross the threshold where I stop trying to figure out how to do it myself.
Reply
Old Jan 6, 2021 | 12:07 PM
  #23  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Originally Posted by phaze426
Thanks. I dug through the A111 datastream file and it's got details of everything in the Mode 1 request, but there's no mention of the VIN in there. It appears I need to read out from the ROM until I find something that matches up with a VIN-like pattern. I'll also have to look to find some documentation of the Mode 3 command since that's not in there. OR, I could be lazy and throw money at an eBay Tech1A and just snoop on the line while it reads it (the key barrier here being that once I have the Tech1A and can read it, my laziness might cross the threshold where I stop trying to figure out how to do it myself.
If your CCM is A111, then you are absolutely correct, you cannot get the VIN from a Mode 1 request. And if you intend to dump the entire contents of the ROM rather than pinpointing an exact spot, I recommend going with Mode 2 requests instead (64 bytes at once versus 6 for Mode 3).

Best of luck!
Reply
Old Jan 16, 2021 | 04:00 PM
  #24  
C4ProjectCar's Avatar
C4ProjectCar
Thread Starter
Drifting
 
Joined: Jul 2014
Posts: 1,426
Likes: 46
From: Lynchburg, VA
Default

If anyone's interested, here's a picture of the FSM page that shows the CCM/ECM connection and another showing the VATS CCM-ECM link. Also, fun fact: ECM apparently stands for "electronic control module" in GM-land.




I just had an idea - could I just use my Arduino to sniff the serial line? I've read serial data with it before, and I don't see how this would be any different.
Reply
Old Jan 16, 2021 | 04:35 PM
  #25  
Mike in Boston's Avatar
Mike in Boston
Racer
20 Year Member
 
Joined: Feb 2000
Posts: 488
Likes: 28
From: Peabody MA
Default

I think most of this info is covered by previous links but I thought I'd add what I found that could be useful.

https://lukeskaff.com/projects/car/g...ace-scan-tool/

The above link has links that no longer work but I found them with the Wayback Machine
https://web.archive.org/web/20091027.../7727aldl.html
https://web.archive.org/web/20091027.../baud8192.html

-Mike
Reply
Old Jan 16, 2021 | 05:02 PM
  #26  
JoBy's Avatar
JoBy
Melting Slicks
25 Year Member
Liked
Loved
Community Favorite
 
Joined: Mar 2001
Posts: 2,149
Likes: 303
From: Timra, Sweden
Default

If you alreay have an Arduino ALDL sniffer you might find something interesting in attached zip file.
Attached Files
File Type: zip
Corvette-1990-ALDL.zip (13.9 KB, 16 views)
Reply
Old Jan 17, 2021 | 07:56 PM
  #27  
Mike in Boston's Avatar
Mike in Boston
Racer
20 Year Member
 
Joined: Feb 2000
Posts: 488
Likes: 28
From: Peabody MA
Default

I have a serial sniffer from a previous project and I just order an ALDL to serial adapter in hopes to understanding this stuff a little better. My goal is small initially, to get the rear defroster to work in a C68 equipped car without the stock ECU in the car. I know the CCM will only trigger the rear defroster relay if the engine is running. I just don't know if the CCM asks the ECU is it is running (RPM I assume) or if the ECU is always sending the data to the CCM so it already knows when the rear defrost button is pressed.

Finding a way to mimic more of the ECU functions would be a huge bonus for the community of stand alone ECU users.

-Mike
Reply
Old Jan 17, 2021 | 08:33 PM
  #28  
C4ProjectCar's Avatar
C4ProjectCar
Thread Starter
Drifting
 
Joined: Jul 2014
Posts: 1,426
Likes: 46
From: Lynchburg, VA
Default

Thanks for the links, Mike.

Do you need an adapter? I was thinking you could just wire the Arduino to the two serial pins. Although a cable would admittedly be cleaner...
Reply
Corvette Stories

The Best of Corvette for Corvette Enthusiasts

story-0

Top 10 Most Explosive Corvettes Ever Made: Power-to-Weight Ratio Ranked!

 Joe Kucinski
story-1

150 hp to 1,250 hp: Every Corvette Generation Compared by the Specs That Matter

 Joe Kucinski
story-2

8 Coolest Corvette Pace Cars (and Replicas) of All Time

 Verdad Gallardo
story-3

Top 10 Corvette Engines RANKED by Peak Torque (70+ Years of Muscle!)

 Joe Kucinski
story-4

Corvette ZR1X Will Be Pacing the Indy 500, And Could Probably Race, Too!

 Verdad Gallardo
story-5

Top 10 Corvettes Coming to Mecum Indy 2026!

 Brett Foote
story-6

Top 10 C9 Corvette MUST-HAVES to Fix These C8 Generation Flaws!

 Michael S. Palmer
story-7

10 Revolutionary 'Corvette Firsts' Most People Don't Know

 Joe Kucinski
story-8

5 Reasons to Upgrade to an LS6-Powered Corvette; 5 Reasons to Stay LT2

 Michael S. Palmer
story-9

2027 Corvette vs The World: Every C8 vs Its Closest Competitor

 Joe Kucinski
Old Jan 17, 2021 | 09:18 PM
  #29  
JoBy's Avatar
JoBy
Melting Slicks
25 Year Member
Liked
Loved
Community Favorite
 
Joined: Mar 2001
Posts: 2,149
Likes: 303
From: Timra, Sweden
Default

You can have a look at this:
https://github.com/z51bob/8192-Baud-ALDL-for-Arduino

The Arduino 8192 baud ALDL is already done.
  1. Arduino Rx1 and DIO 4 pins are connected together to the ALDL data pin "E" on the ALDL connector
  2. The Tx1 Arduino pin connects to the cathode of a 1n4001(or similar) diode with the anode connected to ALDL pin "E". This allows Tx to pull down pin "E" during transmission without interfering with the ECM serial output.
  3. Arduino GND is connected to ECM Gnd at ALDL pin "A"
  4. A 10K resisor between ALDL pins "A" and "E" puts the ECM into ALDL mode.
This code is for the early inteface with 160 baud also, and some code is related for that to sync switch over to 8192 baud.
It should be simple to change to 8192 baud only. Especially if you want to use it as a sniffer ans only read data.
Reply
Old Jan 17, 2021 | 09:28 PM
  #30  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

I was just about to say—that layout and code is for cars that have a 160 baud connection, and require a special command sequence to ask the ECM to switch baud rates.

Native 8192 ALDL cars like the ones this thread is talking about are wildly different. First, there’s no need for the 10k resistor or that diode. Just connect RX and TX together and jack it into pin 9 (pin M on the 90-93 cars). Then make sure you’re sharing the serial data ground. Also, there is no startup command required to request a baud rate change.

I think I mentioned this before, but if you’re trying to build an Arduino ALDL interface, you’re better off writing your own using the GM datastream definition files on Gearhead-EFI than trying to use that old 160 baud code.

Last edited by Nomake Wan; Jan 18, 2021 at 12:31 AM.
Reply
Old Jan 17, 2021 | 09:39 PM
  #31  
Mike in Boston's Avatar
Mike in Boston
Racer
20 Year Member
 
Joined: Feb 2000
Posts: 488
Likes: 28
From: Peabody MA
Default

Originally Posted by C4ProjectCar
Thanks for the links, Mike.

Do you need an adapter? I was thinking you could just wire the Arduino to the two serial pins. Although a cable would admittedly be cleaner...
It will probably be easier for me to start with a development environment I’m familiar with and that’s on a PC. I used the serial sniffer previously to watch what the DFI 6 box was doing and wrote a basic Windows based application that would let me update the fuel and ignition tables instead of the DOS based Calmap software. I’m hoping the same technique and tools will be useful here.

The arduino stuff sounds very promising and would be a great platform to use as a permanent solution but it isn’t something I’ve worked with yet.

I took the quick way and ordered the ALDL to serial adapter. It looks like pin M needs to run through an RS232 chip for serial communication to a PC. Something about 5 volts
versus 12 volts.

The thread already has more info than I’ve found in years. This kind of exciting.
Reply
Old Jan 17, 2021 | 09:50 PM
  #32  
C4ProjectCar's Avatar
C4ProjectCar
Thread Starter
Drifting
 
Joined: Jul 2014
Posts: 1,426
Likes: 46
From: Lynchburg, VA
Default

Wow, that's even simpler than I thought. Since what we want (MPG) isn't in the data stream definition, I think we're going to just have to watch the raw hex. If we ignore ABS/climate control communications, I don't think it should be too hard to single out the data we want. The trick will be figuring out what it means - I'm thinking recording serial data at idle for a reference of 0mpg and then at steady state cruise and noting the displayed mpg there.
I'm also not sure whether the ECM is transmitting MPG or just the info needed to calculate it. Since the instrument panel fuel consumption is a value in the bin, it makes sense to me that the ECM would be doing the calculation. If that's the case, we could just search the data stream for hex corresponding to the two MPG values.
Reply
Old Jan 18, 2021 | 12:18 AM
  #33  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Originally Posted by C4ProjectCar
Wow, that's even simpler than I thought. Since what we want (MPG) isn't in the data stream definition, I think we're going to just have to watch the raw hex. If we ignore ABS/climate control communications, I don't think it should be too hard to single out the data we want. The trick will be figuring out what it means - I'm thinking recording serial data at idle for a reference of 0mpg and then at steady state cruise and noting the displayed mpg there.
I'm also not sure whether the ECM is transmitting MPG or just the info needed to calculate it. Since the instrument panel fuel consumption is a value in the bin, it makes sense to me that the ECM would be doing the calculation. If that's the case, we could just search the data stream for hex corresponding to the two MPG values.
The MPG (and oil life) are both calculated by the CCM. We know this because the interface for controlling them goes directly to the CCM (the dash buttons to reset the oil life monitor, the fuel economy, etc). So it's entirely expected that these are not transmitted by any other computer.

Instrument panel fuel consumption isn't in the BIN; the calculated flow rate of the fuel system is, and this value is then used in the instrument panel calculations.

So both oil life and fuel mileage will not be found in the serial data on the ALDL bus. The CCM will be taking the necessary values and doing the math by itself (RPM, vehicle speed, oil temperature, fuel level, reported fuel system fuel flow rate, etc).

Last edited by Nomake Wan; Jan 18, 2021 at 12:20 AM.
Reply
Old Jan 18, 2021 | 01:44 AM
  #34  
JoBy's Avatar
JoBy
Melting Slicks
25 Year Member
Liked
Loved
Community Favorite
 
Joined: Mar 2001
Posts: 2,149
Likes: 303
From: Timra, Sweden
Default

I have been thinking about making the MPG in the dash work on mu 1984 too.
I got the old stock computer that has not been used for over 18 yeasrs or so, connected power pins and read serial data using WinALDL.
It is a 5-byte data stream. As in the newer, most of the calculations must be in the dash.

The plan is to add potentiometers to TPS and MAP and use an Arduino to great ignition reference pulses and speedometer pulses.

I have verified that TPS and MAP works by applying 5V and watching data in ALDL using 10k mode.

By manually pulsing the VSS pin to ground i got a few MPG.

By manually pulsing 12V thru a resistor to HEI Reference i got a few RPM.

In the MPG data stream the first 2 changed to 3 while manually creatign HEI pulses.



Reply
Old Jan 18, 2021 | 05:15 AM
  #35  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Please note, again, that the above information is wholly and utterly irrelevant with regards to CCM cars (1990-1996), which is what this thread is about. Pre-CCM cars do things much, much differently across the board and as such are probably not a good reference to use when trying to figure out how the CCM cars operate.
Reply
Old Jan 18, 2021 | 06:09 AM
  #36  
JoBy's Avatar
JoBy
Melting Slicks
25 Year Member
Liked
Loved
Community Favorite
 
Joined: Mar 2001
Posts: 2,149
Likes: 303
From: Timra, Sweden
Default

Originally Posted by Nomake Wan
Please note, again, that the above information is wholly and utterly irrelevant with regards to CCM cars (1990-1996)
I would not be surprised if the same information is used from the ECM. But ok, I will not share my findings.
Reply
Old Jan 18, 2021 | 06:17 AM
  #37  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Originally Posted by JoBy
I would not be surprised if the same information is used from the ECM. But ok, I will not share my findings.
Feel free to make your own thread regarding your pre-CCM research! It'll help all the people with 1984-1989 cars. It just so happens that this thread is specific to 1990-1996 cars, which operate completely differently.
Reply

Get notified of new replies

To Has anyone reverse-engineered ECM-CCM comms?

Old Jan 18, 2021 | 10:39 AM
  #38  
AliasJones's Avatar
AliasJones
6th Gear
 
Joined: Jan 2020
Posts: 6
Likes: 1
Default

Regardin CCM to dash info, the CCM dont send the actual values (speed, mpg and so on) to the dash, it just sends information which segments to light up att any given time.
Reply
Old Jan 18, 2021 | 11:40 AM
  #39  
C4ProjectCar's Avatar
C4ProjectCar
Thread Starter
Drifting
 
Joined: Jul 2014
Posts: 1,426
Likes: 46
From: Lynchburg, VA
Default

Originally Posted by Nomake Wan
The MPG (and oil life) are both calculated by the CCM. We know this because the interface for controlling them goes directly to the CCM (the dash buttons to reset the oil life monitor, the fuel economy, etc). So it's entirely expected that these are not transmitted by any other computer.

Instrument panel fuel consumption isn't in the BIN; the calculated flow rate of the fuel system is, and this value is then used in the instrument panel calculations.

So both oil life and fuel mileage will not be found in the serial data on the ALDL bus. The CCM will be taking the necessary values and doing the math by itself (RPM, vehicle speed, oil temperature, fuel level, reported fuel system fuel flow rate, etc).
That makes sense, but I don't think it 100% proves the CCM does the calculations. I recall reading somewhere (wish I could remember the source) that instant and average MPG are calculated differently: instant is based on injector flow, while average is based on the fuel sender unit. If this were true, it would be plausible that the ECM calculated instant MPG (since it's already doing all the fueling calculations) while the CCM calculated the average (since there's no reason to have the fuel sender go to the ECM).

In my car, resetting the oil life monitor requires some arcane combination of pressing the gas pedal and cycling the ignition. I don't think the CCM has access to the TPS, so either the ECM itself calculates oil life or it sends a signal to the CCM to reset oil life. It's possible that we can't generalize all the CCM cars due to the different ECMs used.

Originally Posted by AliasJones
Regardin CCM to dash info, the CCM dont send the actual values (speed, mpg and so on) to the dash, it just sends information which segments to light up att any given time.
This thread is to understand communications between the ECM and CCM, not the CCM and dash.
Reply
Old Jan 19, 2021 | 12:33 AM
  #40  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Originally Posted by C4ProjectCar
That makes sense, but I don't think it 100% proves the CCM does the calculations. I recall reading somewhere (wish I could remember the source) that instant and average MPG are calculated differently: instant is based on injector flow, while average is based on the fuel sender unit. If this were true, it would be plausible that the ECM calculated instant MPG (since it's already doing all the fueling calculations) while the CCM calculated the average (since there's no reason to have the fuel sender go to the ECM).

In my car, resetting the oil life monitor requires some arcane combination of pressing the gas pedal and cycling the ignition. I don't think the CCM has access to the TPS, so either the ECM itself calculates oil life or it sends a signal to the CCM to reset oil life. It's possible that we can't generalize all the CCM cars due to the different ECMs used.
That's actually a good point; and it jives with the other user who said he could get "everything except instant MPG" working. In fact, going back to the datastream for the 90-91 L98 (A115.ds), you can find this entry:

49 IPFUEL RUNNING TOTAL OF FUEL DELIVERED (MSB)
50 IPFUEL + 1 RUNNING TOTAL OF FUEL DELIVERED (LSB)
uSEC = ([N49]*256 + [N50])*15.26

"IPFUEL" certainly seems to be "Instrument Panel Fuel" to me. However, we can't get too excited, here. The datastream definitions for the 92-93 LT1 and 94-95 LT1 do not include any such value.

As to your oil life reset comment, are you sure? Here is the procedure according to Corvette Action Center: https://www.corvetteactioncenter.com...nitor-531.html
Reply



All times are GMT -4. The time now is 03:30 AM.

story-0
Top 10 Most Explosive Corvettes Ever Made: Power-to-Weight Ratio Ranked!

Slideshow: The 10 most explosive Corvettes ever built based on power-to-weight ratio.

By Joe Kucinski | 2026-05-20 07:23:03


VIEW MORE
story-1
150 hp to 1,250 hp: Every Corvette Generation Compared by the Specs That Matter

Slideshow: From C1 to C8 we compare every Corvette generation by the numbers.

By Joe Kucinski | 2026-05-12 16:54:12


VIEW MORE
story-2
8 Coolest Corvette Pace Cars (and Replicas) of All Time

Slideshow: Some Corvette pace cars became collectible legends, while others perfectly captured the look and attitude of their era.

By Verdad Gallardo | 2026-05-11 09:50:51


VIEW MORE
story-3
Top 10 Corvette Engines RANKED by Peak Torque (70+ Years of Muscle!)

Slideshow: Ranking the top 10 Corvette engines by torque output.

By Joe Kucinski | 2026-05-05 11:58:09


VIEW MORE
story-4
Corvette ZR1X Will Be Pacing the Indy 500, And Could Probably Race, Too!

Slideshow: A Corvette pace car nearly matching IndyCar speeds sounds exaggerated, until you look at the numbers.

By Verdad Gallardo | 2026-05-04 20:03:36


VIEW MORE
story-5
Top 10 Corvettes Coming to Mecum Indy 2026!

Among a rather large group of them.

By Brett Foote | 2026-05-04 13:56:44


VIEW MORE
story-6
Top 10 C9 Corvette MUST-HAVES to Fix These C8 Generation Flaws!

Slideshow: the top 10 things Corvette owners want in the C9 Corvette

By Michael S. Palmer | 2026-04-30 12:41:15


VIEW MORE
story-7
10 Revolutionary 'Corvette Firsts' Most People Don't Know

Slideshow: 10 Important Corvette 'firsts' that every fan should know.

By Joe Kucinski | 2026-04-29 17:02:16


VIEW MORE
story-8
5 Reasons to Upgrade to an LS6-Powered Corvette; 5 Reasons to Stay LT2

Slideshow: Should you buy a 2020-2026 Corvette or wait for 2027?

By Michael S. Palmer | 2026-04-22 10:08:58


VIEW MORE
story-9
2027 Corvette vs The World: Every C8 vs Its Closest Competitor

Slideshow: 2027 Corvette lineup vs the world.

By Joe Kucinski | 2026-04-24 16:12:42


VIEW MORE