Wednesday, August 31, 2011

Check Engine Light, the Automobile Industries Blue Screen of Death!

Recently I had to replace the transmission in my 2002 Chevy Impala; it has 170,000 miles on it, but I wanted to keep it running for at least another couple years. Within 2 days of the having the new transmission..... which I had to sell a kidney to pay for, the Check Engine light came on...... Frustrating!
This whole experience made me think of my Masters project I did at University almost 10 years ago. I took an Altera FPGA development board loaded with a Nios 16-bit softcore CPU and had that communicate to my car's On Board Diagnostics Port (OBDII) and relay engine sensor data and fault codes to an Ericsson TDMA cell phone. The cell phone would send an SMS message to the local Wireless carrier's server which would parse the data, see my header and relay that SMS message to the University's server which was running an ASP script I wrote. That ASP script then posted all the data on a secure website, so all I had to do was login to a computer (smart phones weren't around back then) and I could see my vehicles diagnostic data. This was before OnStar did anything this useful.

It was a fun project. The Nios softcore CPU was way overkill, but it was fun playing with the latest and greatest techology circa 2002.

I used an Elm323 dev. board to communicate to the OBDII port on my car using RS232 AT like commands. They still make a very similar board; Sparkfun also sells one too.

Below is a copy of my Thesis that describes the project and has all the source code listed at the end. The appendices have a lot of information on how On Board Diagnostics works in vehicles, but this information is almost ten years old now... still it is a good starting point for someone interested in learning about it.
Link to Thesis
Link to PowerPoint


  1. CircuitCellar has a good series on OBD the last three months if you are interested

  2. I need to renew my CircuitCellar subscription. I loved that magazine. I'll have to check out those articles. Thanks

  3. Wow you are like MacGyver, it sounds a little complicated.

  4. Just make sure to check your service manual in case you have electronic equipment such as radio or clock that needs reprogramming in which battery disconnection is not recommended. Finally after performing repairs on the culprit code, always go for a road test to confirm if the problem is fixed.

  5. When your check engine light comes on, it does not necessarily mean that you should automatically shift into panic mode. Instead, stay calm.