Skip to content

About

πŸ“» FM Radio app for Flipper Zero β€” TEA5767 & Si4703 tuner boards with auto-detection, SD card station presets, seek/fine-tune, and audio modes.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

21 Commits

Folders and files

Repository files navigation

FM Radio β€” for Flipper Zero

FM radio app for the Flipper Zero that controls external FM tuner boards over I2C. Supports TEA5767 and Si4703 chips with automatic detection.

Features

  • Dual chip support β€” auto-detects TEA5767 or Si4703 at startup (or force a chip in Settings)
  • Volume control (Si4703) β€” OK cycles Low β†’ Med β†’ High β†’ Mute; hold OK for instant mute/restore
  • Start Volume setting (Low / Med / High / Last) β€” "Last" remembers your volume between runs
  • Resume Station β€” reopens the frequency you were listening to last time
  • Region-based station lists loaded from SD card (auto-creates defaults if missing)
  • Preset up/down with on-screen indicators
  • Seek up/down with adjustable seek strength (1–15)
  • Fine tuning in 0.1 MHz steps (Tuner view)
  • Audio mode: Stereo / Mono (Left) / Mono (Right)
  • Mute on exit (standby behavior) toggle
  • In-app station file viewer
  • All settings saved to SD card

Supported Boards

Chip Datasheet
TEA5767 Datasheet
Si4703 Datasheet

Wiring

TEA5767

Signal Flipper Pin
VCC 3V3 (Pin 9)
GND GND (Pin 18)
SCL (SCLK) C0 (Pin 16)
SDA (SDIO) C1 (Pin 15)

Si4703

Signal Flipper Pin
VCC 3V3 (Pin 9)
GND GND (Pin 18)
SCL (SCLK) C0 (Pin 16)
SDA (SDIO) C1 (Pin 15)
RST A4 (Pin 4) β€” required
SEN tie to 3.3V (selects I2C mode; tied HIGH on most breakouts)

Note: The Si4703 will not respond on I2C without the RST pin wired β€” it needs a special powerup sequence (SDIO held low while RST rises).

A full Flipper Zero pinout diagram is in docs/flipper-zero-pinout.jpg.

Controls (Listen Now)

Button Action
Up Preset Up β–²
Down Preset Down β–Ό
Left Seek Down
Right Seek Up
OK Volume: Low β†’ Med β†’ High β†’ Mute (Si4703) / Toggle Mute (TEA5767)
OK (hold) Instant mute β€” hold again to restore previous volume

In the Tuner view, Left/Right fine-tune in 0.1 MHz steps and Up/Down auto-seek.

Station Lists

Station lists are .txt files on your SD card at:

/ext/apps_data/fm_radio/

Default files (auto-generated if missing):

  • toronto.txt β€” Toronto, Canada
  • usa.txt β€” USA major cities
  • europe.txt β€” Europe general
  • custom.txt β€” edit this for your own stations!

Format, one station per line (up to 100 per region):

88.5|Cool FM
95.3|Rock Station
101.1|Jazz Radio
# Lines starting with # are comments

To change regions: open the app β†’ Settings β†’ choose your region. Use Station Files in the main menu to browse each region file in-app.

Settings

Setting Description
Chip Select Auto (detect) / TEA5767 / Si4703
Region Which station list to load
Start Volume Low / Med / High / Last β€” "Last" restores the volume from your previous session (Si4703)
Resume Station On = reopens the last tuned frequency at startup; Off = starts at the first preset
Mute On Exit On = radio goes to standby when you exit; Off = keeps playing
Seek Strength (1–15) Lower = finds weaker stations, higher = only strong stations (default 7)
Audio Mode Stereo / Mono (Left) / Mono (Right) β€” Si4703 supports Stereo/Mono only

Settings are saved automatically to /ext/apps_data/fm_radio/settings.cfg.

Building

Build with ufbt from the project directory:

ufbt

To build and launch on a connected Flipper:

ufbt launch

Documentation

Changelog

v2.2

  • Cleaner "Connect FM Tuner" screen: per-chip pinout (Si4703 / TEA5767) with shared power line
  • Removed stale fallback wiring text that listed the wrong RST pin

v2.1

  • Fixed Si4703 tuning β€” two init bugs kept the crystal oscillator from starting (TEST1 must be written as literal 0x8100, and GPIO3 must stay high-impedance because the 32.768 kHz crystal hangs off RCLK/GPIO3). Tune and seek now complete reliably.
  • Volume control on Si4703 β€” OK cycles Low β†’ Med β†’ High β†’ Mute; hold OK for instant mute with restore
  • New Start Volume setting (Low / Med / High / Last)
  • New Resume Station setting β€” reopens your last frequency on startup
  • Last volume and last station persist across runs

v2.0

  • Si4703 support with automatic chip detection (TEA5767 still fully supported)
  • Chip Select setting (Auto / TEA5767 / Si4703)
  • Unified radio API routing to the detected chip
  • Signal display shows chip type
  • Updated wiring docs and error screens

v1.1

  • Settings menu with region selection
  • Station lists load from SD card (.txt files), auto-generates defaults
  • Mute On Exit toggle
  • Adjustable RSSI seek strength (1–15)
  • Audio mode selection (Stereo / Mono-L / Mono-R)
  • Preset up/down icons
  • Station files viewer

v1.0

  • Reformatted code
  • Added station names

v0.8

  • Created TEA5767 library and first functioning app

Roadmap

  • Redirect TEA5767 audio to a GPIO and play back on the Flipper internal speaker
  • Favorite station marking
  • Recent stations history
  • RDS support (Si4703)

License

GPLv3

Created By

Coolshrimp β€” https://CoolshrimpModz.com

About

πŸ“» FM Radio app for Flipper Zero β€” TEA5767 & Si4703 tuner boards with auto-detection, SD card station presets, seek/fine-tune, and audio modes.

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages