Arduino Car Stereo

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I'm new to electronics (coming from a Software background) and have started playing with an Arduino to control an Si4703 FM Receiver.

My goal is to eventually create a car stereo with an Aux-in feature (from an iPhone). Here's what I'm planning:

  1. Switch between the radio and Aux-in using a 5V 2A DPDT Relay (EC2-5NA)
  2. Control the volume using a Dual Audio Digital Pot (DS1807)
  3. The output would then go to an Amplifier.
Is there any reason this wouldn't work? Could I do it better another way?

Thanks,
Andrew

[EDIT]
ArduinoCarStereo.jpg


Lots of photos, all the code, libraries, and design files for my Arduino project, can now be found at:
http://www.retrojdm.com/ArduinoCarStereo.asp
[/EDIT]
 
Last edited:
I don't know enough about the FM receiver to offer any advice but if you plan on using the iphone on a charger that connects to the vehicle's electrical system, you may run into problems with engine noise due to ground loops. The can be solved by using a balanced input for the iphone or using a ground loop isolator.
 
Administrator
Joined 2004
Paid Member
I'd think the arduino would be a very good way of tying this all together and controlling the various chips. Does the volume control IC also provide bass, treble and balance controls as a minimum?

Rather than a relay I'd probably use a cmos switch to switch the audio from the iPhone.. Given the battery life of an iPhone I'd think you could use it as an audio source without too much concern about charging it while connected to the stereo. (Noise injection might be a problem with a car charger)
 
The DS1807 doesn't have treble / bass control. It's basically just a dual digital potentiometer. Balance could be achieved by controlling the left and right channels independently.

For now, I want to keep the whole system as simple as possible (while I'm learning).

----------------------------------------

Here's some extra info for anyone curious about what I'm up to...

Based on an Arduino MEGA 2560 R3, my project has the following features working so far:

  • Si4703 FM Receiver
  • DS1307 Realtime Clock
  • 4-character 7-segment display (to be replaced with an alphanumeric display)
  • Tuning and Volume rotary encoders
  • Source / Mute / Display / Set Clock buttons
  • Seek up/down buttons
  • 5 radio presets (plus Mem button) with LED indicators
Pushing "Display" toggles between the radio frequency and clock.
Setting the clock is achieved using the "Set" button (to cycle between hours/minutes/ok) and the "Tuning" rotary encoder.


2012-07-30%2001.jpg




The expensive part of my project is going to be creating a faceplate the looks nice enough to put in a car. I'm planning on having one laser-cut from stainless steel, then printed on.

The reason for all this is to avoid cutting my car's dash to fit a new stereo. Unfortunately the hole in my 1977 Toyota Celica is a strange size that even a "RetroSound" won't fit.
RetroSoundUSA.com - Classic Style Radio Systems
 
Hey Brandes, you're right about the FM receiver being controlled serially. Both the radio and realtime clock use I2C.

I'd thought about the opposite, where the Arduino would control the iPhone. I even daydreamed about getting fancy and doing it all via bluetooth. At the moment my ambition greatly exceeds my skill ;)

I want to keep my radio looking oldschool (so it doesn't look out of place in a 70s car). Here's a photo of my interior (with OEM radio), and another from an 80s Toyota brochure showing the look I'm trying to copy.

2012-06-04%2001.jpg
86120-89118.jpg
 
I like the old school look, which you could keep your knobs, but make the display look like the old push buttons from yesteryear! I think the Iphone is a straight modbus communications link, nothing fancy about it. That might be a little to much for now! :)

I'm lost when it comes to Iphone/lock down coding. I assume the Arduino uses an Atmel processor? I have done some embedded C with atmel and have moved towards Java/C# now. Which lends itself nicely for android apps.

Good luck, I may order one of the those FM modules to play with.
 
I neglected my Arduino Car Stereo project for a month while I worked on the car and waited for eBay purchases to arrive.

I've finally got the following working using a PT2314 (also known as Mosa MS6714):

  • 4-channel Input switching
  • Volume
  • Balance
  • Treble
  • Bass
It's only using two inputs at the moment (Tuner, and Line-in). I'm thinking of adding USB/MP3 functionality via a VMusic2 in the future. We'll see I guess.

Here's a photo of my breadboard spaghetti...


2012-08-31%2001.jpg


...So much for keeping it simple ;)

To Do:

  • 12-char 5x7 LED display (3x HCMS-2903's)
  • Design a PCB as an Arduino MEGA shield
  • Design a PCB for the buttons/display face (connected to the shield via an oldschool floppy drive ribbon cable)
  • Stainless steel faceplate laser cut and and etched
 
i'm pretty sure i have some stuff laying around that could fit and mesh with the factory install. what exactly are the dimensions you are working with? i'll check right now, but i know i have eq/drivers in mini-form of their time, looks about the size of what would be the 8-track receptacle. first thing that came to mind with this project was a good 'ole eq/line driver. i could have swore i had more older radios of that style, but might have tossed most of it.
 
good thing you steered away from using a relay, that was the worst idea ever. hehe. They make several chips that are all-in-one signal processing, such as bass/volume/treble, some even have EQ. and input switching.. etc... most if not all I2C controlled.

Then from there, you want to drive your audio output IC for running your speakers.

if you have an IC thats 4-input you can do your radio on 1, aux on 2, MP3 on 3, CD on 4. (driving some CD-Mechs from junk headunits isnt hard). So if you have old CD-Mechs lying around most are connected via small ribbon cable. You can usually get a datasheet on the CPU thats on the CD mech and you can send data to it to control it, change tracks, read CD_TEXT, etc... Also you must build some linear volt regulators to drive the CD mech. Most are 5V, and 9V.

gotta watch out though as some CD mechanism assemblies are "dumb". They contain only servo control systems and require all the brains to be done on the mainboard, such as decoding the TOC, stepping the servo, even handling the I2S data for the DAC to get Audio coming from the mechanism, heck with that.

the newer CD mechanisms from old junk Dual units, etc.. are MCU based. The DAC, Servo, CD control processor, etc.. are all on-board the mechanism assembly. All the mainboard does is supply it Servo power, Logic power, and provide a (mostly 8-bit parallel, newer is serial) datastream to control it.

What data to be sent to the mechanism to control it, varies greatly depending on the MCU used on the mechanism which you can find datasheets for most of the time. The packets contain CD return/TOC/Timing data. Track info, etc.. Packets from the mainboard back to the mech, tell it to eject, take in, check sensors, and step track forward/backwards/stop/play. etc.. thats it. Almost like your typical computer CDROM if driven from an external micro for it to act as a CD player.
 
Last edited:
I won't have the width needed in my stereo face for a CD slot, but that's a genius idea!

This is a photoshop mock-up for what I'm planning...

ArduinoStereoFaceDesign.jpg


...we'll see if I can make it look like that in real life.

I've already got the knobs, rectangular LEDs, and iPhone 4 power buttons for source/mute/display/set. The display, Seek and Preset buttons are on digikey.com

I just need to find somewhere that will laser-cut and etch some brushed stainless steel for me.
 
I've had a couple of people ask for my code, especially the stuff relating to the PT2314.

So in the interest of open source, here we go :)

The file: ElectronicTuner.zip is my Arduino project.


Feel free to do whatever you like with this code, just give me credit in the comments if you use a big chunk of it. If you do anything cool, let me know!


Andrew
 
Very nice, I'm sure that there's more people than me that appreciate you sharing the code with us! :)
Open source is great!

Do you remember what kind of rotary encoders you choose for your design? And where did you get the nice looking knobs? ;)

I hope you find the time to finish your project! Good luck!
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.