DIY Arduino FM Radio Shield

Not rated 19,651

Circuit Image

A local convenience store (Dollarama in Montreal, Canada) offers an appealing FM radio for just $3. The idea of interfacing this radio with an Arduino presents a fun challenge. Although the primary goal is not to create a radio, the desire to experiment with it is strong. The radio features a simple two-button user interface and is powered by either two AAA batteries or a CR2032 coin battery. The hardware design is based on the TDA7088 integrated circuit, with possible variations including SC1088, SA1088, CD9088, D7088, or YD9088; the radio in question contains the YD9088 IC. A quick online search yields a datasheet that, while not very informative, does provide a basic application circuit. The most challenging aspect of this project involves soldering to the surface mount components of the radio. The minimum configuration requires only two wires for interfacing with the front-panel buttons. The other two wires will connect the Arduino's onboard voltage regulator (3.3 V) to power the radio instead of using the battery, which should be easier to attach. Wires are soldered to the capacitors on the side connected to pins 15 and 16 of the IC, minimizing the impact on the radio's usability since the buttons remain untouched, which may be important for debugging. For those with less experience in soldering, it is possible to solder to the traces after removing the buttons. Additional wires attached to pin 1 and the earphone jack connector are not utilized in this project and can be excluded. The electrical drawings of the shield include a 1 kΩ potentiometer. The initial version was built using a resistor divider as shown in the Reset signal line. However, the IC is sensitive to the voltage level on the Scan input, sometimes failing to change stations or resetting unexpectedly. Adjusting the potentiometer to achieve a voltage of approximately 3.1 to 3.2 V at pin 15 is recommended. This can be measured with a digital multimeter (DMM) by temporarily increasing the delay in the code to 10,000 or even 20,000. An audio jack must be plugged into the earphone jack to function as an antenna; headphones or a USB speaker cable works well for this purpose. It should be noted that the default value of 50 may not be sufficient to effectively receive strong RF signals. Experimenting with sending a few 's' characters simultaneously (e.g., 'ss', 'ssss') can enhance performance. However, setting the delay higher than 50 is discouraged, as it may result in missing interesting broadcasts due to excessive jumps.

The project involves creating a simple interface between the FM radio and an Arduino microcontroller, utilizing the YD9088 IC for radio functionality. The radio's straightforward user interface consists of two buttons that control station scanning and power. The integration process begins with careful soldering to the radio's surface mount components, specifically connecting to pins 15 and 16 for button interfacing. The Arduino will provide power via its onboard voltage regulator, which simplifies the setup by eliminating the need for battery power.

To ensure proper operation, a potentiometer is used to fine-tune the voltage level at the Scan input of the IC, which is critical for reliable station changes. The project requires attention to detail in soldering and voltage adjustments, as the IC's sensitivity to input levels can lead to erratic behavior if not correctly managed. Additionally, the use of an audio jack as an antenna is essential for optimal radio reception, as the radio relies on external wires to capture radio signals effectively.

Overall, this project serves as an engaging way to explore interfacing techniques between an inexpensive FM radio and an Arduino, while also providing insights into the functionality of radio circuits and the importance of precise voltage control in electronic designs.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! 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. 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: 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. 🔗 External reference