No announcement yet.

Please commont on a n00b's design idea of a do-it-yourself car audio system

  • Filter
  • Time
  • Show
Clear All
new posts

  • Please commont on a n00b's design idea of a do-it-yourself car audio system

    Hi everybody,

    I'm not sure how to start, so why don't I just present you with everything I've got so far, since I'll be sticking around here from at least some time =) I'd like to apologise in advance for the very long post this is.

    I've recently bought an old Mercedes 300GD from 1984, and I'm slowly beginning to feel that its casette tape player it isn't sufficient for my humble audiophile needs. Being
    an engineer of education and linux enthusiast by heart, the task of putting together my
    own car audio system seems obvious. So I started researching a little, and quickly found my way to MP3Car and its forums, where I've found some very good information and inspiration.

    Most of the systems I've read about here, are very advanced with big screens, GPS navigation, cellphone interfaces, and what not. I just want a simple and minimalistic system, at least on the surface, i.e. the user interface.

    My hope is that the larger part of the system is found in the software, as this is my main
    interest; I want to complete the hardware part to be as quick and painless as possible,
    while still conforming to my own strict requirements to the user interface and software
    platform =)

    The status so far is that I've found some components that I think can realize my idea, but before I proceed any further with the purchasing and mock-ups, I'd like to ask some of you experts to review my design decisions so far, if you'd be so kind. Also, I still have some gaps where you might be able to point me to further information.

    Please allow me to start by laying out the user interface and main features, as I think those will give you a good idea about what it is, I want to make.


    Possible layout:

      +---+    _____               +------+                                             
      | 0 |   /     \              |  []  |            +----------------------+  +-+
      |   |  /       \             +------C            | 01234567890123456780 |  | |
      |   |  \       /   +------+  +------+  +------+  | 01234567890123456780 |  | |
      | 1 |   \____B/    |  |<  |  | > || |  |  >|  |  +----------------------G  +-H
      +---A              +------D  +------E  +------F
                                [ I ]     [ J ]                                  [ K ]
      A: Power switch            F: Next button
      B: Volume knob             G: 2x20 LCD
      C: Stop button             H: USB slot
      D: Back/Restart button     I: Toggle shuffle/sequential playback button
      E: Play/Pause button       J: GPS logging control button
                                 K: Copy button.
    A very concrete problem is how to in fact make the panel. Do there exist boxes I can buy that will fit directly into my car's "audio slot"? Does this "audio slot" have a proper name? =) Or must I buy a piece of metal, grab my toolbox and do it the hard way? Where can I buy plastic that resembles the texture of my dashboard that I can stick on the metal?


    A brief description of the main features of the car audio system. Note that almost all of the software, is somehting I need to write myself, or figure out how I interface to.

    • x86-based PC runnig Linux.
    • Playback MP3 files from PC's harddrive OR from USB memory stick if inserted in slot [H].
    • Simple control of playback with buttons [C,D,E,F].

    • Synchronise MP3 files with directory on home LAN over WIFI. Sync should take place after driving, ie. when the car engine is turned off and the LAN is withing reach.
    • Automatically volume control according to ambient noise; e.g. turn volume up when driving fast and tyres end engine are making noise, and turn down when stopping for red light.
    • Copy music from USB memory stick to HD at the push of a button [K].
    • Start/stop GPS logging/Mark point of interest.
    • Add a display [G] and allow advanced logic and feedback.


    Now for the interesting part and where the trouble really begins. These are the components I've researched and found useful. Most of them are should click well together, either though USB or CMOS, but I'd like to hear if there's any problem I'm not aware of, or if better or cheaper solutions exist.


    The PC should be an x86-based system that runs Linux. It should have USB and WIFI and storage. I began looking for a mini or micro ITX solution, but they all seemed awfully expensive, and usually don't have WIFI or storage, and most have noisy fans I find my conclusion a bit weird myself, but never the less it seems to have it all:

    Asus Eee 701:

    I'll have the PC mounted under the dash board or behind the user interface somewhere. Perhaps have it in the glove compartment to begin with. WIFI connection might be a problem due to shielding. the Eee has another big advange over almost anything else: I can immediately pull the car in, debug and redeploy the software as I find the bugs =)

    The Eee runs on a 9,5V DC power-input jack which should be possible to get off a 12V car battery with a DC-DC regulator.

    I/O CARDS:

    I've been searching for a decent I/O interface that required minimal work from me,
    and I think one of these Phidgets will suite my needs well, particularly because it seems to
    have a nice API. It's made with a LCD, which could be fun, though it does break with my old-school design.
    I still haven't made up my mind yet:

    Phidget I/O:
    Phidget I/O with LCD:

    PUSH BUTTONS [C,D,E,F and I,J,K]:

    The buttons are important to me. They should look old-school, while at the same time not look super cool.
    Blue LEDs are banned here! Click sounds are most welcome. The buttons should be connected to the digital
    inputs of the I/O card. If I add more that 8 buttons, I'll have to multiplex the digital signals.
    These are the buttons I've been looking at:

    Rectangle push button with LED for buttons [C,D,E,F]:
    Square push button with LED for buttons [C,D,E,F]:
    Coloured push button with LED for buttons [I,J,K]:
    Small push button without LEDs [I,J,K]:
    More here:

    I will most likely find some smaller buttons for [I,J,K], add a standard LED next to them, so the can give
    visual feedback about their state, (e.g. "Shuffle turned ON", "GPS loggin turned ON", "Mark GPS position acknowledged",
    "Copying"). I'll use the digital outputs of the I/O card to control LEDs and LEDs in buttons.
    Though the buttons say their LEDs are 12V or 6,3V -- who can that be?

    Is it btw. possible to fade a LED like in the buttons above? It would be very nice to have buttons [C,D,E,F]
    illuminated more when pressed/active (e.g. play button [E] when playing).

    Regarding the icons for play, pause, stop, etc. I'll look for some stickers to put on, or cut the icons out in black tape
    and put on, or make a stencil and pain it on. Any advice?

    I sure hope these Star Trek buttons will look as good as I imagine them to =)


    This is a little complicated, mainly because I haven't decided exactly what I want. I'd like to hear about solutions
    from similar projects.

    My favourite solution is this, but I haven't found the button yet. An analouge potentiometer
    that can turn the volume up and down in an absolute (vs. relative) manner -- this way I can set the knob at
    a given position, and I know how how loud the music will play. When I turn it all the way down, it should say click
    and power off. This will discard the need for a separate power switch[1].
    The I/O card has an analouge input that I can use for this. My software can read the value and adjust the
    playback volume accordingly.

    But where can I find such a volume knob? If I could push it (and perhaps fire a digital event)
    so I could mute it (from software), it would be super.


    I was thinking something big and fat like this:

    Power rocker switch:

    But I haven't made up my mind yet about what "off" really means. If it means stop playing music,
    a push on the stop or pause buttons would be enough. What it probably does mean, is power on/off
    the PC itself. Since this in fact is a PC, and not a simple tape player, events from the power button
    should probably only be request, and not directly pull the plug. And even if I did pull the plug,
    in my case the PC has a battery of its own, so it would live on.

    So what I need is some sort of a power on/power off strategy and smart power supply unit,
    which I've described below in section of its own. Comments are very welcome, since this is something
    I know close to nothing about.


    This topic doesn't need much attention, but perhaps a link to a better or cheaper device.
    I haven't done much thought about it yet myself, as I don't expect much trouble. I just need
    something I can interface with in a reasonable manner form Linux. Maybe just stream GPS coordinates
    as the tick in. That's right, I'm not interested in any visuals like maps or routes (at least until I load the coordiantes into GoogleEarth at home).

    I already have a GPS logger which I enjoy taking with me almost whenever or however I move,
    so I thought it would be a good idea to integrate it. Should I drive past a place I would like
    to take a picture of another day, when the weather is right, I can mark the spot with the push
    of a button. The logs and marked position are uploaded from car to home during sync.
    I've quickly found this:

    GPS Mouse:

    Anyone know of a good GPS receiver that uses usb and works fine with Linux?


    My car is not as comfortable as new cars, and the rough 4x4 tyres make quite allot of noise when driving fast (+60km/h =).
    Therefore I'd like the audio system to react to this; when it gets noisy inside the car, it should turn up the volume,
    and when I stop for red lights, it should turn down the volume.
    I thought about using a simple PC microphone and jack it in the PC's sound card, do a little sampling,
    and adjust the volume accordingly. But I doubt it'll be that easy. Mainly because of the problem with feedback,
    that is just waiting to blow out my ears and speakers =). So either I place the microphone somewhere intelligent,
    or I don't use a microphone but a motionsensor? Or maybe some of you have a clever solution.


                                  CAR BATTTERY
                                        |             |
                                        v             |
                                      SMART           |
                                       PSU            |
                                        |             |
                                        |power        |
                                        |             |
                                        v             v
      USER INTERFACE PANEL  <------->  PC  ----->  AMPLIFIER  ------>  SPEAKERS
                               user        music              music!
                               I/O     ^^^
      MICROPHONE  ---------------------+||                               
                           ambient      |+------>  GPS RECEIVER
                            noise       |   data


    The "SMART PSU" is still a big mystery X to me, and is therefore also the part I worry most about.
    According to the FAQ (
    is consists of a regulator, startup/shutdown controller, and power supply.

    According to this: the Eee uses 22W. Is there a not a power supply
    made for this? Perhaps something like this, but built to connect directly to the battery instead of the cigaret lighter?

    Car adatper for Eee:
    I've found this in the shop, but it's pricy:

    I've thought about some requirements for it, do they sound sane?
    • PC should be powered only when engine is running, ie. from after ignition and until it stops.
    • A relay should ensure this, and thereby also ensure that the car battery isn't drained from the PC (laptop!) charging its own battery when the engine is turned off.
    • When the engine is turned off, the PC should receive an event. In practice, this will probably be an ACPI even saying the PC has lost external power and has switch to battery. At this point, the PC will assume it is home, and will look for the home wireless network. If found, it will synchronise GPS logs and perhaps MP3 files. Then the PC will shut down or hibernate.
    • When the engine is turned on, the PC should likewise receive an even, look for the network,and sync new MP3 files. A LED will indicate whether sync is in progress or complete =)

    Should I use the 5V power from a power supply to power any LEDs, or is it ok to take it from the I/O board? Hmm..


    I have found out how to interface to the mp3 player software. I was thinking perhaps to let my own software
    implement an IrDA stub and control an mp3 player though these evens, as if they were fired from a remote control.
    But I think xmms has perhaps an even cleaner API. Any suggestions?

    I though I'll just playback the sound from the computer as described on the first example here,
    so I need an amp:

    If you've read this far, I thank you very much, and hope you have an insightful comment or two =)


  • #2


    • #3
      Yeah. Anyway, I'm working on the software at the moment. Got some proof-of-concept working where I can control the volume of the mp3 playback with a knob. I've also got push button interrupts working, and am not polishing the implementation.


      • #4
        Software or hardware control for the volume?

        I had a software widget that I used originally on my touch screen... but with the amp having the control over the master volume, I am using a control knob hooked directly to it so I can control volume over the whole system.

        Detailed write up! I like it.


        • #5
          Hardware knob controlling volume level in software and the software MP3 player. The blue print is basically sketched above =) But I'll give a detailed write up when I'm getting further, particularly on the software as this is getting interesting.


          • #6
            Carb or fuel injected? more than like a carb. if that is the case I would tap into the speeddo cable and have the pc adjust the volume to that. then you could really **** of people riding with you by gunning it then stomping on the brakes
            Originally posted by menudude
            thank you all for your help minus the useless post by sjlucky...