- Owner: User:JonOxer
- Make: Mazda
- Model: RX-8
- Year: 2004
- Transmission: 6-speed manual
- Engine: 1.3L 13B-MSP RENESIS
Many people have mounted computers in their cars over the years but they are usually large, high-power systems intended for desktop use and so they can only be run while the car is running. One of my objectives is to have my car "live" and connected to the Internet 24x7, even when not being driven, so it was critical to select a low-power computer that could be run continuously without flattening the car battery.
Yawarra Information Appliances gave me an Alix-1 for the project, which is fast enough to run a full Linux distribution (Ubuntu, in this case) but draw very little power.
A mounting frame was assembled to fit into a recess in the base of the RX-8 boot, with room to mount the Alix-1, a USB hub, a charge circuit, and a deep-cycle 28A/h sealed-lead-acid battery. The Alix-1 runs continuously from the SLA battery, which in turn is charged using an "intelligent" battery charger which tops it up whenever the car is running. The charger is designed for topping up deep-cycle batteries from solar arrays but also works perfectly in this application.
The Alix-1 is connected to a variety of systems in the car.
The OBD (On-Board Diagnostics) port under the dash is where a mechanic normally plugs in a laptop to run diagnostics on the engine management system. In my RX-8 the Alix-1 is permanently connected to the port and polls the ECU every few seconds to store dozens of parameters about vehicle performance including speed, RPM, intake manifold air temperature, engine load, fuel level, fuel pressure, fuel injection mode, timing, and many other items. All data is stored indefinitely in a MySQL database. I've physically modified the ELM327 dongle so the connector comes out at right angles, and routed the USB cable (with an extension cable) inside the center console right through to the boot. So far I've written one little piece of code that talks to the ECU via the OBD port and requests specific parameters at 1 second intervals and logs it in a MySQL database, and another little piece of code that reads the data from MySQL and displays it in a graph using Fusion Charts. There's a blog post about it here: Talking to an engine management system with... PHP!], and an example of the output here: CAN Reader.
3G mobile broadband
The car is connected continuously to the Internet so it can be accessed for remote diagnostics or even to start and stop the engine by remote control.
I built a custom ignition manager based on an Arduino development board, allowing the Alix-1 to have software control of engine start, engine stop, accessory power, door lock / unlock, and boot release.
The car acts as a mobile access point, allowing authorised laptops to associate with it to access vehicle management functions directly or share its 3G Internet connection.
A USB GPS receiver allows the data logging system to store GPS values with every set of engine management parameters, which can then be used to match engine events to locations, display direction information, or generate "tracks" showing previous journeys.
An RFID reader is mounted in the back right window of the car, and when it detects an authorised RFID tag it unlocks the car and starts the engine automatically. I have an RFID tag surgically implanted in my left arm so I can unlock and start the car simply by putting my arm near the window.
In early 2008 I did a live interview on Australia's top-rated morning news show, Sunrise, where I demonstrated the RFID implant being used to unlock the front door of my house:
Or access the video directly at http://www.youtube.com/watch?v=8fIMJgNTwdU
iPod Touch / iPhone / 3G cellphone control
The car's webserver provides a password-protected web interface optimised for full-screen display on an iPod Touch or iPhone running the SOPODS full screen web browser. The web interface has three screens: 1) Control, which provides a top-down view of the car with buttons for start, stop, lock, unlock, accessory power, and boot release; 2) Telemetry, which displays real-time data acquired from the engine management system such as RPM, vehicle speed, coolant temperature, throttle position, etc; and 3) Location, which uses a Google Maps mashup to display the current location of the vehicle on a map using current GPS data.
This is a brief video demonstration of the web interface accessed from an iPod Touch:
The video above can be accessed directly at http://www.youtube.com/watch?v=xqZj4ArrlhA
After I created that video and it received so much unexpected attention a more professional version was done by Bob Herbohn with the assistance of a few people from Channel 31:
That version can be accessed directly at http://www.youtube.com/watch?v=nInbHSFFG5k
The BOSE sound system in the RX-8 has no "line in" connection, so I opened up the head unit and soldered input leads to the CD player circuit board. The headphone output from the Alix-1 was then connected through to the head unit. I also created a 60 minute WAV file of silence and burned it to a CD which is left in the head unit on continuous-play. When the CD is selected, any sound played by the Alix-1 is injected into the head unit which plays it thinking that the signal is coming from the CD. The Alix-1 can therefore play music and issue voice alerts through the existing sound system.
Conferences / Public Display
Open Source Developers Conference 2008
In December 2008 the car was featured at OSDC 2008 in Sydney where I presented a lightning talk that demonstrated connecting to the car in Melbourne via SSH and querying the engine management system.
The car was featured at linux.conf.au in Hobart in January 2009 in a conference talk titled "Geek My Ride". You can view the presentation here:
The video can be accessed directly at http://video.google.com.au/videoplay?docid=-6306814203245314335
Wrest Point Casino
After the conference presentation at LCA2009 the car was also displayed to the public at the Wrest Point Casino along with the highly modified Nissan 300ZX owned by Jared "Flame" Herbohn during the conference Open Day.