|
Error Code Timing (Page 1/1) |
|
Romsk
|
NOV 16, 09:36 PM
|
|
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).]
|
|
|
IMSA GT
|
NOV 17, 12:39 PM
|
|
I know zero about the Arduino but can it be programmed to learn the pulses as they occur? Then you modify the program for the other codes once it has gotten an accurate learned measurement of 1 SES event?
For example, you manually create a code 32, it learns the pulse, then you apply that pulse measurement to the rest of the codes.[This message has been edited by IMSA GT (edited 11-17-2024).]
|
|
|
Romsk
|
NOV 17, 09:05 PM
|
|
Thanks for the reply. My question was about the pulses coming from the ECM via the SES signal to blink error codes. Not about the Arduino, but I hear you. Nobody seems to know how long the light blinks... I found things like: about half a second on then half a second off, when I am looking for something like a spec: On 500ms +/- 50ms... stuff like that.
I had an ephifany today (then I read your reply... I think we are on the same page). I designed my own ALDL Adapter for a Fiero ALDL Monitor GUI I wrote (I have been using it for years). Its based on an Adafruit Trinket M0 (similar to an Arduino UNO). I temporarily replaced the code in it today to be a simple SES pluse measurement tool. I will plug it into my Fiero ALDL Connector. I will wire the SES signal to one of the unused pins on the connector. It will put the ALDL Link in DMDIAG Mode and measure the blinks on and off in milliseconds and display them so I can write down the timing of the pulses. Since I have no Error Codes in my Fiero, it will still blink Error Code 12 three times. That is enough for my measurement code to get all the measurements I need, then I will restore the code in the Adapter to work with my GUI again.
I am going to try it tomorrow and I will post what I find.[This message has been edited by Romsk (edited 11-17-2024).]
|
|
|
|