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 Mar 14, 2021 | 10:09 AM
  #81  
C4ProjectCar's Avatar
C4ProjectCar
Thread Starter
Drifting
 
Joined: Jul 2014
Posts: 1,426
Likes: 46
From: Lynchburg, VA
Default

Originally Posted by 93QuasarBlue
I tried using a serial stream capture app while logging, but it seems like it was a port conflist. I have maotes aldl usb setup and can log using tunercat. If I had more understanding of which capture tools will work I would love to be able to mirror the project on a 93 LT1 AT. These ECUs are very basic even comparing to the FSM there are only a dozen or so actual PIDs of interest. How can I capture serial streaming?
It was pretty simple with an Arduino. Arduino only has one UART (hardware required to read a serial datastream), so I used a simple sketch to set up software serial on pins 2 and 3 (software serial uses the CPU to decode the datastream; works just fine at this low baud rate). The sketch prints the serial to the Arduino IDE serial monitor, but that's not a super nice format, so I wrote a short Python script to capture that datastream and write it to file. With these two pieces of code, the process is this:
  1. Upload sketch to Arduino
  2. Unplug Arduino
  3. Run jumper wires from pins 2 and 3 to the proper pins on the ALDL port (think I've specified somewhere above which one goes to which)
  4. Connect the Arduino back to your computer's USB
  5. Run the Python script
  6. When finished, hit Ctrl + C to interrupt the script
  7. View your results in the generated file
Here's the Arduino sketch:
Spoiler
 
and the Python script:
Spoiler
 
The one tricky part is that you need to know at least one valid message ID so that the script can sync itself to the datastream. I currently have known_message_ids populated with values I've found from my car, but I'm not sure if these will apply to yours. You might just set the list equal to ['F0'] and see if that gets you data without a bunch of message length/checksum errors.

I plan to polish this script up and make it plot the data real-time, but it will be awhile before I can get to that.

Originally Posted by Bill Chase
How is the science experiment going?
I've mostly parked this as I've been figuring out details for the standalone. Today I might see if I can finish the real-time plotting code and hook the Arduino back up. I just need to figure out a way to keep the leads stuffed into the ALDL port. That's honestly been the most frustrating part about this whole project.
Reply
Old Mar 14, 2021 | 12:12 PM
  #82  
C4ProjectCar's Avatar
C4ProjectCar
Thread Starter
Drifting
 
Joined: Jul 2014
Posts: 1,426
Likes: 46
From: Lynchburg, VA
Default

I realized I messed up when I tweaked the ADX to read running total fuel. Here's a plot with it corrected. If this were truly a running total of fuel, you'd expect it to relate to the integral of RPM and injector BPW. That is, more injection events per second increases fuel consumption, as does a larger pulsewidth for a given injection frequency. I added this quantity (scaled so the slope matches and offset vertically so they're not stacked on top of each other) to the plot, and it closely follows the running total fuel consumption.




Again, it seems odd that the ECM would be calculating this value if it's not used in MPG calculations, and the fact that the datastream calls it "IPFUEL" makes me think it would be used for the instrument panel fuel display. That said, I don't see anything like this in the usual serial datastream, so I guess it's a moot point.
Reply
Old Mar 14, 2021 | 01:35 PM
  #83  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Originally Posted by C4ProjectCar
I've mostly parked this as I've been figuring out details for the standalone. Today I might see if I can finish the real-time plotting code and hook the Arduino back up. I just need to figure out a way to keep the leads stuffed into the ALDL port. That's honestly been the most frustrating part about this whole project.
There's no reason to give bad-faith replies the time of day.
Reply
Old Mar 17, 2021 | 08:54 AM
  #84  
C4ProjectCar's Avatar
C4ProjectCar
Thread Starter
Drifting
 
Joined: Jul 2014
Posts: 1,426
Likes: 46
From: Lynchburg, VA
Default

Originally Posted by Nomake Wan
There's no reason to give bad-faith replies the time of day.
Eh, figured I'd give him the benefit of the doubt. Maybe he's really just curious.

While trying to think through what the $41 bytes each are, I remembered the ECM has a calibration value for VSS pulses per mile. It would make sense that it sends this to the CCM like it does the injector flow rate ($41 byte 11), but none of the bytes fit. Byte 13 is constant over my log, but its value is 1, whereas the VSS PPM is 0xE6 in the tune. Byte 4 is also constant, but its value is 0, which doesn't make sense either.

I previously noticed the similarity between $10 B5 (which is known to be speed) and $41 B12. It almost looks like $41 B12 is an unfiltered version of $10 B5. I don't see why the CCM would have a VSS input if it gets speed from the ECM, but there are three options here:
  1. The ECM sends the CCM the calibration value. This would make the most sense, but it does not seem to be the case. I guess it's possible the ECM sends this value just one time on startup or something, but that would not match its behavior with the injector scalar.
  2. The ECM sends the CCM the calculated vehicle speed. In this case, the CCM VSS input would be useless?
  3. The calibration value does nothing. I can test this by changing the calibration value and seeing how $41 B12 responds.

I've still got a lot of bytes to decode: 3-10, 12, and 13. I'm going to try to make a systematic testing plan to figure them out.
Reply
Old Mar 17, 2021 | 12:01 PM
  #85  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Originally Posted by C4ProjectCar
Eh, figured I'd give him the benefit of the doubt. Maybe he's really just curious.

While trying to think through what the $41 bytes each are, I remembered the ECM has a calibration value for VSS pulses per mile. It would make sense that it sends this to the CCM like it does the injector flow rate ($41 byte 11), but none of the bytes fit. Byte 13 is constant over my log, but its value is 1, whereas the VSS PPM is 0xE6 in the tune. Byte 4 is also constant, but its value is 0, which doesn't make sense either.

I previously noticed the similarity between $10 B5 (which is known to be speed) and $41 B12. It almost looks like $41 B12 is an unfiltered version of $10 B5. I don't see why the CCM would have a VSS input if it gets speed from the ECM, but there are three options here:
  1. The ECM sends the CCM the calibration value. This would make the most sense, but it does not seem to be the case. I guess it's possible the ECM sends this value just one time on startup or something, but that would not match its behavior with the injector scalar.
  2. The ECM sends the CCM the calculated vehicle speed. In this case, the CCM VSS input would be useless?
  3. The calibration value does nothing. I can test this by changing the calibration value and seeing how $41 B12 responds.

I've still got a lot of bytes to decode: 3-10, 12, and 13. I'm going to try to make a systematic testing plan to figure them out.
You should be checking your FSM. If you check the Electrical Diagnostic section for the VSS (8A-33 for my 94-95), you'll see that the raw VSS signal goes to the ECM/PCM, the ECM/PCM then operates on it to create a uniform 4000 PPM output signal, and it's that output signal that's wired to the "VSS" lines on the CCM, cruise control module, and radio control head (for speed-compensated volume control).
Reply
Old Mar 17, 2021 | 12:37 PM
  #86  
C4ProjectCar's Avatar
C4ProjectCar
Thread Starter
Drifting
 
Joined: Jul 2014
Posts: 1,426
Likes: 46
From: Lynchburg, VA
Default

Right you are. Somehow I missed that on my previous read-through, but the VSS raw output goes to the ECM, which then passes a 4k PPM signal to the CCM and a couple other systems.

I wonder why the $10 message has a filtered speed output, while $41 has unfiltered. I'm still not quite sure how/why the $10 and $41 messages are different. They both appear to be broadcast data from the ECM, so I don't see why they would need to be separate messages.

Last edited by C4ProjectCar; Mar 17, 2021 at 12:41 PM.
Reply
Old Mar 17, 2021 | 01:46 PM
  #87  
Nomake Wan's Avatar
Nomake Wan
Drifting
 
Joined: Apr 2020
Posts: 1,925
Likes: 610
From: Orange, CA
Default

Originally Posted by C4ProjectCar
Right you are. Somehow I missed that on my previous read-through, but the VSS raw output goes to the ECM, which then passes a 4k PPM signal to the CCM and a couple other systems.

I wonder why the $10 message has a filtered speed output, while $41 has unfiltered. I'm still not quite sure how/why the $10 and $41 messages are different. They both appear to be broadcast data from the ECM, so I don't see why they would need to be separate messages.
If I were to float a theory, I'd say it's in the name of the connector itself--Assembly Line Diagnostic Link. It may not be particularly useful to one of us, but it could be useful for the people who were building and testing them originally.
Reply




All times are GMT -4. The time now is 02:20 PM.

story-0
Top 10 DOs and DON'Ts for Protecting Your Convertible Top!

Slideshow: How to Protect A Convertible Top: 10 DOs & DON'Ts

By Michael S. Palmer | 2026-04-03 00:00:00


VIEW MORE
story-1
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-2
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-3
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-4
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-5
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-6
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-7
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-8
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-9
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