Open-source radio · ESP32-S3

All your music.
A screen of your own.

Internet radio, podcasts, SD and network music on a display you design yourself. Control it from the device, a browser, your phone or a remote, and let it run your rules, LEDs and smart home.

AtlasCube overview: radio, controller, web interface, automation and Android app

What can it do?

Everything it does, on one screen.

↗ its own page DEMO try it in the live demo › details below

Display and controls depend on the hardware you choose. Bluetooth, IR, LED strips and the Controller need extra parts. See the wiring diagrams.

Take a closer look

See what you can make of it.

02 / Automation

Rules that run your mornings.

Start the radio at seven on weekdays, turn a door switch into a doorbell, or send yourself a Telegram message when a stream fails. Build it from blocks, then watch it run step by step.

03 / Remote control

Your radio, within reach.

Playback, stations, podcasts, events, EQ and the layout editor in the Android app, with voice commands in seven languages. Or pick up the Controller, which works without WiFi.

The full picture

Specifications & supported hardware

Expand a category for every detail
01Audio sourcesradio, podcasts, SD, network, Bluetooth
  • Internet radio: MP3, AAC and FLAC, plus HLS (.m3u8) live streams with AAC or MP3 inside
  • ICY metadata: artist and title on screen
  • Playlist of up to 512 stations
  • Station logos: looked up on Radio Browser or uploaded from your own file, converted in the browser and stored on the SD card
  • Podcasts: an episode plays as a finite stream with its title on screen and resumes where you left off. The Android app is the catalog
  • SD music player: local files with ID3 tags, album cover per folder, shuffle and repeat, elapsed and total time, seeking in MP3 files
  • Network Music: plays MP3s from a NAS, a spare box running nginx or any other HTTP server the radio can reach, browsing its folders on the device or in the web player. The setup page has a complete nginx config to paste
  • Bluetooth A2DP sink and HFP hands-free. Codecs: LDAC, aptX HD, aptX LL, aptX, SBC, AAC
  • External QCC5125 module (BT 5.1), or a plain ESP32-WROOM running our BT module firmware (SBC only)
  • 74HC157D I2S mux: hardware source switching via GPIO
02Sound & visualisationEQ, spectrum, VU meters
  • 10-band parametric equalizer
  • Real-time FFT spectrum on the radio screen
  • Analog needle VU: two independent L/R needles overlaid on the wallpaper, so the meter faces can be part of the background image
  • Stereo bar VU: two L/R bars with optional peak-hold, placed and coloured per screen
  • Mono downmix for single-speaker builds
  • Global maximum volume: caps the amplifier while the sliders keep their 0–100 range
03Display & UIpanels, touch, layout, wallpapers, screensavers
  • Colour TFT: ILI9341 and ST7789V 320×240, ST7796U and ILI9488 480×320
  • CO5300 240×296 AMOLED and GC9A01 240×240 round panel
  • Mono and grayscale OLED: SSD1322 and SH1122 256×64, SSD1306 and SH1106 128×64, or two SSD1306 modules tiled into one 256×64 screen
  • Headless build: no display at all, controlled by knob, buttons, the web UI and LEDs
  • Touch: CST816D, FT6336U or CST328 capacitive, or XPT2046 resistive
  • Rotary encoder and up to ten push-buttons wired straight to GPIO and GND. Short and long press are separate actions, so ten buttons cover twenty commands
  • Clock, radio, playlist, EQ and settings screens, with swipe gestures and a tap-to-show controls overlay
  • Visual widget layout editor with grouped controls and semantic previews
  • Radio tuning dial widget
  • Themes on the SD card, applied offline. Wallpaper per screen from SD or an internet JPEG, with presets, scheduled refresh and dimming
  • Online wallpaper gallery: artwork for your panel resolution, installed from the layout editor
  • Custom boot splash logo from SD
  • Photo frame: slideshow from the SD card or from a folder or list on the internet
  • Screensavers: clock hands, starfield, fireworks, plasma, Game of Life, blank, dim, or a dashboard that polls any JSON endpoint over HTTP or HTTPS and shows one value
  • 12- or 24-hour clock. 180° flip, colour inversion and touch orientation, all live from the web UI
04LED strips & matrices NEWWS2812
  • WS2812 strips and 16×16 matrices on any free GPIO, with several panels chained into one wide matrix
  • VU bars and spectrum in sync with the music, with your own colours, bar width and gap
  • Scrolling text over the effects: station and track, with an optional one-line clock or temperature and weather icon beside it
  • The matrix can mirror the station list while you browse it
  • Status LED: audio, volume or device state
  • Current limit per channel so a large panel stays within your power supply
05Weather, calendar & remindersschedules, voice clips
  • Current temperature and conditions with day/night icons. Open-Meteo works without an API key, OpenWeatherMap is an alternative
  • Phone calendar mirror: the Android app pushes your upcoming entries to the device, read-only
  • Birthdays, namedays and reminders, recurring daily, weekly, monthly or yearly
  • Fullscreen alert with a buzzer melody and programmable notification tunes
  • Playback schedule: start radio or SD music, with an optional stop time
  • Voice notifications: play a recorded clip from SD at a set time
06Automation, I/O & smart home NEWrules, GPIO, MQTT, Home Assistant, Telegram
  • Rules engine with a visual editor in the browser: trigger, entry conditions, THEN/ELSE branches, delays and checks that wait for a state. Rules guide with four ready examples
  • Triggers: a schedule, an interval, sunrise or sunset, device startup, a state change, an I/O input, a macro, an HTTP webhook or a Telegram command
  • Actions: any device command, an on-screen notification, an MQTT message, a Telegram message or a UDP datagram
  • History and live trace show what each rule actually did
  • Up to 16 GPIO inputs and outputs: switches, relays, LEDs and analog sensors
  • MQTT: radio control, any action through the rules engine, and up to six widgets (toggle, slider, label) on a dedicated screen
  • Home Assistant MQTT discovery: the radio shows up on its own
07Remote controlapp, voice, Controller, IR
  • Android app, available on Google Play: playback, playlist, events, equalizer, layout editor, rules and a podcast browser
  • Voice commands from the phone in English, Polish, Czech, German, French, Hungarian and Hindi
  • Controller over ESP-NOW: a battery-powered remote that never joins the WiFi, so a button press acts immediately. It can browse and play the SD card and read the radio's settings and diagnostics
  • Infrared remote: a €1 receiver on one GPIO learns the keys of any spare TV remote (NEC, Samsung, RC5, Sony). Each key maps onto the same action list the push-buttons use
  • One documented command set behind all of them: web UI, app, Controller and MQTT speak the same protocol
08Connectivity & updatesWiFi, web server, OTA
  • WiFi setup through a captive portal, or by typing the password on the device itself
  • HTTP and WebSocket server on the device. The web UI is served by the radio, with no cloud
  • mDNS: reachable at <hostname>.local, so the app and your browser find it without an IP
  • NTP with a configurable timezone
  • OTA firmware update from the web UI: dual-slot with rollback and firmware backup
  • Automatic updates: the device checks for a new release at boot and, after an on-screen confirmation, installs the firmware and refreshes the web UI by itself
09Setup & maintenancepins, backup, files
  • Web flasher: install the firmware for your panel from the browser over USB
  • Runtime pin map: every GPIO is set on the device's own setup page and stored in flash, so one firmware binary drives any wiring without a rebuild
  • Diagnostics: memory and PSRAM use, chip temperature, firmware and web UI versions and MQTT state, on screen and as a copyable report
  • One-file backup: settings, theme, events, MQTT config, layout and station list exported as a single JSON and restored later, with no SD card needed
  • SD file manager in the browser: browse, upload, rename, move and delete, with a preview of display images
  • Copy tool between internal flash and the SD card, and a built-in text editor for configuration and web files