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:
Thanks,
Andrew
[EDIT]
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]
My goal is to eventually create a car stereo with an Aux-in feature (from an iPhone). Here's what I'm planning:
- Switch between the radio and Aux-in using a 5V 2A DPDT Relay (EC2-5NA)
- Control the volume using a Dual Audio Digital Pot (DS1807)
- The output would then go to an Amplifier.
Thanks,
Andrew
[EDIT]

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.
Thanks for the suggestion. I'll look into it and do a little testing using in the car 🙂
The radio I'm using is a breakout board from sparkfun.
https://www.sparkfun.com/products/10663?
The radio I'm using is a breakout board from sparkfun.
https://www.sparkfun.com/products/10663?
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)
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:
Setting the clock is achieved using the "Set" button (to cycle between hours/minutes/ok) and the "Tuning" rotary encoder.
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
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
Setting the clock is achieved using the "Set" button (to cycle between hours/minutes/ok) and the "Tuning" rotary encoder.

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
Would it be practical to use your phone for the display? I assume its serial comms interface to the FM receiver or arduino. Create an app to send data or retrieve it from the arduino board.
Android has the ioio board which makes a nice link for this situation.
Android has the ioio board which makes a nice link for this situation.
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.
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.


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'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):
Here's a photo of my breadboard spaghetti...
...So much for keeping it simple 😉
To Do:
I've finally got the following working using a PT2314 (also known as Mosa MS6714):
- 4-channel Input switching
- Volume
- Balance
- Treble
- Bass
Here's a photo of my breadboard spaghetti...

...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.
Hey AKHeathen,
The hole in the dash is 85.5 x 32mm (3.37 x 1.25 in.).
The tuning and volume knob holes are 11mm (0.43 in.) diameter, and 123mm (4.85 in.) apart.
The hole in the dash is 85.5 x 32mm (3.37 x 1.25 in.).
The tuning and volume knob holes are 11mm (0.43 in.) diameter, and 123mm (4.85 in.) apart.
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.
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:
Hey, thanks for the info 🙂
I doubt I'll add CDs to the stereo, but I'll be following your advice if I do decide to steer things that way.
Now that I've got most of the electronics finished, my focus is going to be on creating a tasteful looking face for it.
I doubt I'll add CDs to the stereo, but I'll be following your advice if I do decide to steer things that way.
Now that I've got most of the electronics finished, my focus is going to be on creating a tasteful looking face for it.
another thing you could do which is even easier is a slot-load based IDE laptop drive, and using already public arduino IDE/ATAPI CD player code. its out there, i seen it the other day.
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...
...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.
This is a photoshop mock-up for what I'm planning...

...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.
Cool project, I'm aiming to build somthing similar!
Do you still have the code and schematics? Would you share it? 🙂
Did you ever finish it?
Sorry fot bringing this old thread up again!
Do you still have the code and schematics? Would you share it? 🙂
Did you ever finish it?
Sorry fot bringing this old thread up again!
Hey Extreeem,
The breadboard is still sitting on my desk - lying stagnant while I try to finish the car it's going into 🙂
I've PM'd you some links to the files.
Andrew
The breadboard is still sitting on my desk - lying stagnant while I try to finish the car it's going into 🙂
I've PM'd you some links to the files.
Andrew
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 🙂
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
So in the interest of open source, here we go 🙂
- http://www.retrojdm.com/Files/ElectronicTuner.zip
- http://www.retrojdm.com/Files/PT2314_(15_pages).pdf
- http://www.retrojdm.com/Files/Si4703_Breakout.zip
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!
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
- Not open for further replies.
- Home
- General Interest
- Car Audio
- Arduino Car Stereo