Recommended Free Tools
Build a tabletop FM receiver that combines modern electronics with the visual language of a vintage radio: a rotary encoder replaces the old tuning knob, while a single illuminated WS2812 LED marks the selected position across a horizontal frequency scale.
This 2020 project by Mirko Pavleski (also known as “mircemk”) uses an Arduino Nano, Si4703 FM tuner, 21-pixel WS2812 strip, class-D amplifier, speaker, and custom enclosure. It is a good intermediate electronics project, but it should not be copied without modification: a 5 V Nano needs proper bidirectional level shifting before it is connected to the Si4703’s 3.3 V I2C interface.
As an Amazon Associate I earn from qualifying purchases.
What you are building
The finished unit is an FM broadcast receiver, not an AM, shortwave, Bluetooth, or internet radio. Its signal path is:
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →FM antenna
↓
Si4703 FM tuner
↓
analog audio
↓
class-D amplifier
↓
speaker
The Arduino handles tuning, presets, volume, receiver status, and the visual scale. The LED strip is a coarse digital position indicator rather than a precise frequency display. Across roughly 21 MHz, 21 LEDs provide about 1 MHz of nominal spacing per pixel, so two nearby stations may appear on the same LED.
#1 Best Overall
- 100% SPLINTER-FREE BASSWOOD (SAFE WOODWORKING): Looking for a safe weekend project? Unlike cheap plywood, our premium kids woodworking set age 8+ uses high-grade, pre-sanded basswood. It protects little hands from splinters, offering hours of screen-free focus for family craft nights or father-son bonding.
- FREE LIFETIME PARTS SUPPORT: Kids lose pieces—we get it! Buy this diy fm radio kit with 100% confidence. If a wooden panel snaps or a component goes missing during assembly, we replace it for FREE. Enjoy a worry-free, rewarding hands-on project that lasts.
- NOT JUST A TOY, A REAL WORKING RADIO: No soldering required! In under 15 minutes, kids can safely build a fully functional FM broadcaster (88-108 MHz) with crisp sound. It simplifies complex electronics into an easy-to-follow 3D puzzle, inspiring a love for STEM and engineering.
- STEM MEETS ART (UNLEASH CREATIVITY): More than just a science toy, it doubles as a unique make your own instrument kit. Our smooth wood finish is the perfect blank canvas. Kids can use acrylic paints and markers to customize their radio, turning mechanics into a colorful masterpiece.
- The Ultimate Educational Gift: Includes all necessary components and a clear, step-by-step manual to teach real circuit principles. A perfect screen-free gift for birthdays or holidays! (Note: Requires 2 AA batteries, not included. Packaging may vary during our design upgrade).
Why it looks retro
The appearance comes from three design choices:
- a long horizontal frequency scale;
- a single moving indicator instead of an LCD or OLED;
- a custom tabletop enclosure styled like an older radio.
The original enclosure was made from 5 mm PVC sheet and finished with a self-adhesive label. That is one construction option, not a requirement. Plywood, acrylic, laser-cut panels, 3D-printed parts, or a refurbished radio cabinet can work just as well.
Parts list
Required electronics
- Classic 5 V Arduino Nano or compatible ATmega328P Nano-style board;
- Si4703 FM tuner breakout;
- 5 V WS2812 or WS2812B strip, with 21 LEDs for the original appearance;
- rotary encoder with push-button;
- small class-D amplifier;
- speaker matched to the amplifier’s impedance and power rating;
- regulated power supply or properly regulated battery system;
- FM antenna or suitable antenna lead;
- an appropriate 3.3 V supply for the tuner;
- bidirectional I2C logic-level converter when using a 5 V Nano.
Controls and construction materials
- preset and volume buttons if using the manual control arrangement;
- enclosure material, front-panel artwork, diffuser or translucent window, and hardware;
- wire, connectors, perfboard or a custom PCB;
- decoupling capacitors and bulk capacitance near the amplifier and LED strip;
- speaker grille and ventilation openings.
A SparkFun Si4703 basic breakout is the closest commercial match to the original tuner architecture. SparkFun also lists an evaluation board with a more developed interface. Check current availability, pin labels, and board revisions before ordering: these are compatible product options, not necessarily the exact board used in the original build. See the basic breakout, evaluation board, and Si4703 hookup guide.
Electrical design: the important safety issue
The classic Arduino Nano uses 5 V logic. The Si4703’s communication pins are intended for 3.3 V signaling. The tuner may be powered from 3.3 V, but that does not make its SDA and SCL pins safe for direct 5 V connection.
Use a bidirectional converter designed for open-drain I2C:
Nano SDA ── 5 V side 3.3 V side ── Si4703 SDIO
Nano SCL ── 5 V side 3.3 V side ── Si4703 SCLK
Nano 5 V ── HV LV ──────── 3.3 V tuner rail
GND ───────────────────────────── common ground
A single one-way voltage divider is not an adequate replacement because I2C is bidirectional and uses open-drain signaling. SparkFun’s documentation specifically recommends level conversion when a 5 V controller is used. Follow the silkscreen and documentation for your exact breakout; power-pin arrangements can differ between board revisions.
The tuner reset line in the original wiring goes to Nano D2. Give the Si4703 a clean, regulated supply and place local decoupling close to the board. Keep the antenna and tuner away from the amplifier, LED power wiring, and noisy digital lines.
Reference pin map
The published manual-tuning sketch uses this arrangement:
Rank #2
- DISCOVER HOW RADIO WORKS: This amazing science kit is your chance to discover how radio works while building your own! It's super easy to assemble and the perfect way for kids to explore the radio technology, learn the science of electronics and circuit through hands-on activities. It's fun, entertaining, useful and will never go out of style
- HIGH-QUALITY RECEPTIONE: Experience crystal-clear FM reception with our radio kit that automatically searches broadcasts on frequency range 88-108MHz. Its retractable antenna ensures that you don't miss anything
- UNIQUE GIFT CHOICE: Suitable for both kids and adults, this radio kit has a stylish design and practical functions, making it the best gift choice for birthdays, Christmas, New Year's Day or any other holiday. Makes a creative and unique gift for boys, girls, teens and children
- EASY TO ASSEMBLE: No soldering is required. Each science kit comes with clear and detailed assembly instructions. Whether you're a beginner or an experienced hobbyist, you can easily get started and enjoy the process of creating your own masterpiece
- SUITABLE FOR ALL OCCASIONS: This amazing product is perfect for all occasions! Whether you're at school, the office, home or on the go, it'll help you or your kids stay away from TV or computer games for a while
| Function | Classic Nano pin |
|---|---|
| Si4703 reset | D2 |
| Rotary encoder CLK | D3 |
| WS2812 data | D4 |
| Rotary encoder DT | D7 |
| Preset button | D8 |
| Volume down | D9 |
| Volume up | D10 |
| I2C SDA / Si4703 SDIO | A4 |
| I2C SCL / Si4703 SCLK | A5 |
These are source-code assignments, not fixed electrical requirements. You can use other pins if the sketch and interrupt configuration are changed consistently.
Choose the controller before wiring
A classic 5 V Nano is the easiest choice for a faithful reproduction because the original sketches target its familiar pin layout. It also makes the level converter mandatory for a reliable design.
A 3.3 V controller can simplify the Si4703 interface, but “Arduino Nano” is not one electrically interchangeable product. Nano Every, Nano 33 variants, Nano RP2040 Connect, Nano ESP32, and the classic ATmega328P Nano differ in processor, voltage, USB connector, bootloader, and library compatibility. Confirm the board’s I/O voltage and test the Si4703 library before committing to the enclosure. The Arduino Nano family comparison is useful when selecting a board.
Bring the radio up in stages
Do not assemble the entire radio and debug it as one system. Use this order:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- Power and I2C: connect the tuner, reset line, grounds, and level converter. Confirm that the board responds.
- Tuner: install a compatible Si4703 library and run a basic example. Tune to a known local station.
- Audio: connect the tuner output to the amplifier and verify sound at low volume.
- Encoder: test clockwise and counterclockwise movement through the serial monitor.
- LED strip: light the first and last pixels before installing the strip permanently.
- Seek logic: add automatic scanning only after manual tuning works.
- Enclosure: integrate the tested modules after the electronics are stable.
SparkFun provides library and Arduino hookup guidance at its Arduino instructions. The exact library class and constructor must match the library version you install.
Manual tuning mode
The manual sketch starts at 88.00 MHz and changes frequency by 100 kHz for each encoder step. It wraps from the upper limit back to the lower limit, adjusts volume from 0 through 15, uses D8 for preset selection, and uses D9 and D10 for volume down and up.
The source stores frequency in units of 10 kHz:
8800 // 88.00 MHz
channel += 10; // 100 kHz
Make the band and scale explicit rather than scattering unexplained numbers throughout the program:
Rank #3
- COOL LED LIGHT: ICSTATION DIY radio not only features the standard radio functions, but also comes equipped with 10 LED lights that add a unique twist to your listening experience. The LED lights will randomly flash different colors and pulse in sync with the beat of the music. This dynamic visual display enhances the overall ambiance and enjoyment of your radio listening experience.
- LCD1602 DISPLAY: With a high-definition LCD1602 screen, ICSTATION radio allows you to adjust the frequency and volume to your liking once assembly is complete. The buttons located below the radio enable easy customization of your listening experience. Whether you prefer a certain frequency or need to adjust the volume, this radio makes it simple and intuitive. The LCD1602 screen provides clear and detailed information. Overall, this radio is a fantastic option for anyone.
- PRACTICAL DIY KIT: ICSTATION soldering kit is an ideal choice for electronics enthusiasts looking to enhance their soldering skills and build a functional radio. It's designed to provide a practical and enjoyable experience while also improving your abilities. Our team is dedicated to ensuring your satisfaction and will work with you to address any concerns or problems you may have.
- GREAT PRESENTS: If you're looking to make a personalized present for a friend or family member, a great option could be a radio DIY electronics kit. It comes with an acrylic transparent case, which not only looks beautiful but also provides protection for the delicate components inside. This means that your present will not only be visually appealing but also durable and long-lasting.
- PLEASE NOTE: If the accessory you receive does not match the one in the manual, don't worry. It might be due to a different version, which has no impact on the function of the radio. Please let us send the correct installation steps.
const int FM_MIN_10KHZ = 8700;
const int FM_MAX_10KHZ = 10800;
const int FM_STEP_10KHZ = 10;
const uint8_t LED_COUNT = 21;
int frequencyToLed(int channel) {
channel = constrain(channel, FM_MIN_10KHZ, FM_MAX_10KHZ);
return map(channel, FM_MIN_10KHZ, FM_MAX_10KHZ, 0, LED_COUNT - 1);
}
This makes it much easier to adapt the project to a different regional band plan or LED count. Set the strip to the intended color order and protocol, typically NEO_GRB + NEO_KHZ800, and begin with brightness 64 or lower.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPresets are local examples
The original preset list cycles through:
- 89.90 MHz
- 91.50 MHz
- 94.20 MHz
- 94.80 MHz
- 97.00 MHz
- 105.40 MHz
These are creator-specific examples, not universal stations. Replace them with frequencies that are active in your area. Store them in one array so the list can be changed without altering the control logic.
Automatic seek mode
The second software approach starts an automatic scan when the encoder is turned. It uses another Si4703 library/class and a different frequency convention: values such as 875 and 1080 represent 87.5 and 108.0 MHz, with the serial output divided by ten.
That unit difference is a major integration hazard. The manual sketch uses 8700–10800; the seek sketch uses approximately 875–1080. They are not interchangeable fragments. Normalize all internal frequencies to one unit before combining their features.
The seek code checks tuning status and a received-signal value, including a condition equivalent to:
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →if ((SI4703AFC_Tune == false) && (SI4703RSSI_Tune > 25))
The value 25 is a project parameter, not a universal definition of a usable station. Antenna quality, local interference, board layout, and the library’s RSSI interpretation all affect the result. A seek routine may skip weak stations or stop on interference.
More dependable seek behavior can require the signal condition to remain true across several samples, add a short dwell time, test stereo or RDS/RBDS status where available, and let the user adjust the threshold. Keep manual tuning available as an override.
Rank #4
- SIMPLE ASSEMBLY: ICStation radio kit is designed to be beginner-friendly, as it DOES NOT require any soldering. The FM module comes pre-soldered, so you only need to assemble the battery, antenna, speaker, buttons, and cases to complete the project. If you enjoy building projects and are new to electronics, this radio kit is an ideal starting point. You will get the satisfaction of creation with your own hands and learning about the various components involved in a simple FM radio.
- FM/MW/SW FREQUENCY: Press "AM/FM" to select different bands: FM/MW/SW. FM frequency range: 87-108MHz; MW medium wave range: 522-1620KHz; SW shortwave range: 4.75-21.85MHz. The receiving effect can be achieved by adjusting the angle of the antenna. In addition, receiving MW medium wave band program does not need to adjust the antenna, it relies on the magnetic rod coil to receive signals, and you can adjust the signal by turning the machine body.
- SEARCH AND STORE PROGRAMS: In the radio state, the user can operate to search all stations and store the programs. Long press the “ALARM” for the M- function, and long press the “ALARM_ON/OFF” for the M+ function. Users can quickly change programs by pressing the "M+" or "M-" button.
- POWER OFF MEMORY FUNCTION: ICStation FM radio has a time display function, and you can set the correct time according to the instruction manual. When the clock or the radio is turned off, it will remember the local time and the last program that was playing and display them when turned on again. The feature provide convenience to users. With the radio automatically remembering the last program played, users don't have to waste time finding and selecting their desired program again.
- RECHARGEABLE: The battery icon displays the current battery power. When the battery icon is 0, the battery power is low and needs to be charged. Plug in the charger, the battery icon flashes, indicating that it is being charged. After full charge, the battery icon is full and stops flashing. 5V mobile phone charger (Type-C interface) can be used to charge for it. (USB cable and charger are not included).
Mapping frequency to the linear LED scale
For 21 pixels covering 87.0 to 108.0 MHz, the basic mapping is:
led = map(channel, 8700, 10800, 0, LED_COUNT - 1);
Pixel 0 represents the low-frequency endpoint and pixel 20 represents the high-frequency endpoint. If the physical strip runs in the opposite direction, reverse the result:
led = (LED_COUNT - 1) - frequencyToLed(channel);
Always constrain the input before mapping. A mismatch between the number of installed LEDs and the value used by LED_COUNT can produce an incorrect indicator or an out-of-range pixel access. Verify the first and last pixel with a simple test sketch before applying front-panel labels.
The manual code uses a color-wheel function to generate the indicator color. The seek-oriented version uses colors for receiver states such as tuning, signal, or stereo-related conditions. Those colors are application behavior, not a standardized Si4703 status scheme; document them according to the code you actually deploy.
Audio amplifier and power layout
The Si4703 breakout is a tuner, not a speaker driver. Connect its analog audio output to a suitable class-D amplifier, then connect the amplifier to a correctly matched speaker. Confirm the amplifier’s supply voltage, output rating, speaker impedance, gain, and shutdown behavior before connecting power.
- Start with the volume low.
- Use a common ground, but route high-current speaker and LED returns carefully.
- Keep amplifier input wiring short and away from the speaker output.
- Do not power a large LED strip through the Nano’s regulator.
- Use a separate, filtered 5 V rail for the LEDs when necessary.
- Add bulk capacitance near the strip and local decoupling near each module.
Addressable LEDs can cause supply dips, resets, and radio noise. Lower brightness, shorter wiring, fewer pixels, and better power separation often improve both reliability and reception.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsAntenna choices and placement
A weak antenna can make a correctly wired tuner appear defective. SparkFun notes that a headphone or audio cable longer than approximately three feet can act as an FM antenna on its evaluation board.
Best Value
- 【Learning Electronic Kit】 The finished product of the practice solder kit is a excellent digital radio with good signals, clear acrylic housing and cool appearance. Excellent gift for electronics hobbyists, DIYers and students.
- 【Portable Digital Radio】 This upgraded FM radio is easier to assemble and use. Clearly marked on the beautiful purple PCB. Easy to operate, four buttons on the radio are used to adjust the frequency and volume. Can be powered by USB cable or 3A AA batteries (not included), convenient to carry it and listen radio anywhere. And there is a 3.5mm earphone jack on the side of the radio, can be connected to earphones or speakers.
- 【Great Electronic Educational Project】 This diy solder kit is simple in principle, the pads are easy to solder and the housing is easy to assemble. And we will provide detailed instructions, so that beginners can successfully finish it. Great soldering educational kit for family and school education .
- 【Excellent Gift Choice】 The soldering project kit is a great gift choice for students, beginners and people who want to learn or practice solder and electronic knowledge. And the finished project is a meaningful gift for Christmas, New Year and other holidays for friends, parents, and children. Great mini fm radio and also great desk decoration.
- 【Great Service】 We focus more on customer experience and product quality. And we are also very concerned about the fun of the kit, the ease of assembly, as well as the appearance of the finished product and the quality of the components. Any problems, please contact us, and larger quantities have better prices, welcome to request a quote.
For a finished enclosure, use a deliberate antenna arrangement:
- a short insulated wire routed away from digital and amplifier wiring;
- a telescoping FM antenna;
- an external headphone-style antenna lead;
- a chassis-mounted antenna connector.
A metal enclosure, tightly packed wiring, or an antenna hidden beside the LED strip can reduce reception. Do not use speaker wiring as an accidental antenna unless you have tested the result and accepted its limitations.
Enclosure and front-panel planning
Lay out the front panel before cutting material. The LED strip needs to be straight, evenly spaced, and visible at the intended viewing angle. A thin diffuser can soften individual LED hotspots, while a dark bezel can make the active pixel read more like a vintage dial pointer.
Free tools Windows power users keep installed
One-click scans. No signup required.
Allow room for:
- the encoder shaft and knob;
- speaker grille openings and acoustic volume;
- USB or programming access;
- amplifier ventilation;
- the antenna route;
- removable panels for servicing;
- separation between the tuner and noisy power components.
Mark frequency labels as approximate unless a numeric display is added. The LED position is a visual scale, not a continuous mechanical dial.
Troubleshooting by symptom
The Si4703 is not detected
- Check that SDA and SCL are not reversed.
- Confirm the tuner has regulated 3.3 V and a shared ground.
- Verify the reset pin and startup sequence.
- Check that I2C pull-ups are connected to the correct voltage side.
- Use the bidirectional level converter with a 5 V Nano.
- Confirm that the library, constructor, and board revision match.
The tuner is detected but there is no sound
- Check mute state and tuner volume settings.
- Confirm that the amplifier input is connected to the correct tuner output.
- Verify amplifier power, common ground, and speaker impedance.
- Tune to a known local station rather than testing on an empty frequency.
- Improve the antenna before assuming the tuner is faulty.
The encoder jumps or runs backward
Mechanical bounce, long wires, incorrect pull-ups, and mismatched CLK/DT assignments are common causes. Reverse the increment logic if the direction is wrong. For a more robust design, keep the interrupt service routine short, record the encoder transition, and process the frequency change in the main loop rather than doing extensive work inside the interrupt.
The LED position is wrong
Check strip direction, color-order settings, LED count, endpoint constants, and frequency units. The two original sketches use different scales, so mixing their mapping code without converting units is especially likely to produce an incorrect position.
Seek stops on noise
Lower or raise the threshold only after checking the antenna. Then consider consecutive-sample confirmation, a dwell time, stereo/RDS checks, and a manual tuning fallback. RSSI alone is not a complete station-quality test.
The LEDs reset the Nano or create radio noise
Separate the LED supply, add bulk capacitance, shorten power and data leads, reduce brightness, and keep the antenna and tuner away from the strip and amplifier. Check voltage at the strip while the LEDs change color.
Useful upgrades
- Use a verified 3.3 V controller to simplify the tuner interface.
- Add a properly debounced encoder routine.
- Save presets in EEPROM.
- Add a small OLED or e-paper display for exact frequency while retaining the LED scale.
- Display RDS/RBDS station information where supported by the tuner and library.
- Add a headphone jack or external antenna connector.
- Use a stereo amplifier if the enclosure and tuner output arrangement support it.
- Add mute control or a soft-start sequence to suppress power-on pops.
- Use more LEDs for a smoother visual scale, provided the power supply and enclosure can support them.
Reproduce or modernize?
| Choice | Best reason to choose it | Main compromise |
|---|---|---|
| Classic 5 V Nano | Closest to the original code and pin layout | Requires I2C level shifting |
| 3.3 V controller | Simpler electrical interface | May require library and code changes |
| 21 LEDs | Faithful retro scale | Coarse position resolution |
| More LEDs | Smoother indicator movement | More current and wiring |
| Preset tuning | Predictable operation | Does not discover stations |
| Automatic seek | Radio-like station scanning | Thresholds vary by location |
| LCD or OLED | Exact frequency and RDS information | Less visually faithful to the vintage concept |
Verdict
This is a worthwhile intermediate build for someone who values enclosure design, visible controls, and hands-on electronics. Its signature feature is the LED “dial,” not precision instrumentation. Treat the original project as an educational reference design: add the level converter, verify your tuner board’s documentation, normalize the frequency units, bring up each subsystem separately, and design the antenna and power layout deliberately.
For the original project and source code, see the Hackster project page. For the enclosure gallery, see the build gallery.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

