Joggler Car Computer Project - 2009 Mazda MX-5
Firstly I'd like to thank all of you for posting on these forums and sharing your Car PC projects and ideas. I've found a wealth of information on these forums (whilst lurking), but until now have not felt I had anything useful to contribute.
Now that I've completed my first build (well second, but more on that in a second), I'd like to share my project with you.
My goal was to replace the factory (double din sized) head unit with a Windows-based computer that was capable of music playback and navigation. Since I'm a web developer/designer by profession, my plan was to develop an XHTML-based interface, sitting on top of a program written in AutoIT, which would handle the GPS hardware interface and the actual playback of music.
I started off with a fairly traditional build. I was using an old laptop mainboard in a custom enclosure, hooked up to a USB DisplayLink touchscreen monitor mounted on the dash of my MX-5.
Because the laptop was too big to fit in the dash, I had to mount it in the map-pocket behind the passenger seat. This wasn't really an aesthetic problem in a 2-seater roadster with no rear seats, but I wasn't really happy with the way it was wired up. Other problems with performance, noise, slow boot/shutdown times and the USB monitor made me scrap the project.
Then I found out about recent work others had done on hacking the O2 Joggler (Openpeak Openframe) to run alternative operating systems like Ubuntu Netbook Remix.
I'd previously bought a few Joggler devices when they were on offer for £50. At the time I recognised the value of the hardware, and relied on the knowledge that someone much cleverer than I would eventually work out how to boot another OS on the device. I also knew that Iíd break at least one making modifications, so I thought it best to get more than one whilst they were so cheap.
Now that running custom software had become a possibility, I resolved to re-build my car computer using a Joggler as a base...
That was about 3 weeks ago.
- Ubuntu Netbook Remix (Thanks to Dysentry / Stephen Ford)
- Google Chrome (Running in kiosk mode)
- Joggler (With the backing removed and the heat pad replaced with passive sinks)
- 30GB IDE HDD (From an old laptop, used in a USB enclosure)
- 12v Micro Stereo Amplifier
- Metra/Mazda Stereo Wiring Adaptor
I knew these would be great for hacking when I first saw them. I didn't think about using one in a car, but in hindsight the Joggler represents an ideal car computer:
- At £50 delivered in the UK itís ridiculously cheap (even if you consider it to be nothing more than a web-connected picture frame, which are normally more expensive).
- The Atom/X86 architecture makes it relatively powerful, energy efficient, quiet and cool.
- The glorious capacitive touch panel and LCD screen are much better than many USB/VGA micro displays (like the Display Link monitors from Nanovision, which Iíve used before). In fact, most of these monitors cost twice that of the Joggler.
- Sunlight readability actually isnít bad for a glossy, cheap display. No where near as good as a truly sunlight-readable screen, but usable.
- The SBC format, 7Ē screen and small footprint make it ideal for mounting into a dash.
My car came with a factory-fitted double-din sized stereo. It had no auxiliary input or USB port, which made my collection of MP3s and Spotify membership useless. I wanted to have a more flexible system that could also potentially be web-connected. I also never pass up the opportunity to take things apart (providing I have a rough idea of how to put them together again).
In order to avoid making any modifications to the car interior or wiring, I purchased a Metra double-din fascia, into which I could build the screen and computer. The Joggler screen happens to be the perfect size to sit inside the double din space, so it was a simple matter of fitting the Joggler behind the fascia and slotting the complete unit into the car.
The Joggler has two USB ports (and a number of points that can be soldered for additional ports). One is external, the other is internal and used by the Joggler's discrete USB Wifi card.
In order to gain access to the internal USB port, I stripped the back off the Joggler and replaced the heat pad & stand (which is used for cooling as well as propping up the unit) with small video-memory sinks (from a VGA cooler) and a northbridge sink (from a motherboard). These are the perfect size for the Joggler processor and chips, and provide ample passive cooling for the low power CPU. I decided to hot-glue the corners of the sinks to the board. This isnít an ideal method of mounting heatsinks, but will suffice until I come up with a better solution. The low operating temperature of the Atom core hasnít (yet) melted the glue and Ďde-mountedí the sinks.
Given how slim the Joggler is (even with the sinks), I had plenty of space left to fit a small stereo amplifier and a power supply into the gap previously occupied by the double din head unit.
Despite having plenty of space however, the Jogglerís power requirements became a problem.
I'd previously bought an automotive adaptor for powering my laptop-based project - however since no laptops run on 5v - no laptop power supplies (that I could find anyway) offer 5v at anything more than 1-2amps - and even those only supply this over a supplementary USB port.
I found a cheap DC/DC voltage converter with sufficient wattage/amperage to be suitable for the Joggler, direct from a Chinese manufacturer. They offer a variety of 12/24v to 5v converters. I bought both 25w/5a and 50w/10a models. The 25w model would serve as a separate USB power supply if required, with the 50w being more than sufficient for the Joggler.
Although the rating of the Joggler PSU is 5v/5a/30w and the 25w/5a converter would probably drive it fine, I plan on adding a number of extra USB devices via a hub, each potentially drawing 500ma or more. I also plan to eventually install a 3G router, so I preferred to have the additional capacity available for the few extra dollars and slightly large footprint.
These converters arenít advertised as being Ďregulatedí - however my multimeter tests during crank/running suggested that they may well be. Having since run the Joggler on the larger 50w converter both inside and outside of the car, it seems to perform extremely well - remaining stable during cranking/running and not interrupting the boot process. It also doesn't warm up at all.
Iíve connected the converter and Joggler to the 12v accessory line (behind the cigarette socket). A feature of the Joggler is that it has no on/off switch - it simply starts when it has power and stops when it is removed. The built-in OS doesn't appear phased by sudden loss of power. Such automatic starting was a PITA to implement with my previous laptop-based system.
Iíve not heard any indications of a ground loop problem or line noise from the car - which was something I had to resolve in my previous car computer project. I do have a signal filter fitted between the Joggler and amplifier as this helped with the previous installation - however I could probably do without it with the Joggler.
For all of the power connections, Iíve used ATX Molex connectors - primarily because I have a lot of these in my Ďelectrical bitsí drawer, but also because Iím working with 12v and 5v lines, which matches the purpose and pinout of the 4 pin molex connectors perfectly. I bought some inline fuse holders and installed them on the voltage converter and amplifier lines.
I took the precaution of installing a hidden switch behind some dash trim so that I could cut power to the entire system if the car was to be left for a long time (not that this should be a problem), or if I ever wanted to stop it booting automatically when the car started. It would also be useful if I messed something up during installation and needed to cut power quickly, which thankfully didn't happen.
The small stereo amplifier is an eBay import. I simply went for the smallest I could find so I didn't have to do a boot installation, which would have meant drilling holes where I'd really rather not :o.
To enable the steering wheel controls to work with the Joggler, Iíve also installed a JoyconEX (http://www.rcjoycon.com) USB remote. Because it emulates a standard USB keyboard, it works fine with the Joggler in a Linux environment like UNR. However, the configuration software only works on Windows, so it needs to be set up externally before installation.
For reference, I've set 'Mode' to toggle shuffle mode. A long press of 'Mode' closes the browser and returns to UNR. The up/down buttons move through tracks and albums, and the volume keys control the system volume.
In addition to the steering controls, Iíve also added a Lenovo mini wireless keypad/mouse. This very small input device is well suited to quick tasks on the Joggler that canít be done with the touch screen. Obviously I donít want to use a full keyboard/mouse in the car at all, so this stows away nicely in the glove box and only comes out when I need to tweak something.
The idea of writing an XHTML interface has remained from the previous installation. Since I started the first project, HTML5 and CSS3 support has improved to the point where I can now use it for the entire interface, and not have to rely on a background program written in AutoIT.
HTML5 adds some very useful tools to a web developerís arsenal. In this case Iíve made use of the <audio> element, which allows me to play back MP3 files (OGG in Firefox) without additional plugins (like Flash). Iíve also used some of the latest CSS styling effects like rounded corners and drop shadows to make a slightly more attractive interface without needing a complicated (and performance-killing) array of PNG images. Iíve also used the SVG format for the playback icons. The upside of all this is that the interface is scalable to large screens and very easy to re-colour/skin. It also runs smoothly on the Atom hardware.
At the moment, itís designed to run inside Google Chrome, because this browser supports MP3 playback. However, any browser supporting CSS3/HTML5 will suffice. Some clever folks on the Joggler forums have found out how to run a browser (Opera) from within the standard Joggler software, so I may be able to drop the need for Ubuntu in the near future.
Eventually Iíll be adding GPS/Mapping/Navigation functionality using the Google/Live/OpenMap APIs, but Iím happy with simple music playback for now.
All of the software, including the web interface, Ubuntu OS and music files are stored on a 30GB laptop hard drive in a USB enclosure. Iím not using a flash card because I found those that I had to be too slow. The old HDD is fast enough to be usable - but I believe the Joggler could really benefit from a fast SSD. Iíll wait until the faster SSDs become significantly cheaper before buying one for this purpose though.
I've placed the drive and USB enclosure inside the glovebox, making it easily accessible. This is hugely useful for making updates to the OS or interface - not to mention adding more music.
Not Everything Goes To Plan
Of course, there were some issues along the way - All of them software related.
This is partially because I'm not a regular Linux user, and partially because the Linux version of Google Chrome has a few bugs that its Windows counterpart (where I developed and tested the web interface) does not.
- The touch scrolling plugin for Chrome seems quite laggy on Ubuntu. There's also an event bubbling issue (which is bad coding on my part rather than a plugin bug) which makes scrolling difficult.
- Chrome is prone to crashing on Ubuntu. Annyoingly, rather than restarting and refreshing the page automatically, it displays a message asking me if I want to refresh the page. This would be fine if I had an F5 key on my steering wheel. Not ideal.
- During the boot process, a little noise comes from the speakers. It stops as soon as the audio drives load. But it's quiet enough to ignore.
I regularly create mapping applications for our clients, so an internet-enabled navigation system based on GMaps/Live would be relatively simple to build. However, I'd need a reliable Internet connection to use these services.
So the next step is to install a 3G router, turning the car into a mobile access point. There's a couple of options I've explored, including using the Mobile AP function of my Android phone, using a Huawei d100 router (with a 3G dongle), or a Mifi device. Each have major drawbacks, so I need to give it some more thought.
Adding a GPS dongle will be simple enough, provided I can find Linux drivers/software that are compatible with whichever browser I use.
It remains to be seen if the Joggler will work as a practical car computer for me. I'll need to run it for a while and improve the software over time before I can decide to recommend it as a basis for a car pc - although I'm sure I'm not the first to use one in this manner.
I welcome comments, questions or suggestions from all readers; particularly from members whom have worked on or are thinking of starting a similar project using the Joggler (or Openpeak equivalent) as a base.
The hardware is without-question fantastic value for money (at least in the UK). There's also an active community supporting the development of new software for it, so I'm not alone in experimenting with the hardware and software.
Most importantly, no modification and (practically) no fabrication was required in my car - it basically just slots into a double din fascia - yet I'm very pleased with the 'factory' looking result.
I'd estimate that I've spent around 5 hours on the hardware and 3-4 on the software so far. Including the Joggler, you could probably build a basic car computer for £100. Include a Joycon or similar device (or better amplifier) and that will quickly rise. But that's a pretty low cost or entry for a first car pc.