UPDATE:
I put this update here before the original first posting so those of you who need this info don't have to scan through this topic to find the answer.
I was able to code my Adafruit Trinket M0 to measure the SES pulses to 1 ms accuracy when the ECM is in DMDIAG Mode (ALDL Connector pins A and B shorted together). The Trinket inputs can only handle 0V to 3.3V, and because the SES signal is floating 12V (through the SES lamp) and GND, I put in a 1KOhm Resistor and 3.3V Zener Diode before the input to limit the 12V to 3.3V and thus not destroy the Trinket pin. Although my Fiero is not throwing any Error Codes, the fact that it blinks Error Code 12 three times (in this case) was sufficient for me to determine the overall timing for any Error Code sequences.
By the way, I didn't use the Paper Clip trick for DMDIAG Mode, I have a 2A (Gray) Mini Fuse (Blade type) that just fits into the contacts... it works better than a Paper Clip. I keep it in my Ash Tray. I removed the SES bulb from the Instrument Cluster and connected an Insulated Alligator Clip to the lower SES lamp contact on the printed circuit board (making sure it didn't short to any other contacts). I also connected the Trinket GND to the Key Release Lever on the Steering Column. I turned on the Ignition and wrote down the following observations from the Trinket messages (via the Arduino IDE Monitor).
My SES Error Code Blink Timing results are:
Accuracy of Measurements +/- 1 ms
Digit Count On Time: 400 ms +/- 10 ms
Digit Count Off Time: 400 ms +/- 10 ms
Off Time Between Digits: 1200 +/- 30 ms
Off Time Between Error Codes: 3200 +/- 150 ms
Example:
Error Code 12 blinking 3 times and then repeating continuously (indicates no errors):
On 402 ms
Off 1208 ms
On 402 ms
Off 403 ms
On 402 ms
Off 3320 ms
------------------------
On 403 ms
Off 1207 ms
On 403 ms
Off 402 ms
On 403 ms
Off 3220 ms
-------------------------
On 402 ms
Off 1208 ms
On 402 ms
Off 403 ms
On 402 ms
Off 3221 ms
--------------------------
Repeat continuously
I actually monitored this for many cycles to determine the tolerances. The Off Time Between Error Codes seemed to vary the most, so I specified it as a very liberal 150 ms tolerance. The others were "tighter" readings so I specified them with more conservative tolerances.
ORIGINAL POST:
Hello, you Fiero Gurus...
Does anyone have a reference for the exact pulse timing of the Error Codes using the SES lamp on Fieros?
I know all the Codes, but I don't have an oscilloscope handy where I can measure the pulses accurately. A stop watch is not accurate enough using "human" timing.
Digit Count On Time, Digit Count Off Time: /----------\_______/------ Next Count of Digit
Time Between Digits: -----\_________________/------ Next Digit
Time Between Error Codes: -----\_____________________________________/----- Next Error Code
In milliseconds with tolerance to +/- milliseconds is what I need.
I am programming an Arduino UNO to measure the pulses and pauses down to the millisecond (within tolerance) to determine the codes by electronic measurement rather than visual observation.
Thanks.
------------------
Paul Romsky
[This message has been edited by Romsk (edited 11-18-2024).]