A blog of robotics, electronics, mechanics, programming, and engineering.
Pictures, source code, circuit diagrams, ideas, thoughts, drawings, sketches and real-life goofups.
Showing posts with label serial. Show all posts
Showing posts with label serial. Show all posts
Wednesday, January 10, 2018
Decoding GM's ALDL with Teensy 3.6
I want to log my Jeep's Engine Control Module (ECM) diagnostic data reliably and inexpensively any time the vehicle is running so I can tune it to pass emissions tests and reduce pollution.
To do that, I am using a new Teensy 3.6 microcontroller to first decode the data stream out of the ECM and then store it on a microSD card for later retrieval.
My Jeep is running a retrofitted General Motors #1227747 ECM, which is the brains of a mid-80's Throttle Body Injection (TBI) system found on Chevy and GMC trucks.
The ECM, which predates OBDII systems, spits out a serial data stream called Assembly Line Diagnostic Link (ALDL) at 160 baud. This data stream protocol is nothing like plain old RS-232 serial protocol, however...
Friday, April 30, 2010
RS-232 to TTL level shifter
While working on equipping Pokey with a bluetooth modem (articles forthcoming), I found that I needed an RS-232 to TTL level shifter, so I could safely hook up the modem to the PC for troubleshooting. I probably should've saved the time and bought one from Sparkfun Electronics. But, it was fun to build. Here's how.
A re-purposed computer mouse cable with PS/2 connector plus a DB9 adapter provided the connectivity to the computer on one end and the bluetooth modem on the other. Some web searching uncovered a few suitable circuits. I selected the SparkFun diagram (pdf), which I drew up in Eagle, then laid out a board to fit into one of the small enclosures I got from the TGIMBOEJ awhile back (a Hammond 1551KBK). Here are the Eagle files for the project.
Fabricating the PCB went easier this time than in prior projects. I used single-sided board this time and the transfer went really well too. Instead of using just the sponge, I soaked the board in pure ferric chloride for about a half hour then scrubbed with a sponge (and no water this time!). The copper came off lickety split. Took about 2 or 3 hours from inception to completed device. Not bad!
I'll admit that the circuit didn't work the first time I tried it, but a little bit of troubleshooting and rewiring had it working perfectly in no time! What's nice is that I can now use this for all kinds of serial communications projects and it is dandy for troubleshooting communications.
A re-purposed computer mouse cable with PS/2 connector plus a DB9 adapter provided the connectivity to the computer on one end and the bluetooth modem on the other. Some web searching uncovered a few suitable circuits. I selected the SparkFun diagram (pdf), which I drew up in Eagle, then laid out a board to fit into one of the small enclosures I got from the TGIMBOEJ awhile back (a Hammond 1551KBK). Here are the Eagle files for the project.
SparkFun Circuit Diagram in Eagle
POV-Ray Rendering With Eagle3D
Fabricating the PCB went easier this time than in prior projects. I used single-sided board this time and the transfer went really well too. Instead of using just the sponge, I soaked the board in pure ferric chloride for about a half hour then scrubbed with a sponge (and no water this time!). The copper came off lickety split. Took about 2 or 3 hours from inception to completed device. Not bad!
The etched and drilled level shifter PCB
The populated circuit board, enclosed, and wired
Completed RS-232/TTL Level Shifter
I'll admit that the circuit didn't work the first time I tried it, but a little bit of troubleshooting and rewiring had it working perfectly in no time! What's nice is that I can now use this for all kinds of serial communications projects and it is dandy for troubleshooting communications.
Subscribe to:
Posts (Atom)