2002 Volvo S60 Work Log
For the first post, I'm going to say what my plans are with this project. Future posts will have pictures and progress.
Fairly powerful PC and WiFi router in trunk, built into my Amp rack.
My own front end which will do:
- OBD II
- Fusion Brain
- Control of windows/sun roof
- Control of remote starter
- Control of alarm and locks
- Steering wheel audio controls
- Control of lights
- Control of climate
- Front and rear bumper distance sensors.
- Music Syncing with my home computer when I pull up in the driveway
- Different options shown in relation to GPS
- Ask if i would like to call a friend when I pull up in their driveway,
- Give me garage door controls when I get home
- Give me weather and gas prices
Remote Control Device (some sort of PDA/Phone, still undecided)
- Use wake on lan to get computer running
- Figure out once computer is running and display the control application
- Allow controlling of everything the front end does
- Get alarm alerts
more to come...
Well, the first post in the worklog is actually a setback. One of my friends was screwing around and thought it would be a good idea to jump on my car...
He's about 180 pounds and landed elbow first on my sun roof.
Picture attached. haha
The mess that is my work area:
Transflective Lilliput touch screen mounted in double din bracket
Now for the actual computer:
Motherboard: GIGABYTE GA-MA74GM-S2
Processor: AMD Athlon 64 X2 5050E (uses only 45 watts)
Memory: 2GB low profile Kingston
Hard Drive: 80 GB 7200 RPM Fuijitsu notebook drive
WiFi: Edimax EW-7128G (this card is awesome and costs 20 bucks)
Power supply: M4-ATX
My motherboard mounted to part of a destroyed emachine case from 1995 (I knew it would come in handy one day):
view from the back with fan mounted:
The case this came from:
The Dremel that did it all:
The Edimax wifi card:
The edimax's external antenna:
This is the standard ATX power supply that I'm using on my test bench as a source of 12 volt power for the M4-ATX (costs 13 bucks on newegg and supplies 18 amps on the 12 volt rail also has an on/off switch):
My fusion brain (this thing was a lot smaller than I thought it was):
Just bought a Sheeva Plug development kit here:
Have to wait 4 weeks for it to arrive though. Grr.
When I get it, I'm going to hack it up to let it run off 12 volts.
This diagram makes it look like that will be easy:
I'm planning to have the sheeva do a few things to help out the computer.
- DHCP - I'm going to put an access point in my car, which doesn't do DHCP on its own.
- Web Server - Planning on making a PHP interface that will do a few things
- Wake on Lan - it will let me turn the computer on remotely
- Check when the computer turns on, and use AJAX to tell the connected device, redirect the device over to the computer as a server.
- Possibly fusion brain. This way, the computer doesn't need to be on for me to remotely control my car. This might add too much latency though, so I don't know yet.
I'm thinking of building a tiny remote control with a screen that I can add to my key chain which would run over wifi and control the sheeva.
We'll see where my brain and budget takes me.
Still waiting on the sheeva plug, but this weekend I took my car by my friend josh's house. His father works at a carpentry shop so he has infinite amounts of free wood and plenty of tools. I went a different route than most people here did. I have 3 amplifiers, so there is definitely a lot of space getting taken up by those guys. The back half of my trunk has been lost for a long time because of those guys. What I did at my friend's house was build a shelfing system in the back of my trunk. Top shelf = computer/computer components. Takes up 5 inches of height. Second highest shelf = amps takes up 3 inches in hight. Bottom: 7 inches of storage. Nice, regained some storage space. I'll post some pictures tomorrow. The only issue is that I can't buy spray paint because I'm not 18 so the wood isn't painted. Grr. The government is not my parents.
I actually do have the computer running in the car now, but I haven't put the touch screen in the dash yet or ran any wires to the front of the car. So right now, I just have the touch screen sitting on the passenger seat. It does work though.
Whoa, under 18 eh? Impressive. I thought I might be one of the youngest here!
I (am taking / took) a similar route with the amplifier shelving unit because I have 2 amps and the computer waiting to go in the trunk!
Better get moving on that SheevaPlug thing, seems interesting! Good luck! Get some spray paint!
Yeah I think there is one other guy around here under 18. I've always been a computer guy, an electronics guy, and a car guy. Now I'm just putting all the hobbies together.
Shelving is the way to go. It gives me a ton of space to do whatever I want and it hides all the wires where no one will ever be able to see them. In this project, even if someone opens the trunk, they won't be able to see one wire.
That SheevaPlug is on an obnoxious backorder. Still have a few weeks to go. That's probably for my benefit though as it will allow me to focus on school.
Made a bit more progress though. I decided I was too cool for using the M4 as a startup/shutdown controller. Shutdown will be controlled by only software and it will discover when to shutdown through the fusion brain and timers. For startup I designed a cheap/easy/foolproof way of turning on.
To turn it on I use two relays. One is attached to the 12 volt wire in the computer, and the other is attached to any combination of 12 volt lines in the car. What happens is there is a wire which passes through both relays. By default, the one attached to the computer 12 volt rail is allowing power to pass through. The other relay defaults to off, and as soon as it gets 12 volts, it allows power through. So now the motherboard on header circuit gets closed and the laptop powers on and then as soon as 12 vols is supplied from the power supply, the other relay opens the circuit up to prevent it from "holding down the power button."
Didn't get a chance for pictures today though. Will post soon.
Physical updates: sorry, i get too excited and forget all about pictures while I'm doing it.
But heres how that goes: I have the screen sort of in the dash and the computer sort of in the trunk. It all looks like crap right now, but it's sort of a test run. Right now I'm using a centrafuse trial to see how things are working out and it's going well, but I MUST get rid of centrafuse very soon.
Software updates: Working out excellently. I've now spent a few hours on programming the music part of things and I've developed my exact game plan and made some serious progress on it.
The music portion of the software is going to consist of several parts.
- Music Indexer on Home PC
- Takes music from a folder where you "drop" music files
- Reads all ID3 tags and stores that information in mysql database
- moves files from drop folder to songs folder
- names files in songs folder by their database id for example 146.mp3 for easy programming access.
- While adding music to database, it queries Amazon for album art
- users don't touch the "songs" folder
- Eventually there will be a program which allows you to export from the songs folder to song files labeled using the ID3 information
- Copies mysql database across network to car PC
- Copies song files across network based on database
- Player on car PC-eventually part of my whole front end
- Player uses mysql to get song information - no time wasted on tag reading
- Queries make it easy to get a list of songs/files to play, things like shuffle take a one word modification to the code.
- BASS audio library used to actually play music and do visualizations
All of this is written in C#. Right now, I've written most of the indexer part, I just need to work on getting the album art in there. Should be done by Monday.
I haven't used the BASS audio library extensively yet, does anyone know how good/bad the sound quality is on it? It's supposedly just as good as FMOD but with less features, but car audio enthusiasts know better than programmers...
Indexer is complete and working. That was fairly straightforward.
Only 650 lines of code. :lol:
Amazon's AWS was great for album art.
I'm considering putting up the source code I used to download album art. But before I do that, I'll need to make it prettier.
Alright first picture in a while is actually of the GUI I'm working on.
Where it says "Now Playing" will change with the page you're on in the program.
Current song/artist will always be in the top right and audio controls will always be on the bottom. Menu items will always be on the left side. This gives me easy access to any part of the program at any time in case I need to jump to nav quick. I'm thinking about making the background a visualization rather than an image. I actually kind of like the way it looks with the vista background though. There is a dreamscene moving version of that background too that I might end up using.
Maybe I'll just throw in an energy bliss style frequency analyzer shown here:
My goal is to keep things clean and simple though, so I need to be careful with all this extra stuff.