Recently I bought my first car. It’s a 2006 Smart Forfour. It’s just a normal car without fancy features. The dashboard contains 2 gauges showing the speed and the RPM. A handfull indicators show if my the engine has a failure or if a turn signal is enabled. A little display shows how many kilometers the care drove, what time it is and how much fuel is left.
The radio isn’t very exciting as well. It’s a Smart Radio Five with a CD player, some programmable buttons and an AUX input.
Modern and more expensive cars are often shipped with computer and a touchscreen. With this system you can control the whole car: manage audio, call people, use it to navigate to your destination and so on.
I want such a system and I’m going to build it myself. Why? The most important reason is because it’s fun. It’s also great way to learn a lot. This blog is the first post of a series in which I’m going to describe the progress of the system I’ve called Ted.
Ted must be lightweight so it can run on cheap hardware. I’ve a an old Raspberry Pi Model B lying around and I’ll start development of Ted on that device. It has a 700 MHz ARM chip and 256 Mb of memory. There are touch screens around which are compatible with the Raspberry Pi. Currently I don’t know if I stay with the Raspberry Pi or if I switch to different hardware later on in the process.
I’m going to start with creating a virtual car dashboard showing metrics and stats obtained using the OBD-II connector. In the next post you can read more about the OBD-II connector. I’ve yet to decide what display server and GUI library to use. Currently I don’t even have decided what language(s) I’m going to use.
In a later stage I want to add features to control the audio and navigation functionality. I’m also thinking of building a assistant which help you to shift gears on the correct moment to save fuel.
Ted is open source and is licensed under Mozilla Public License. You can find the project on GitHub.
Read the next post in this series: TED1: OBD-II, ELM327 and Python.