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
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.
USER INTERFACE PANEL
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?
+---+ _____ +------+
| 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 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: http://wiki.eeeuser.com/eee_pc_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'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: http://www.phidgets.com/products.php?product_id=1018
Phidget I/O with LCD: http://www.phidgets.com/products.php?product_id=1203
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]: http://www.happcontrols.com/pushbuttons/gpb520.htm
Square push button with LED for buttons [C,D,E,F]: http://www.happcontrols.com/pushbuttons/gpb350.htm
Coloured push button with LED for buttons [I,J,K]: http://www.happcontrols.com/pushbuttons/57200041.htm
Small push button without LEDs [I,J,K]: http://www.happcontrols.com/pushbuttons/49057700.htm
More here: http://www.rjselectronics.com/cms/ht...bum.php&page=1
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 =)
VOLUME KNOB (B):
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.
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.
POWER SWITCH [A]:
I was thinking something big and fat like this:
Power rocker switch: http://www.velleman.be/ot/en/product/view/?id=14175
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: http://gadgets.boingboing.net/2008/1...mouse-wit.html
Anyone know of a good GPS receiver that uses usb and works fine with Linux?
AMBIENT NOISE FEEDBACK
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.
USER INTERFACE PANEL <-------> PC -----> AMPLIFIER ------> SPEAKERS
user music music!
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 (http://www.mp3car.com/vbulletin/faq-...-part-1-a.html)
is consists of a regulator, startup/shutdown controller, and power supply.
According to this: http://wiki.eeeuser.com/eee_pc_701#hardware 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: http://www.directron.com/eeepccarkius.html
I've found this in the shop, but it's pricy: http://store.mp3car.com/DSX12VD_140W..._p/pwr-025.htm
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 =)