Miata ECU and Car Hacking


A few years ago I had purchased the Car Hacker’s Handbook (Figure 1) from No Starch Press as I was interested to see what that book taught. I work in software and did some reverse engineering for a few years, so with the current Miata project it made sense to learn some tricks of hacking the car software (or firmware).

Figure 1. Car Hacker's Handbook Figure 1. Car Hacker’s Handbook (Source: No Starch)

Chapter 6 and 7 in the book talk about ECU (engine control unit) hacking and setting up a test bench. So I purchased an actual 1999 NB Miata ECU and instrument cluster (Figure 2) from a seller on Facebook who was selling their car for parts. In all it cost me $122 including shipping which was quite inexpensive. So I will be starting another journey into another rabbit hole of ECU tuning and understanding what the ECU is capable of. Looks like my limited knowledge of electronics and the oscilloscope, multimeters and logic analyzers that I have sitting around will come in handy.

Figure 2. ECU and Instrument Cluster Figure 2. The ECU and Instrument Cluster I purchased off Facebook

I opened the ECU cover (Figure 3) to reveal the internal electronic board. I took pictures of it so that I could find details on the chips that were used on the board. The aim of this task would be to build an ECU simulator. This would help me learn more about the way the engine works using the ECU. However, I did not buy the wiring harness from the seller who sold me the ECU and the instrument cluster as he did not have it taken out. It is about $80 on eBay as of today, but I am unsure of whether I need it or not.

Figure 3. ECU cover Figure 3. The ECU is enclosed in a secure aluminum box

Figure 4. ECU board front Figure 4. This is the top (front) view of the ECU board

Figure 5. ECU board back Figure 5. This is the bottom (back) view of the ECU board

I took close-up shots of the main chips on the board that potentially might have some code running on them. IC699 in Figure 6 specifically looks like it will be hosting most of the code that controls the engine. Some of these chips might just be memory chips, but I do not know that yet. The actual model names of these chips are on the chip themselves and the reference names ICxxx are based on the board schematic diagram.

Figure 6. ECU IC699 Figure 6. IC699 points to the largest chip on the board

Figure 7. ECU IC698 Figure 7. IC698 points to another large chip on the board

Figure 8. ECU IC999, IC799 and IC299 Figure 8. IC999, IC799 and IC299 chips on the board

Figure 9. ECU IC599 Figure 9. IC599 (zoom in to see model number) on the board

Figure 10. ECU IC499 Figure 10. IC499 (zoom in to see model number) on the board

Figure 11. ECU IC498 Figure 11. IC498 (zoom in to see model number) on the board