Road car telemetry, some things will be easy…
… others not so much. I mean, compared to a go-kart telemetry system.
- The easy part: by connecting to the CAN bus in the ECU, it is possible to gather vehicle and engine data in a way which is minimally invasive. That is, the ECU will handle most of the sensors.
- The difficult part: get connected to the CAN bus in the ECU, specially in older cars previous to the OBD-II standard.
But don’t worry about the difficult part as Oxer and Blemings [1] were kind enough to show us how to do it using and Arduino Mega. Their project is based on OBDuino and MPGuino, both of which are quite interesting on their own, although they lack certain features like GPS support or data logging, but are great alternatives nonetheless. So, what does the project of Oxer and Blemings consist of?
In this project, we combine an Arduino Mega with an OBD-II adapter, a GPS module, a USB mass-storage module, and LCD module, and control buttons to create a flexible platform for extracting, logging, and reporting data from your car. […] the project is still useful because it is broken down into a number of subsystems that can be used in your own designs.
So fortunately, one of the most difficult parts of the project is already done, which is the design and layout of the core components in the system. Although I might switch from Mega to Due. But troubles do not end there, as the OBD-II standard simply incorporates several different communications protocols under a standardized hardware interface letting the individual manufacturers decide which one the want to use. But again, that should not be a big deal as there are many commercial USB/OBD-II adapters available in the market that should work with pretty much any car from 1996 onward.
Additionally, I’d like to add several modules that I think are key to a good telemetry platform. First of all, a fundamental aspect of any telemetry system is that it should give engineers in the pit side of the track valuable information about the performance of the race car, thus, a RF module seems fundamental. Older ECUs might not give us all the information we would like to analyze, so there might be a need to use OEM sensors and read the values directly with the Arduino. Accelerometers and gyros usually come as a bundle and might give us information about tire grip allowing the engineer to determine design modifications and suspension adjustments. Lastly, a microSD module could substitute both the VDIP1 module and the USB memory stick for the sake of space economy.
Although I could test on several modern cars, I’d like to test the system on a race car, more specifically the BMW 318i depicted in Figure 2. Unfortunately, the E30 does not come with an EOBD/OBD-II interface, but a proprietary BMW 20 pin interface. Luckily, for less than 15€ one can find an adapter.
The E30 raced against other 19 contestants at the 24h of Guadix, in a competition that stood out for its austerity, as there was a budget limit of about 1,000€ (including the price of a second hand car). The next race will be also be austere, but with most of the cars enrolled again, more improvements can be implemented under a policy of cost reduction. Such is the cost reduction plan set out for the upcoming event that it will be held in Portugal in February 2014. In Braga to be precise.
The goal is fun.
References
[1] Oxer, J. and Blemings, H. 2009. Vehicle Telemetry Platform. In: Oxer, J. and Blemings, H. 2009. Practical Arduino: Cool Projects for Open Source Hardware. Apress.