Update (2018-07-13): Preassembled cables are now available on Tindie.
After getting the MoTeC M48 EMP software installed in Dosbox as described previously, I naively assumed the M48 just connected with normal RS232 serial. I mean, there’s a DB9 hanging under the dash and the EMP software is looking for a serial port. Of course it couldn’t be that simple.
It seems that MoTeC decided to save a dollar in the M48 by not including RS232 level shifters. Instead, it has 5V TTL serial on non-standard pins. MoTeC helpfully offers cables, called PCI and CIM, to bridge the gap from an RS232 serial port to the ECU. The downside? These cables are practically unobtainium (or at least cost $220 for one). Knowing that it’s just TTL serial, why is this cable so expensive? Can’t I just make one?
MoTeC offers a wiring diagram for the M48 but it doesn’t tell you what signals are on the DB9 pins. At least they were clear that pin 6 is ground. After some time with a voltmeter and oscilloscope, I figured out the following pinout:
DB9 Signal ECU 1 +5V 24 2 N/C 3 N/C 4 N/C 5 TXD 11 6 GND 27 7 ??? 8 N/C 9 RXD 9
So, what’s inside that $220 cable? Probably a MAX232. A simpler, modern alternative is a FTDI 5V cable from Sparkfun for $20. Either make a connector to adapt to DB9 or wire directly into the ECU connector pins.
Now the M48 EMP software running in Dosbox is talking to the ECU over the FTDI cable. I’ve successfully downloaded the current tune and some log data. I even discovered that the air temperature sensor was showing a fault and was able to clear it by reseating the connector on the sensor.
Next up is inventorying the sensors and actuators installed and finding their datasheets. The goal is to get a good understanding of the tune that is currently loaded and get ready for logging data during dyno runs. That probably means building a board that can capture the telemetry the ECU spews out the serial port during normal operation. Then I’ll start digging into the protocol used by EMP to configure the ECU.