Meshtastic RTTTL Custom Ringtones
There are a few devices I consider "every day carry" for Meshtastic. These are typically small devices that have decent battery life, GPS, and are easy to use. A few that I have personally tried include the SEEED T1000E, ThinkNode M3, and the LilyGo TDeck Pro.
All of these devices have one thing in common; their default ringtones are incredibly annoying.
Update 7/25/2025:
Just confirmed that this also works on the LilyGo TDeck Pro. You just have to get it into the Bluetooth Configuration Mode to change the values.
A Little Background on RTTTL
YouTube Breakdown by Anas Kuzechie
Ring Tone Text Transfer Language (RTTTL) is a way of converting a string into musical notes for playback using a device's buzzer. Think of it as an easy way to store music without having to tote around mp3 files on your device. The default ringtone for most Meshtastic devices looks like this:
24:d=32,o=5,b=565:f6,p,f6,4p,p,f6,p,f6,2p,p,b6,p,b6,p,b6,p,b6,p,b,p,b,p,b,p,b,p,b,p,b,p,b,p,b,1p.,2p.,p
That ringtone has 2 parts; a header and the ringtone notes.
Ringtone Header
-
24- Name/identifier for the ringtone -
d=32- Default note duration (32nd note) -
o=5- Default octave (5th octave) -
b=565- Beats per minute
Ringtone Notes
After the header, you have a list of notes to play. Notes are comma-separated and include 4 parameters:
-
duration
-
pitch
-
octave
-
dotted-duration
If we break down the first 6 notes in the default ringtone as an example, you'll see this:
-
f6- F note in 6th octave (duration defaults to 32nd note) -
4p- Pause/rest lasting 1/4 the default duration -
2p- Pause/rest lasting 1/2 the default duration -
1p.- Pause lasting 1 beat with dot (1.5x duration) -
b6- B note in 6th octave -
b- B note in default octave (5th)
Meshtastic Notification Config
Be sure to set the Nag Timeout to a lower number, otherwise it'll pester you over and over again until you cancel out the process using a physical button on your device. If you set the Nag Timeout to 0, your node will only play the notification once.
Nokia Composer
Here's a good website that allows you to play with RTTTL strings and have them playback for you in the browser. Plus it has some fun examples baked into the page.
Examples
Legend of Zelda Get Item
24:d=16,o=5,b=120:g,c6,d6,2g6
Super Mario Theme (Shortened)
24:d=4,o=5,b=100:16e6,16e6,32p,8e6,16c6,8e6,8g6,8p,8g
Mario Coin
24:d=8,o=6,b=200:b,e7
Mario Power Up
po24werup:d=16,o=5,b=200:g,a,b,c6,d6,e6,f#6,g6,a6,b6,2c7
Nokia Ringtone
24:d=4,o=5,b=180:8e6,8d6,f#,g#,8c#6,8b,d,e,8b,8a,c#,e,2a
Morse Code CQ
24:d=32,o=6,b=120:8c,p,c,p,8c,p,c,4p,8c,p,8c,p,c,p,8c,8p