Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: 2004 Ford Focus ZTS and Odroid U3

  1. #1
    Newbie focused's Avatar
    Join Date
    May 2014

    2004 Ford Focus ZTS and Odroid U3

    Hello Internet,

    I've been reading the forums for a bit now, drooling over the really cool set ups. I had put off building a carputer for a few months, but was recently the best man in my buddy's wedding, he got me the Odroid U3 as a part favour. Here's the part list:

    Odroid U3
    Chalk-Elec 7" screen w/ Frame and Ambient Light Sensor
    TDA7850 w/ Denoiser
    Intelligent DC-DC Converter from Minibox
    2 12V Relays with delay (likely set to 3 seconds for ignition)
    ELM327 OBD2 to Bluetooth
    Sure Electronics Mini USB & Bluetooth Interface GPS Demo Board
    4 Port USB hub (haven't decided/bought yet)
    Arduino with rotary encoder for volume (solder the push button directly to the power on the Odroid)
    Running Android 4.2.2

    My goals are:
    -Easily navigate to the next customer's location
    -listen to music (Mp3s)
    -Add/Remove files from the computers in the house (over wifi)
    -See text messages, toggle the phone (w/ tablet talk)
    -have just the Odroid on all the time (DC-DC cuts out at 11.6V)... as far as I could find Odroid doesn't have a sleep mode...
    -Make it look very close to OEM

    Here's a drawing... I'm not an artist, and it doesn't include the USB Hub, GPS, Wifi or Bluetooth.

    Name:  design.jpg
Views: 2990
Size:  49.4 KB

    My biggest problems are how I'm going to mount all of the electronics behind the screen, and how I'm going to fit the screen in the dash. I went to the wreckers and picked up another dash for the Focus...

    Name:  panel.jpg
Views: 3049
Size:  133.0 KB

    The dash panel sticks out like a bubble, so I'm debating cut out above the HVAC controls and making something a bit more flat that will clip into place. I also really like how StevieG set his up, and want to do something similar. My experience with fabrication is minimal, but it'd be good to learn.

    Anyways, that's the start of my worklog. If anyone has any comments, suggestions, or wants to point out any critical flaws, please do!

  2. #2
    Maximum Bitrate camo.b's Avatar
    Join Date
    Nov 2011
    I gave my best man nothing because i didnt know its was the done thing...untill i saw the bridesmaids gifts from my wife...whoops!!
    you have some quality items in your parts list.if i was to go android that would be my exact parts list too.subscribed

  3. #3
    Newbie focused's Avatar
    Join Date
    May 2014
    Quote Originally Posted by camo.b View Post
    I gave my best man nothing because i didnt know its was the done thing...untill i saw the bridesmaids gifts from my wife...whoops!!
    you have some quality items in your parts list.if i was to go android that would be my exact parts list too.subscribed

    Haha, you can plead ignorance on that one. This guy did pretty good for a groom, got the rest of the guys handheld nes/snes systems.

    Your build with the 10" is what sold me on the Chalk-Elecs. Looks really sharp. Did you use an adhesive to stick the screen to your dash?
    I was initially considering magnets to hold the screen (if going over the dash).

    I've gotten around to programming the arduino with the rotary encoder for volume, and researching how to get the screen in there (and checking my mail for my shipping confirmation from Chalk...). I'm leaning towards something like this. Only thing I might change is having it angle towards the driver seat a little more.

  4. #4
    Maximum Bitrate camo.b's Avatar
    Join Date
    Nov 2011
    Quote Originally Posted by focused View Post
    Haha, you can plead ignorance on that one. This guy did pretty good for a groom, got the rest of the guys.
    i just kept one said my face anyway

    my screen could be a tad brighter and its a bit too reflective but there is good and bad in all..for me the good far outweighs the bad....
    in reguards to the planning to move to win 8/9 when it becomes the must have for carpcs,so a requirement was the ability to access the charms bar with the off screen swiping and so thing ive learnt is future proofing hardware is a must for me.ive been in the carpc game for 3 or so years and im far from finnished.with so many ways to expand i need to cover most bases.

    i did a quick mock up with a tablet for veiwing angles before i got started...
    but yes my screen is recessed into the new dash and held there with double sided tape...its now going to move without some serious heat gun work and a lot of nail biteing.
    i ran around for a week or two with it taped in just to iron out any bugs before i actually used the tape.

    your dash facia looks a treat to work with best thing i can say is cut some plastic/acrilic sheet exactly the same size as the screen wrap the edges in masking tape twice(this will give you a perfect gap).once your dash is about right fit the dummy screen and bog/fill the edges right up to it.once dried and sanded pop out the sacrificial dummy and your screen will fit right in with a perfect gap.just remember 2 layers of for the gap you need and one for the area the paint will take up.also dont rush the drying time between bog application,,,sanding and paint.give the bog a few days in the sun to fully shrink back before sanding and paint prep.

    love to get a copy of your arduino scetch...ive been looking ino this but havnt found the time to actually do it...i have a leonardo here but no encoder yet.

  5. #5
    Newbie focused's Avatar
    Join Date
    May 2014
    one thing ive learnt is future proofing hardware is a must for me.ive been in the carpc game for 3 or so years and im far from finnished.with so many ways to expand i need to cover most bases
    Makes sense, I feel like this is going to be a never ending project. I'm already starting to think about how the information from the OBD2 will be exported to my database that tracks trips for my business' tax purposes. I want my car, and all of my business to be as automated as possible... really dislike manual data entry.

    your dash facia looks a treat to work with best thing i can say is cut some plastic/acrilic sheet exactly the same size as the screen wrap the edges in masking tape twice...
    That sounds like great advice! Thank you! I really like how your setup goes over the dash, and knowing that it is pretty difficult to remove without a heat gun calms my fears about theft (I live in the boonies, not a huge concern). I was thinking about adding a trigger to the Arduino so that if it detects someone is trying to pry the screen off it would turn on the amp and say something in a British voice about how their picture is being taken. Possibly more work than it's worth.

    I still have a while to think about it all, since I haven't received my Chalk shipping confirmation. And they seem to have ignored my inquiry e-mail.

    For the rotary encoder, I got this one from Digikey. It doesn't have notches... which would've been nice to feel when I've moved the volume up... but meh, not a big deal. The most important thing was that I could fit a knob from one of my musical electronics projects on it.

    Name:  carputerdesk.jpg
Views: 3228
Size:  92.3 KB

    I'm not totally sure what the etiquette is for posting code... I hope this will suffice, here is the sketch.

    /* Volume Controller w/ Rotary Encoder
    This is a culmination of code from
    with some light adaptations from Focused

    It also takes a pushbutton and to goto next track

    Encoder Right - A0
    Center - Ground
    Encoder Left - A1

    Pushbutton - 9


    int sensitivity = 4; /* Adjust this for how sensitive you want your volume knob to be
    1 = Really sensitive
    Anything higher = less sensitive

    int muteMe = 9;
    int buttonState = 0;

    uint8_t buf[8] = {
    0 }; /* Keyboard report buffer */

    /* Rotary encoder read example */
    #define ENC_A 14
    #define ENC_B 15
    #define ENC_PORT PINC

    int state = 0; // Determines which way the knob was turned
    int intermediary = 0; // The intermediate variable
    void setup()
    /* Setup encoder pins as inputs */
    pinMode(ENC_A, INPUT);
    digitalWrite(ENC_A, HIGH);
    pinMode(ENC_B, INPUT);
    digitalWrite(ENC_B, HIGH);
    Serial.begin (9600);

    pinMode(muteMe, INPUT);
    digitalWrite(muteMe, HIGH);


    void loop()
    static uint8_t counter = 0; //this variable will be changed by encoder input
    int8_t tmpdata;
    tmpdata = read_encoder();
    if( tmpdata ) {


    if ( tmpdata == 1) { // Did we turn clockwise?

    state = state + 1;

    if (state == sensitivity) {
    buf[2] = 128; // Volume up key
    Serial.write(buf, 8); // Send keypress
    releaseKey(); // Obviously, we need to release the key.
    state = 0;

    if ( tmpdata == -1 ) { // We probably turned counter-clockwise
    state = state - 1;

    if (state == -sensitivity) {
    buf[2] = 129; // Volume down key
    Serial.write(buf, 8); // Send keypress
    releaseKey(); // Yep, release the key.
    state = 0;


    buttonState = digitalRead(muteMe);

    if (buttonState == LOW) {
    buf[2] = 114; // The barbaric way to send a media keypress
    Serial.write(buf, 8);


    void releaseKey()
    buf[0] = 0;
    buf[2] = 0;
    Serial.write(buf, 8); // Release key
    delay(10); // So the volume control doesn't get too eager when spinning quickly.

    /* returns change in encoder state (-1,0,1) */
    int8_t read_encoder()
    static int8_t enc_states[] = {0,-1,1,0,1,0,0,-1,-1,0,0,1,0,1,-1,0};
    static uint8_t old_AB = 0;
    old_AB <<= 2; //remember previous state
    old_AB |= ( ENC_PORT & 0x03 ); //add current state
    return ( enc_states[( old_AB & 0x0f )]);
    EDIT: Added volume sensitivity so you can control how eager your rotary encoder is. I have found setting the sensitivity variable to 4 works best for my encoder.

    Also added a pushbutton for the next track. To get it to work in Android edit your qwerty.kl file in /system/usr/keylayout and change MEDIA_NEXT from 163 to 193. I also did this in the Generic.kl file.
    Last edited by focused; 06-08-2014 at 07:53 PM.

  6. #6
    Maximum Bitrate camo.b's Avatar
    Join Date
    Nov 2011
    many thanks for that,ill give it a try soon.keep us posted on your build its looking good!!!

  7. #7
    Newbie focused's Avatar
    Join Date
    May 2014
    Here's an update:

    All of the parts have now come in and I've started to rig everything up.

    The Chalk-Elec 7" screen is pretty nice, but I'm having two problems.

    1. I recompiled the kernel for Android to enable the multitouch, but wasn't able to get it working.
    2. The ambient light sensor does nothing... even if I attach a wire or resistor it does nothing.

    I imagine both of these problems are from the firmware (possibly related to this?). So I updated the firmware following their steps. Now I may be doing something wrong... but as far as I can tell the firmware I'd want would be called 7-bf-mt-ab-v1-4.hex... but I can't find it anywhere, and simply renaming the file doesn't seem to give me multitouch or a working ambient light sensor. I really hope I'm doing something wrong, if anyone has experience with Chalk's firmware update, please let me know.

    EDIT: I also found a couple people tweeting about a lack of multitouch firmware, and promises that it will be available "next week"... Really makes me wonder why I purchased the Chalk screen if there is no multitouch and no ambient light sensor... I should've gotten one of the resistive ones from Ebay, regrets.

    Other than that, things are moving along well. I set up a testbench to configure everything. The TDA7850 sounds pretty good through my stereo speakers. There is a thump when the amp turns on, so I connected a relay to the standby function, it turns off a second after the amp starts up.

    Name:  testbench.jpg
Views: 2315
Size:  163.8 KB

    Since the screen is on when power is connected to it, and I only want the computer to be always on, I'm going to have to pick up a cheap USB cable, splice it, and put a relay in between the power wire. That way the screen will only turn on when in accessory mode.

    I also picked up some fiberglassing materials, and am starting to think about how exactly it will be mounted. There will be some cutting, and a bezel made of wood (as I have an abundance).

    Name:  screenframe.jpg
Views: 2898
Size:  183.5 KB

    Finally, I'm looking to change to Arduino script a bit so that when the rotary encoder's push button is pressed it either mutes, pauses, or plays the next track. On Android the scan code for Mute doesn't work as expected. Also, multimedia scan keys are not listed...

    So far so good, this site has been a great resource so far!

    Here's a video showing things in action!

    Last edited by focused; 06-08-2014 at 02:54 PM.

  8. #8
    Newbie focused's Avatar
    Join Date
    May 2014

    Weekend Update


    So I've done a fair amount more on my carputer:

    First, I took an old power supply box, and started sticking the parts in it. I used epoxy as a standoff, and then drilled holes through the case and mounted the Odroid, USB Hub, GPS, and TDA7850 amp. The relays are on the side of the power supply with vent holes, so I just put epoxy on either side, and it seems to be pretty secure. I put the case through a pretty thorough shake test, and will do some more tests the next time I take it out.

    To make the case a bit more friendly, I cut the sides off of the top part. It's ugly, but it works.

    Name:  case1.jpg
Views: 2119
Size:  205.4 KBName:  case2.jpg
Views: 2096
Size:  178.5 KBName:  case3.jpg
Views: 2055
Size:  152.5 KBName:  case4.jpg
Views: 2259
Size:  183.7 KB

    After this I started cutting up the dash panel from the wreckers. It was only $10, so I figure if I don't like how this one turns out I can just get another. I know, the cutting looks awful... but this is giving me an idea of how I'm going to mount the thing.

    Name:  case5.jpg
Views: 2515
Size:  160.0 KBName:  case6.jpg
Views: 2081
Size:  133.6 KBName:  case7.jpg
Views: 2603
Size:  303.2 KB

    Right now the screen is being held in between the bezel from the radio, and the clips that the bezel usually screws into. It's a pretty tight fit and there's no wiggle. Test drives have been quite smooth, especially after putting sill gasket along the bottom of the power supply.

    The first night I was doing testing I ended up running down my battery to 10.5V because the focus doesn't have a dedicated radio mode. So I installed two switches on the dash, one as a master kill from the 12V constant, and one that switches between the power coming from the master kill or the ignition wire. I am running the amp off the ignition wire... figured it wouldn't be a big deal since the amp was only pulling ~500mA when cranked on 8ohm speakers during the testbench. These switches are plugged using a molex adapter so I don't have to take the heat shrink tubing off every time I dismantle.

    I also put an NFC tag behind the dash so that when I get into my car I can swipe my phone to turn on the wireless hotspot and bluetooth. It then says something cheeky in a British voice.

    Next steps are to figure out a good plan for permanently mounting the screen, and filling in the gap where the volume control/hazard switch go.

    I had posted a rant here about how Chalk hadn't released the multitouch firmware, but in between writing and this post being approved (4 days), Chalk had released the multitouch firmware, and it works quite well!

    The final thing; There is no fan in the case quite yet, and we're about to get some warmer days around here. I am using Zooper and Tasker to show me the CPU temp every couple seconds. So far we got up to 80 C in the heat of the day while under a bit of CPU load, so not bad. I'm waiting on another relay. Once that comes in I'll set it to about 45-55 degrees to start up a fan.

    Ok, that is all.

    Here is another video:

    Last edited by focused; 06-20-2014 at 10:48 AM.

  9. #9
    Newbie focused's Avatar
    Join Date
    May 2014

    Almost there...

    Here's a quick update:

    I didn't work too much on it over the last week, but finally got around to starting the fab work a couple days ago.

    I'm going to preface this by saying I'm new to fab, and straight up brutal at it so far. Fortunately the dashes are really cheap from the wreckers, and I know they have at least 3 more.

    I decided to use bondo, because it's readily available and pretty cheap.

    I used a plentiful amount of Bondo, and sanded, applied more, sanded... then dealt with air bubbles, and sanded. Starting with 80 grit and working my way through 120, 220, then 600.

    Name:  062301resize.jpg
Views: 2030
Size:  333.3 KB
    Name:  062302resize.jpg
Views: 2009
Size:  272.8 KB

    I actually really like the white look, and almost wanted to get white paint for the dash. But I figured that would make it really obvious there's a screen in there, and wouldn't match Ford's beige colour scheme.

    Name:  062303resize.jpg
Views: 2098
Size:  243.3 KB
    Name:  062304resize.jpg
Views: 2216
Size:  192.4 KB
    Name:  062305resize.jpg
Views: 1994
Size:  209.6 KB

    So I started using some black spray paint.

    Name:  062306resize.jpg
Views: 1990
Size:  353.8 KB

    And then I doubted myself and went to silver... but it was a bit too shiny, and showed off how terrible I am with Bondo.

    Name:  062307resize.jpg
Views: 1997
Size:  223.1 KB

    So I went back to black and started putting things in. The hazard light sits kind of awkwardly.

    Name:  062308resize.jpg
Views: 2054
Size:  252.9 KB
    Name:  062309resize.jpg
Views: 2060
Size:  278.3 KB

    I then put it in the car. The hazard light sits pretty awkwardly. It's being held in by two screws that go into the Bondo... which I'll probably have to reconsider. Also, the wires going to the hazard button barely make it there, and it's going to be a giant pain when I take it apart. So I'll likely end up patching an extra few inches of wire at some point.

    Name:  062310resize.jpg
Views: 2013
Size:  226.8 KB
    Name:  062311resize.jpg
Views: 2456
Size:  221.3 KB
    Name:  062312resize.jpg
Views: 2030
Size:  241.3 KB

    One of my buddies was asking how I'm going to be able to listen to local broadcasts with this carputer. I can't remember the last time I intentionally listened to the radio, but I had one of those USB SDR sticks just hanging around. I went out with wire cutters ready to start splicing cables, but it turns out I had some foresight and bought the right adapter (even before I started considering this project) to connect directly to my antenna. I purchased the SDR Touch app from the Play Store, and can pick up regular FM, as well as all the other frequencies the stick can tune into.

    Name:  062313resize.jpg
Views: 2313
Size:  203.8 KB
    Name:  062314resize.jpg
Views: 2811
Size:  219.5 KB

    There's an extra USB hub in the glovebox for flash drives or charging phones. It doesn't seem to have the amperage for a USB hard drive though.

    Last week I recompiled the kernel again to overclock the CPU. The new kernel sources have the Odroid fan precompiled, so I ended up putting the fan on the CPU. At first I had overclocked and set the fan to start at 60 degrees C. This was fine when it was running, but after a trip, if I needed to restart, the Odroid wouldn't make it past the boot screen unless it had time to cool off. So I eventually ended up just going back to 50 degrees, 1.7Ghz, I didn't notice a major speed advantage in overclocking to 2.0Ghz.

    So, we're pretty well there. I would even say that I'm done. But I might have more plans for it, or want to make it look better in a few days.

    Reviewing my project goals:

    My goals are:
    -Easily navigate to the next customer's location - Yup
    -listen to music (Mp3s) - Accomplished
    -Add/Remove files from the computers in the house (over wifi) - With ES File Explorer FTP yes
    -See text messages, toggle the phone (w/ tablet talk) - Oh ya
    -have just the Odroid on all the time (DC-DC cuts out at 11.6V) - No, but I drive pretty well daily.
    -Make it look very close to OEM - Close enough for me to be happy with it

    Also, throughout the project, having everything be reversible for when I sell the car became a big factor. There are no permanent changes, or spliced wires. Everything can be brought back to stock within 10 minutes.

    Thanks for reading!

  10. #10
    Constant Bitrate
    Join Date
    Dec 2005
    Raleigh, NC
    First off, very nice project. I would love something similar in my car but have always been worried about the always-running PC draining my main battery. Have you noted how long it takes for the ODroid to drain your car's battery down to where the DC-DC USB will kick it off?

    Also, what I do for internet on my tablet (2012 Nexus 7) in my car is USB tethering. Setting up Tasker to auto-initiate USB tethering on the phone when connected to a PC/tablet is pretty simple and actually charges the phone rather than killing the battery in short time. Also I've noticed that it was more reliable than Wifi or Bluetooth tethering. I think what you need on the ODroid is to compile in the NDIS drivers if they aren't already.

    Looking forward to seeing a finished project and hearing more, good luck!
    "You're just about as useless as JPEGs to Helen Keller" - Wierd Al

Page 1 of 2 12 LastLast

Similar Threads

  1. Problem connecting OBDII scanner to 2004 European Ford Focus
    By ush1 in forum Engine Management, OBD-II, Engine Diagnostics, etc.
    Replies: 8
    Last Post: 01-06-2011, 07:20 AM
  2. ford focus
    By bmbm in forum Newbie
    Replies: 6
    Last Post: 03-14-2008, 07:31 AM
  3. Ford Focus PPL
    By Phenetix in forum Power Supplies
    Replies: 0
    Last Post: 10-13-2007, 03:59 PM
  4. Does the Ford Focus (2004/5) play MP3 CDs ?
    By SAScooby in forum Car Audio
    Replies: 11
    Last Post: 02-15-2005, 04:57 AM
  5. Ford Focus MP3 Car PC
    By stevieg in forum Show off your project
    Replies: 38
    Last Post: 09-28-2004, 06:46 PM

Tags for this Thread


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts