No announcement yet.

Joggler Car Computer Project - 2009 Mazda MX-5

  • Filter
  • Time
  • Show
Clear All
new posts

  • Joggler Car Computer Project - 2009 Mazda MX-5

    Hello Folks,

    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)
    • Web Interface (Written in HTML5, CSS, Javascript, using jQuery and the new <audio> element)
    • Google Chrome (Running in kiosk mode)

    • Joggler (With the backing removed and the heat pad replaced with passive sinks)
    • 4 Port USB Hub
    • 30GB IDE HDD (From an old laptop, used in a USB enclosure)
    • JoyconEX USB Remote
    • 12v Micro Stereo Amplifier
    • 12v/24v To 5v Converter
    • Metra/Mazda Stereo Wiring Adaptor
    • Metra Double Din Fascia

    The Joggler
    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 .

    To enable the steering wheel controls to work with the Joggler, Iíve also installed a JoyconEX ( 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.

    For the moment the interface loads the album list from a single large M3U playlist in the music folder. It does so with an AJAX call. The playlist is parsed with Javascript, which then generates a list of albums (scrolled with a flick of a finger). Individual tracks are not listed to save screen space.

    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.

    Javascript on the page responds to keyboard key-presses (which the steering wheel controls generate thanks to the JoyconEX), controlling music playback.

    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 Javascript detection of the steering wheel key-presses is currently very laggy for reasons unknown. I believe it's due to the way Chrome handles key-press events in the Ubuntu environment.
    - The media playback keys on the Lenovo keypad are recognized by Javascript in Chrome on Windows, but not on Ubuntu. After much faffing with various keyboard settings and re-mappers, I gave up trying to get this to work. I won't be using the keyboard whilst driving anyway.
    - 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.

    Future Additons
    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.

  • #2
    Fantastic work! I have 3 jogglers myself - 2 for the house and 1 for the car. Have not done any more than hack the original OS at the moment due to time and I am trying to wait for android 2.2 on the atom (want to hook up a Wii remote, GPS and webcam to use wikitude sat nav in the car) but I am starting to get impatient and might just get it all installed and running on linux for now.

    Have you considered trying Openice as it will have satnav all done for you and should work great?


    • #3
      Top Job, very neat.
      Any chance of details for the 5V supplys?


      • #4
        Very very cool...!
        I tried to get a Joggler for an install but missed the boat - they were unforunately out of stock before I realised about the deal.
        Great to see it can be done.
        Old Systems retired due to new car
        New system at design/prototype stage on BeagleBoard.


        • #5
          Thanks for your kind comments folks.

          Originally posted by Scouse Monkey View Post
          Have you considered trying Openice as it will have satnav all done for you and should work great?
          I did think about using an off the shelf GUI, but I enjoy designing and writing things like this, so I decided to make something from scratch for the challenge and fun of it.

          Since I don't actually drive much outside of my local area, having GPS/navigation capability isn't too important to me - but applying the code and techniques I've learned and developed at work (with the GMap/Live APIs) to a car navigation system will be a fun project regardless.

          I love the idea of the Wiimote/webcam setup by the way. I've just bought an Android phone so I'm only now discovering these awesome augmented-video apps.

          I've been contemplating the possibility of building an S-Class style 'night vision' system with an infrared webcam and high power IR source, along with an overlay showing speed/navigation, etc.

          Originally posted by chrislamb View Post
          Any chance of details for the 5V supplys?
          I ordered the converters from a company called Current Logic. I don't believe I'm allowed to post a link here.

          Originally posted by Rob Withey View Post
          ...unforunately out of stock before I realised about the deal.
          I'm sorry to here that - it's such a shame they aren't still available. At £50 they were too good to be true. Although, there are rumblings on the O2 forums about there being a new model coming soon - and that's supposedly why the current model is no longer on the site.


          • #6
            any chance of a video of your UI?


            • #7
              Vary nice work, I have heard that o2 stores apparently have some stock kicking around, might be worth given them a ring to see if they have any left.

              I missed the boat on this so I shall be watching to see if they start selling them again.


              • #8
                well they all had one or two store demo ones.

                or they pop up on for £50 + postage


                • #9
                  Excellent job with the O2 Joggler. Now only if I could manage to find one...:-(

                  Originally posted by XGEOX View Post

                  Could you please mention the source (Weblink?) of these DC/DC Converters. Looks ideal for the CarPC environment since they are hermetically sealed and appears to have ample heat-sink.


                  • #10
                    Originally posted by XGEOX View Post
                    I ordered the converters from a company called Current Logic. I don't believe I'm allowed to post a link here.
                    Originally posted by DigitalVampire View Post
                    Excellent job with the O2 Joggler. Now only if I could manage to find one...:-(

                    Could you please mention the source (Weblink?) of these DC/DC Converters. Looks ideal for the CarPC environment since they are hermetically sealed and appears to have ample heat-sink.
                    1st hit on google bud. Look at their "
                    Low-cost Waterproof DC/DC Converter For EV / Truck / Forklift / Golf cart"


                    • #11
                      Thanks SM! I somehow missed to see the company mentioned in the subsequent replies..


                      • #12
                        Originally posted by Scouse Monkey View Post
                        any chance of a video of your UI?
                        I'm sure I can sort one out this weekend if you'd like - but there isn't much to see beyond the photo/screenshot.

                        The right-hand list of albums scrolls up and down (the Chrome touch-scroll plugin provides momentum scrolling). There's currently no other animation or effects on the interface.

                        I did write the code to show a progress bar indicating the playhead position (which was surprisingly simple with jQuery and the HTML5 audio functions), but I decided there was no need to have one on the interface.

                        At the moment I'm attempting to find out why Chrome on Ubuntu keeps crashing; before I start adding any new functionality or effects.


                        • #13
                          I am also working on the S-Class Night Vision camera on my car too. Do u have any good ideas you would like to share. I looking for a 12Volt 30-infrared LED camera on ebay and i dont know if i should buy it


                          • #14
                            Originally posted by desidriver View Post
                            I am also working on the S-Class Night Vision camera on my car too. Do u have any good ideas you would like to share.
                            I haven't put too much thought into this functionality yet - I have no idea if it would be possible to create an effective system without spending £150+ on basic image intensification gear.

                            A £10 'night vision' web cam typically has a small number of IR LEDs and can see a few meters ahead. I've used one before as a bird box camera.

                            A supplementary high-power LED array might emit enough light for a more usable distance, but experiments would be in order to find out. That's where the fun lies!

                            I've seen a number of IR LED rings on Deal Extreme and similar sites. In combination with a cheap web or video camera, these might be a good way to start - rather than spending a lot on a camera with integrated IR LEDs.


                            • #15
                              Tomorrow I will buy D Link powered USB hub and after it I was considering to buy Carnetix CNX-P5V 15 Watt +5V Regulator, but those DC/DC regulators you are using I like much more. Let me ask you one question, what was the delivering time?
                              I don't wanna be a product of my environment.
                              I want my environment to be product of me.