Melody Machine firmware transforms LILYGO T-LoRa Pager into a portable MP3 player and Internet radio

LILYGO T-LoRa Pager Melody Music
Illustration. For a real demo, see the video at the end of the post

Melody Machine is an open-source firmware that converts the ESP32-S3-based LILYGO T-LoRa Pager into a portable MP3 player and internet radio rather than a LoRa-based messenger running Meshtastic or Meshcore.

Highlights of the Melody Machine firmware:

  • LVGL-based graphical user interface with four themes
  • WiFi Manager — Non-blocking WiFi with network list, password entry via on-screen keyboard, and auto-reconnect
  • MP3 playback from SD card with folder browser, shuffle, repeat modes, and seek
  • Internet Radio via M3U over WiFi (ICY metadata support)
  • Seek — rewind / fast-forward MP3 tracks with the rotary encoder (±5 s per step)
  • Dual-core audio/task design
    • MP3 decoding runs on Core 0 via FreeRTOS
    • UI and WiFi manager on Core 1
  • Settings — Saved as JSON on SD card in /melody_machine/settings.json; survives reboots and reflashes
  • Auto power-off – Configurable idle power-off timer: 15 minutes to 2 hours
Melody Machine UI
Boot logo
T-LoRa Pager MP3 player
MP3 player mode

The rotary encoder and built-in keyboard allow plenty of controls:

  • Rotary encoder
    • Browse the list
    • Enter folder / play track / confirm (built-in button)
  • Q / A – Volume +5 / -5
  • W / D – Previous/next track
  • Space – Play/pause
  • B/Backspace – Stop · go up folder · exit seek mode
  • R – Cycle repeat: off → one → all
  • H – Toggle shuffle
  • N – Toggle seek mode (MP3 only, while playing/paused)
  • S – Open settings
  • S + H – Screenshot to SD
  • i – Open controls help

You’ll also need to copy music inside the mp3 folder and the Internet radio M3U playlist files inside the m3u folder:


The settings.json contains the settings from the app, and you can also add your WiFi credentials there instead of typing them while the firmware is running.


You’ll find the source code (Arduino) and pre-built firmware on GitHub. You can flash the firmware using esptool, or you can run melody_flasher.py to launch a flasher GUI.

Melody Machine Flasher

As most software projects these days, the Melody Machine has been developed with the help of AI, namely Anthropic Claude here. Nevertheless, the firmware works, as can be seen with the video demo using Melody Machine v0.1 below (note: the audio level is really low is that video). The latest v0.2 firmware adds a smoother and sharper UI and better controls. The LoRa radio is not used at all here.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

Radxa Orion O6 Armv9 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
2 Comments
oldest
newest
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC