2024-04-29 18:15:38 +00:00
# Meshtastic Firmware Hacks
2024-05-03 17:16:58 +00:00
## Prerequisite
2024-04-29 18:15:38 +00:00
- Download & install [PlatformIO ](https://platformio.org/platformio-ide )
- `git clone https://github.com/meshtastic/firmware.git`
- `cd firmware && git submodule update --init`
2024-05-03 17:16:58 +00:00
## Customization
###### Custom Boot Logo
2024-04-29 18:15:38 +00:00
- Use [XMB Viewer ](https://windows87.github.io/xbm-viewer-converter/ ) to convert an image to XMB
- The data from this goes in `firmware/src/graphics/img/icon.xbm`
2024-05-03 17:16:58 +00:00
###### Custom boot message
2024-04-29 18:15:38 +00:00
- Navigate to `firmware/src/graphics/Screen.cpp`
- Find & replace `const char *title = "meshtastic.org";` with your custom message.
2024-05-03 17:16:58 +00:00
###### Custom screen color
2024-04-29 18:15:38 +00:00
- Navigate to `src/graphics/TFTDisplay.cpp`
2024-05-05 18:39:51 +00:00
- Find & replace `#define TFT_MESH COLOR565(0xFF, 0x00, 0x00)` with your custom color. *(The one shown here is for RED mode >:))*
2024-04-29 18:15:38 +00:00
2024-05-03 17:16:58 +00:00
###### Custom alert sound (for T-Deck & devices with a buzzer)
2024-04-29 18:15:38 +00:00
- From the mobile app, click the 3 dots on the top right, and select `Radio configuration`
- Under `Module configuration` , select `External Notification`
- Scroll down & you will see a `Ringtone` option that takes [RTTTL ](https://en.wikipedia.org/wiki/Ring_Tone_Text_Transfer_Language ) formatted tones.
2024-05-03 17:16:58 +00:00
As far as I know, at the time of writing this, the only way to change the Ringtone is from the App. While this is not a "firmware" related thing, I included it in this file because it was difficult to find this setting...
2024-04-29 18:15:38 +00:00
## Compile & flash firmware
- Select `PlatformIO: Pick Project Environment` & select your board.
- Run `PLatformIO: Build` to compile the firmware.
- Place device in DFU mode & plug in to the computer
- Do `PlatformIO: Upload` to send the firmware to the device
- Press the RESET button or reboot your device.
See [here ](https://meshtastic.org/docs/development/firmware/build/ ) for more information building & flashing custom firmware.