Note: this guide assumes your device has Developer edition enabled. If it doesn't, visit https://usetrmnl.com/upgrade while logged in.
There are a couple reasons you may want to dictate your device's firmware:
Your local network performs better on a specific release
You've modified the native firmware or prefer to use your own
If you simply need to update your device's firmware to the latest stable version, you may skip the entire guide below and use this tool to flash via a web browser in < 2 minutes.
Step 1 - Disable OTA Updates
Inside TRMNL, navigate to your device in the top-right dropdown. On the settings page, scroll down to Developer Perks and disable OTA Updates.
Without this turned off, each time your device pings the TRMNL web server it will be instructed to download the latest firmware release.
Step 2 - Download the TRMNL Firmware (optional)
If you intend to use or modify TRMNL's firmware, you can download it here:
We recommend using the GitHub CLI (gh repo clone usetrmnl/firmware
) but you may also download it as a zip folder from the Code dropdown in the top-right corner.
Step 3 - Build + Flash Your Device
Follow the steps on our Firmware README to compile the downloaded source code (Step 2) and upload ("flash") it to your device. No coding knowledge is required.
If you don't need the latest firmware version, and instead prefer to flash a different one, simply copy your preferred FW from the builds
directory:
Then paste it into the hidden .pio
directory. The full path should be .pio/build/esp32-c3-devkitc-02/firmware.bin
, thus you should rename the copied "FWX.X.X.bin" to be named firmware.bin
.
When you have the preferred FW version (binary file) inside the .pio/build/esp32-c3-devkitc-02
directory -- either because you copy/pasted from the root build
directory or chose to "Build" it via the Platform IO extension -- you are ready to upload.
The README file continues these instructions:
Note the importance of putting your TRMNL in "boot mode" for the contents to be written to the device.
Step 4 - Set up your Device
You may have already set up your TRMNL device on the web application, which you don't need to do again. Instead, you'll just need to re-pair your local WiFi credentials.
Turn off the device (following Step 3 above), wait 5 seconds, then turn the device back on. It should go into the default setup mode, prompting you to connect to TRMNL WiFi as described here.
After pairing your local WiFi network, TRMNL will run your customized firmware for as long as you allow it. To reverse all of the above at any time, just re-enable "OTA Updates" from your device settings inside the TRMNL web application.