Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
BETTESWORTHConstruction
Arduino

DIY Retro FM Radio With a Linear LED Tuning Scale

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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
NautyDaddy FM Radio Kit for Kids 8-13, DIY STEM: Build Your Own Real Radio
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
STEM Toys DIY FM Radio Kit, Science Circuit Project, Boy Gift Toys Age 8-13
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Power and I2C: connect the tuner, reset line, grounds, and level converter. Confirm that the board responds.
  2. Tuner: install a compatible Si4703 library and run a basic example. Tune to a known local station.
  3. Audio: connect the tuner output to the amplifier and verify sound at low volume.
  4. Encoder: test clockwise and counterclockwise movement through the serial monitor.
  5. LED strip: light the first and last pixels before installing the strip permanently.
  6. Seek logic: add automatic scanning only after manual tuning works.
  7. 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
FM Radio Kit, ICSTATION Soldering Projects Radio with LED Flashing Lights DIY Radio Kit LCD1602 Display FM 87-108MHz Soldering Practice Kit for Back to School Solder Education Creative Present
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Presets 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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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
ICSTATION DIY Radio Kit - FM Assemble Kit with Time Display, Rechargeable, 87-108MHZ, No Soldering Required, Assembly Project for Adults & Students
  • 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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Antenna 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
Sale
GeekLJT Upgraded RDA5807 Radio Soldering Kit,DIY Solder Project, Portable Radio DIY Electronic Kits, Practice Soldering Kit for Learning and Teaching Solder and Electronic
  • 【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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.