Home > Projects > How To – DIY – Projects > DIY Arduino FM Radio Shield

DIY Arduino FM Radio Shield

Summary of DIY Arduino FM Radio Shield


This article details a DIY project to interface a $3 FM radio module based on the YD9088 chip with an Arduino. The author explores "bare metal" experimentation by soldering wires to the radio's surface-mount components, specifically targeting pins 15 and 16 for button control and adjusting voltage levels on pin 15 using a potentiometer or resistor divider. The setup requires power from the Arduino's 3.3V regulator and uses headphones as an antenna since the radio lacks a dedicated external antenna wire.

Parts used in the DIY Arduino FM Radio Shield:

  • Arduino board
  • FM Radio Module (YD9088 chip)
  • TDA7088 compatible IC (clones like SC1088, SA1088, CD9088, D7088, or YD9088)
  • AAA batteries or CR2032 coin battery
  • Potentiometer (1 k ohm)
  • Resistors
  • Soldering equipment
  • Headphones or USB speakers cable

I’ve been visiting local convenience store (Dollarama, here in Montreal, Canada) and notice nice looking FM Radio, just for only $3. Why not to try to interface it to my lovely Arduino? Idea looks quite challenging, the same time what is the point in interfacing a DSP radio shield to arduino? I don’t need a radio, I want to have fun experimenting with it, so  lets go to the bare metal!

DIY Arduino FM Radio Shield

You, probably, could find the same or very similar radio all around the globe, with two buttons user interface, powered by two AAA or one CR2032 coin battery (like in my case), and low price. Hardware design based on IC TDA7088 (depending on the manufacturer, may be “clones” SC1088, SA1088, CD9088, D7088, or YD9088). My radio has YD9088  inside. Quick search on a Google, brings a  data sheet. I’d say, It’s not very informative, but at least it shows basic application circuit.

HARDWARE.

The most difficult part of this project, is soldering to surface mount radio components. In minimum configuration just two wires, “interfacing” two front-panel buttons. (Other two, for powering up the radio from arduino +3.3 V on-board voltage regulator instead of battery, should be much easier to attach). I solder wires to the caps, on the side, which connected  to the pins 15 and 16 of the IC. In this case, there is minimum impact on usability of the radio, as buttons were not touch. May be important for debugging. If your soldering skills are not as good as mine, you could solder to the traces, removing buttons. On the pictures below you would find two more wires, attached to pin 1 and to earphone’s jack-connector, but they are not in use in this project, and you could left them out.

If you look at the electrical drawings of the shield, you would notice  1 k pot. I build a first version using just two resistors divider, as it shown in “Reset” signal line. But it turns out, that IC is quite capricious for the voltage level it senses on the “Scan” input. On some occasions, it refused  to change a station, and in some it flipped to “reset”. Trim the pot, to get voltage at pin 15 about 3.1 – 3.2 V.  It would be easy to measure voltage with DMM, temporary changing “delay” in this section of the code:

if (incomingByte == 's') { // SCAN - UP 
  digitalWrite( scan_pin, HIGH ); 
  delay(50); 
  digitalWrite( scan_pin, LOW ); 
  } 

DIY Arduino FM Radio Shield Schematic

to 10000 or even 20000.  You may need something to be plugged in the earphones jack, as radio is using wires like an antenna. Headphones, or USB speakers cable, works quite well. BTW, the default value 50 may not be enough to “push” a radio up with strong RF signal. Try to send a few “s” simultaneously, “ss” or “ssss”. Setting delay higher than 50 is not recommended, as “jump” may be to wide, so you likely to miss something interesting in broadcasting.

Major Components in Project
Arduino

 

For more detail: DIY Arduino FM Radio Shield

Quick Solutions to Questions related to DIY Arduino FM Radio Shield:

  • What is the main goal of this project?
    The goal is to experiment with bare metal interfacing of a cheap FM radio to an Arduino rather than just using it as a standard radio.
  • How can you interface the radio buttons without removing them?
    You can solder wires directly to the capacitors on the side which are connected to pins 15 and 16 of the IC.
  • Why was a potentiometer used instead of just two resistors?
    The IC is capricious regarding voltage levels on the Scan input, requiring precise trimming to between 3.1 and 3.2 V to function correctly.
  • Can the radio be powered by the Arduino instead of batteries?
    Yes, you can attach wires to power up the radio from the Arduino's +3.3 V on-board voltage regulator.
  • What should be plugged into the earphone jack if there is no antenna?
    Headphones or a USB speakers cable works well because the radio uses these wires as an antenna.
  • How long should the delay be when sending scan signals?
    A default value of 50 may not be enough; trying multiple simultaneous scans or increasing the delay slightly helps, but delays higher than 50 are not recommended.
  • Which specific chip is inside the author's radio?
    The author's radio contains the YD9088 chip.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top