It was time for a new geeky project. What could be more geeky than having a Raspberry in a car, talking to the stock radio and pretending it is a CD changer? It can also throw some messages on the information display – like the title of the current MP3 and of course it listens to all your button presses on the steering wheel and so on.
This is a bit of a revival of an older project called ‘Saablin’. Its a collection of Perl scripts that talks to certain Saab models via Can Bus (I-Bus). It was designed to run on a ‘true’ Car PC. The author tried his luck on a Raspberry when it was new as well – with limited success. A lot of stuff for the RPi has turned up after that and we got the B-Model. Remaining drawback of the older version is the quality of the audio output. To overcome that, I will use a USB sound card. Particulary challenging (for me) is the fact that the audio signals need to be converted into ‘balanced audio’. I am using (abusing) the CD changer input in the trunk of the car and that way the radio was designed. The Saablin project included a small circuit board, that converts the audio signal. I will go more into the technical details on the bottom of the article. The project is not yet finished and I am at the point installing it into my car.
- To have MP3s in my 2002 9-3 Convertible, without modifying the stock radio.
- Sound should be decent and I don’t want to compromise on the quality.
- I want to be able to push MP3s wireless to my car.
- I want to be able to SSH into the RPi at any time.
- The controls of the cars should be used, no extra switches.
- The connection to the Can Bus provides more possibilities. There are also engine related data and I want to track certain data in a MySQL database. In a later stage I want to write a LAMP application to be able to view these data.
- The RPi should connect later to my mobile via bluetooth, to be able to stream internet radio through the car stereo (love my German stations and I am in Australia)
I also had some ideas to use my rear view mirror, which is an aftermarket accessory that has a LCD screen embedded for a rear view camera. That makes reversing the car so much easier and it has two inputs. The (old) RPi still has a CVBS video out. It could be used later on to show some sort of GUI or information. But thats at he moment just a dream.
This is one of the big challenges when you install any sort of computer in your car. Usually you want it to start with ignition and stop after a couple of minutes, when the ignition is off. The RPi is not as battery hungry as a Car PC, but when it sucks 24h on the car battery, it would be an issue. There are some products on the market, to have your RPi running that way. They all have in common that they are not really cheap. In the past, I installed a Car PC in a ’98 BMW 724 E38. I got such functionality as well plus one simple extra feature. A lead battery and a diode. The PC was connected to the lead battery – not to the car power directly. The battery of course, was connected to it, but it was a diode in between. The car would charge the battery when the generator was running, but when the engine was not running, no current would flow. In case the shutdown of the PC fails, it would just suck the (small) lead battery in the trunk empty.
For the RPi I am doing the same. But this time I bought a lot larger battery (12V 6.5 AH). Something you find commonly in UPSes. To bring the 12V down to 5V, I am using a Turnigy SBEC delivering up to 5A from HobbyKing. Thats something you would usually use in a RC model to power receiver and servos. It can take anything between 7 and 26V and you select whether you want to have 6 or 5V output. It costs less than $10 and is lot a more reliable and powerful as all these cheap car USB adapters.
No idea, how long the RPi would really run on it. For that I am doing now a test on my bench. Read a lot of figures on different sites, calculation etc. – but nothing is better than a real test. I hope it can run at least 12 hours on it.
There are different boards available you plug into the GPIO connector on the Pi. I decided to go with the Pican one. It was like something bout $AUD 50+ including shipment and will do (hopefully) a better job than the USB solutions. All it needs are 3 wires (Can +, Can -, Ground) that go into the CD changer connector in the left side of the trunk of the Saab.
This is also the place, where the 4 audio wires will be connected. The trunk will be the place, where battery and raspberry are located. For the WiFi dongle I will use a USB extension and maybe hide it in the compartment, where the convertible roof goes.
Balanced Audio Adapter
To be able to use the CD changer audio inputs, the audio signal needs to be converted into balanced audio. There is on IC from Texas Itruments, the DRV134, which basically does the job. On the Saablin.net website is a small PCB to download, which makes uses of two DRV134 chips (one per channel). I found the chips for less than $3 on ebay, including shipment from China. You would also need a couple of capacitors and probably someone who can etch the circuitoard. I found here one vendor in Australia, who did that $25 dollars. I do not have much electronic knowledge and hope, that everything is correct the way I did. The circuit board on Saablin comes with almost zero information. For people who are really into electronics certainly enough. But this part is for me the hardest. The board is ready now and soon I will know, if I did it all correct.