I’ll admit it, I’m a huge fan of Euro Truck Simulator 2. For such an oddball “game” the depth of the simulation is compelling and addictive. Last year I built my own “racing sim” setup out of a driver’s seat from a Ford Ka, A Logitech G27 and a spare LCD Monitor. It’s simple but it is far more enjoyable than being sat at a desk in a bolt upright position.
With the release of SCS’ telemetry SDK I finally decided to add a real life instrument cluster to my set up, it would give me an opportunity to do something useful with an Arduino and learn a bit more about reverse engineering in the process.
There are three main components to this project which I need to work on:
- The software that communicated with the game on the host
- Abstraction Layer to allow compatibility with a number of games/sims
- The software that receives this information on the Arduino
- The Hardware interface between the Arduino and the instrument cluster
For this project I decided to use an instrument cluster from a BMW 320i. I chose this cluster for a few key reasons:
- Readily available off ebay
- Wiring/Pinout documentation available here
- Plenty of work deciphering the CAN-BUS data has been carried out here
To interface with the cluster the arduino will need the hardware to communicate over CAN-BUS as well as pull various wires to a high (12V) and low (GND) state.
Documentation and Software
I will be keeping a repository of all the code used to drive the cluster along with documentation over at my GitHub page here.