

STM SDR
A portable FM radio receiver with OLED display, built on STM32F411CEU6 microcontroller with SI4732-A10 software-defined radio chip.
- Size
- 88.9 × 71.1 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 64
- Nets
- 87
- Pads
- 323
- Tracks, vias
- 544, 81
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 6 May 2026
- Updated
- 6 May 2026
Overview
STM SDR is an open-source printed circuit board by Beacroxx, from the Beacroxx/STM-SDR repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 88.9 × 71.1 mm with 64 parts on 87 nets, routed with 544 tracks and 81 vias.
It is built around the AS179-92LF, SI4732-A10-GS and TPS63001DRC, with the Q13FC1350000400, SKRPACE010 and X322525MOB4SI among its other parts. Its parts include 24 capacitors, 16 resistors, 6 ICs, 5 connectors and 3 switches. It belongs with the radio and wireless boards and the STM32 boards of this library.
Main components
6AS179-92LF
SC-70-6(SOT-363)-40℃~+85℃ 0.4dB 20MHz~4GHz 23dB 30dBm 3V SPDT SC-70-6(SOT-363) RF Switches ROHSSkyworks SolutionsRF SwitchesSI4732-A10-GS
SOIC-16Mute function SOIC-16 RF Transceiver ICs ROHSSilicon LabsRF Transceiver ICsTPS63001DRC
VSON-10-EP(3x3)-40℃~+85℃@(TA) 1 1.5MHz 1.8V~5.5V 3.3V 50uA Buck-Boost Buck-Boost Built-in Fixed Yes VSON-10-EP(3x3) DC-DC Converters ROHSTexas InstrumentsDC-DC ConvertersQ13FC1350000400
SMD3215-2PSMD3215-2P Crystals ROHSSeiko EpsonCrystalsSKRPACE010
SMD-4P,4.2x3.2mm-30℃~+85℃ 16V 2.5mm 2.6N 3.2mm 4.2mm 50,000 cycles 50mA J-Lead Oval button SPST-NO Surface Mount,Vertical SMD-4P,4.2x3.2mm Tactile Switches ROHSALPSALPINETactile SwitchesX322525MOB4SI
SMD3225-4P-40℃~+85℃ 12pF 25MHz 50Ω Crystal Oscillator ±10ppm ±20ppm SMD3225-4P Crystals ROHSYXCCrystals
README
README.mdSTM-SDR
A portable FM radio receiver with OLED display, built on STM32F411CEU6 microcontroller with SI4732-A10 software-defined radio chip.
Hardware Components
- Microcontroller: STM32F411CEU6 (96 MHz ARM Cortex-M4, 512KB Flash)
- Radio Receiver: SI4732-A10-GS (FM tuning: 64-108 MHz, I2C interface)
- Display: SH1106 128x64 monochrome OLED (SPI interface)
- User Input: Dual rotary encoders with buttons
- Audio: Stereo audio with RMS monitoring
- Battery: Li-ion monitoring with charging detection
- Power: USB + battery powered
For detailed schematics and PCB design, see the kicad/ folder.
Features
- FM radio tuning with seek functionality
- Real-time audio level monitoring with visual bars
- Battery percentage display
- Configurable settings via menu system:
- Frequency (64-108 MHz)
- Volume (0-63)
- Seek RSSI threshold
- Mono/Stereo RSSI thresholds
- Soft mute parameters
- Antenna selection (internal/external)
- Persistent configuration storage in flash memory
- Dual encoder control for intuitive navigation
Build Instructions
This project uses PlatformIO for build and upload.
- Install PlatformIO (VS Code extension or CLI)
- Open the project folder
- Run
platformio runto build - Run
platformio run --target uploadto flash to the board
Requirements
- PlatformIO
- ST-Link debugger for uploading
- GCC ARM toolchain
Usage
Home Screen Controls
- Left Encoder: Rotate to adjust frequency (±0.05 MHz), press to enter menu
- Right Encoder: Rotate to adjust volume (±1), press to toggle mute
- Left Encoder Hold: Seek down
- Right Encoder Hold: Seek up
Menu Navigation
- Left Encoder: Scroll through settings
- Right Encoder: Select setting to adjust value
- Right Encoder Press: Enter/Exit adjustment menu
Settings
- Tuned Frequency (64-108 MHz)
- Volume (0-63)
- Seek RSSI Threshold (0-127 dBuV)
- Mono RSSI Threshold (0-127 dBuV)
- Stereo RSSI Threshold (0-127 dBuV)
- Soft Mute Slope (0-63 dB/dB)
- Soft Mute Max Attenuation (0-31 dB)
- Soft Mute Threshold (0-15 dB)
- Mute (toggle)
- Mute on Seek (toggle)
- External Antenna (toggle)
Known Issues/Limitations
- USB D+/D- pins are connected but the USB peripheral is not configured
- Charge controller status line is connected to PA4 but usage commented out (see src/guidraw.cpp)
- OLED dimming and auto-turnoff are not implemented yet
- RDS (Radio Data System) infrastructure missing
- No preset station storage
- Always-on power mode (no sleep)
Future Improvements
- Implement USB peripheral for data transfer
- Use charge controller status monitoring
- Add OLED dimming and auto-turnoff features
- Read and display RDS information
- Add preset station memory
- Add power management with sleep modes
License
This project is licensed under the GNU General Public License v3.0, see the LICENSE file for details.
Parts
64| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 1uF | PCM_JLCPCB:C_0603 | C18, C19, C20, C21, C22, C23, C24 |
| 4 | 10uF | PCM_JLCPCB:C_0603 | C25, C26, C28, C29 |
| 4 | 18pF | PCM_JLCPCB:C_0603 | C9, C10, C13, C14 |
| 4 | 20kΩ | PCM_JLCPCB:R_0603 | R6, R7, R8, R9 |
| 3 | 100nF | PCM_JLCPCB:C_0603 | C3, C5, C6 |
| 3 | 100pF | PCM_JLCPCB:C_0603 | C15, C16, C17 |
| 3 | 2kΩ | PCM_JLCPCB:R_0603 | R14, R18, R19 |
| 3 | ~ | PCM_JLCPCB:FB_0603 | FB1, FB2, FB3 |
| 2 | 10kΩ | PCM_JLCPCB:R_0603 | R13, R17 |
| 2 | 10Ω | PCM_JLCPCB:R_0603 | R3, R4 |
| 2 | 12pF | PCM_JLCPCB:C_0603 | C11, C12 |
| 2 | 5.1kΩ | PCM_JLCPCB:R_0603 | R1, R2 |
| 1 | 100kΩ | PCM_JLCPCB:R_0603 | R15 |
| 1 | 18650 | Battery:BatteryHolder_Keystone_1042_1x18650 | BT1 |
| 1 | 2.2uF | PCM_JLCPCB:C_0603 | C1 |
| 1 | 2.2uH | Inductor_SMD:L_Changjiang_FXL0530 | L2 |
| 1 | 32.768kHz | PCM_JLCPCB:FC-135R_L3.2-W1.5 | X1 |
| 1 | 560kΩ | PCM_JLCPCB:R_0603 | R12 |
| 1 | 6.8uH | Inductor_SMD:L_TDK_MLZ2012_h0.85mm | L3 |
| 1 | 68kΩ | PCM_JLCPCB:R_0603 | R16 |
| 1 | AS179-92LF | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U4 |
| 1 | AudioJack3 | Connector_Audio:Jack_3.5mm_CUI_SJ-3523-SMT_Horizontal | J7 |
| 1 | Connector, USB-TYPE-C-16P | PCM_JLCPCB:TYPE-C-SMD_HX-TYPE-C-16PIN | J3 |
| 1 | Encoder Left | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW3 |
| 1 | Encoder Right | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW2 |
| 1 | External Antenna | Connector_Coaxial:SMA_Samtec_SMA-J-P-H-ST-EM1_EdgeMount | J6 |
| 1 | LM4910MM/NOPB | footprints:MUA08A | U6 |
| 1 | MCP73831-2-MC | Package_DFN_QFN:DFN-8-1EP_3x2mm_P0.5mm_EP1.7x1.4mm | U5 |
| 1 | Q13FC1350000400 | PCM_JLCPCB:FC-135R_L3.2-W1.5 | X3 |
| 1 | SI4732-A10-GS | footprints:SOIC_A10-GS_SIL | U3 |
| 1 | SKRPACE010 | footprints:SW_SKRPACE010_AAL | J1 |
| 1 | STM32F411CEUx | Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U1 |
| 1 | SWD | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | SW_SPDT | Button_Switch_SMD:SW_SPDT_PCM12 | SW1 |
| 1 | TPS63001 | Package_SON:Texas_DRC0010J_ThermalVias | U7 |
| 1 | X322525MOB4SI | PCM_JLCPCB:OSC-SMD_4P-L3.2-W2.5-BL | X2 |
| 1 | ~ | teensy-sdr:Untitled | OLED1 |
Similar boards
- 2 layers110 × 140 mm

- 4 layers230 × 84.9 mm

- 4 layers70 × 45.4 mm

Hcbboard
ivarhak/BlueprintFlightComputerPCB
Files for my flight computer project as a part of the Hack Club foundation's Blueprint program 2025. Board has an STM chip, 2 BMP351 barometers, 1 ICM-42688-P IMU, a microSD slot, battery charging capabilities, and…
106 parts - 4 layers40 × 60 mm

- 2 layers95.4 × 92.4 mm

Panelized
kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!
326 parts7 - 2 layers55 × 100 mm

ScoutAM
RADARC/Scout-Radio
Si4732 and Raspberry Pi Pico Radio device for Scouts to build and use to gain badges
92 parts6GPL-3.0 - 2 layers104.6 × 94.9 mm

TEST PNAL
SREERAJSVT/SiSeriesRadio
This project details the design and development of a Si4732/Si4735 based radio receiver utilizing a Raspberry Pi Pico for control and a custom-designed PCB
139 parts1 - 2 layers87.3 × 67 mm

Pico radio-5
bt-soft/pico-radio-5
A Pico-Radio-5 egy fejlett, több sávos rádióvevő, amely a Raspberry Pi Pico (RP2040) mikrokontroller köré épül. A főbb hardverelemek:
49 parts
Questions
How big is the STM SDR PCB?
It measures 88.9 × 71.1 mm and has 2 copper layers, 1.6 mm thick.
What parts does the STM SDR use?
64 parts, built around the AS179-92LF, SI4732-A10-GS, TPS63001DRC and Q13FC1350000400. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the STM SDR KiCad files?
From the Beacroxx/STM-SDR repository on GitHub, at the commit this page was made from: the board is kicad/stm-sdr.kicad_pcb and its schematic kicad/stm-sdr.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the STM SDR design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).