Caterham Blog
-
ECU Diagnostics – part 14 : Software Framework mbe.py
This is hopefully a reasonably short post about the software framework I’ve developed to help read sensor data from the MBE 9A4 ECU. The software is written in Python 3 and is available here: Caterham-OBD. However, I’m going to talk about using one file only which is mbe.py. The idea behind mbe.py is to “abstract”…
-
ECU Diagnostics – part 13.3 : MBE-ISOTP
SUMMARY We now understand the communications protocol used by Easimap (the Windows software supplied by the ECU manufacturer) and can use it to ask the ECU for whatever data the car has to offer. We can then manipulate the responses we get back from the car and format them to make sense to us. TL;DR…
-
ECU Diagnostics – part 13.2 : OBD-II
The OBD-II diagnostic protocol is well defined and information about it can be found in On-board Diagnostics. It’s a mish-mash of many diffrerent standards, both physical and electrical, that I’ll refer to as OBD-II. There’s also a complete breakdown of the Services and PIDs (see below) that can be found in On-board Diagnostic PIDs. I’ll talk…
-
ECU Diagnostics – part 13.1 : MBE-Broadcast
The simplest of the three Caterham OBD port diagnostic protocols we know about is what I’ve called MBE-Broadcast. As soon as the car is put into ignition switch position 2, the ECU starts to spit out a this stream of data on the CAN bus. Unlike the OBD-II protocol and the MBE-ISOTP protocol, this a…
-
ECU Diagnostics – part 13 : Three Diagnostic Protocols in the MBE 9A4 ECU
This one’s just a short post to introduce the next three posts. In our investigations of the MBE 9A4 ECU we’ve found three different diagnostics protocols supported on the OBD port. The following three posts will summarise what we’ve learnt about each protocol and will be updated with new information as it becomes available. 13.1…
-
ECU Diagnostics – part 11 : Logic Analyzer on the CAN Bus
To test out my theories and the code I’d been writing, I needed a simple test and a way to make sure the code (and I) was doing what I thought it should be. The code part was easy, take the JSON files I’d created from the Easimap EC2 file and use it to ask…
-
ECU Diagnostics – part 10 : Decoding EC2 Files
Now we need to start proving some of our theories about how Easimap is actually talking to the ECU. And it seemed to me that if I was going to prove anything then I’d need to pass a lot of data through any theory I came up with, and that meant writing a program –…
-
ECU Diagnostics – part 8 : Easimap uses ISOTP (sort of)
Ok, that’s enough of the theory about mapping. Lets get back to what Easimap is doing when it talks to the car. When we left this subject last we had got to the point where we could see what Easimap was sending and receiving on the CAN bus, but we didn’t know what it meant.…
-
ECU Diagnostics – part 7 : ECU Maps and Mapping
People often talk about “mapping” a car. When they do that they’re usually interested in one or more of three things: To increase its performance Improve its fuel economy Improve its drivability So what is mapping? In technical terms a map is a translation, or conversion, function that takes an input and produces an output.…
-
ECU Diagnostics – part 6 : Reading Material
Another quick one, really quick this time… Mark (CTRMint) had been doing his research and had told us about a book he was buying, and I just couldn’t resist… The book isn’t the cheapest of purchases, at least not in the UK. But for me it was well worth it. It took an evening to…
-
ECU Diagnostics – part 5 : The Correlator Dead-end
Hopefully this is a quick post… The story so far is that: We’ve got a test bench made of a Raspberry Pi, CAN bus decoder board and an OBD Y-cable The Raspberry Pi can “sniff” all the packets sent between the car’s ECU and something that can talk to the car, like Easimap or an…
-
ECU Diagnostics – part 4 : Wireshark Patching and OBD-II Results
When Wireshark first appeared, it was called Ethereal… and its motto was: “Sniffing the glue that holds the internet together” Wireshark sniffs the packet-glue that holds the internet together and is one of the most influential pieces of open source software there is. That’s a pretty bold statement and I even count projects like Linux…
-
ECU Diagnostics – part 3 : Test Setup
Ok, so we have an OBD port/connector on our cars that connects directly to the ECU. How are we going to figure out how to talk the right communications protocols to the car to get at its internal data? We need a test rig to do some experiments with. If you’re looking for a post…
-
ECU Diagnostics – part 2 : ECU, OBD and CAN
ECU Caterhams, like all modern cars, have an Engine Control Unit (ECU) – a black box full of electronics, controlled by a microprocessor that manages how the engine runs. And because it has a microprocessor it means it runs some software to control everything. It also connects to a bunch of sensors, like temperature, pressure,…
-
ECU Diagnostics – part 1 : Introduction
So here we go for a marathon series of posts. I’ll update this page with links to the completed posts as they come along… Introduction ECUs, OBD and CAN Test Setup Wireshark Patching and OBD-II Results The Correlator Dead-End Reading Material ECU Maps and Mapping Easimap uses ISOTP (sort of) The Easimap Protocol Theory Decoding…