A restyled "mint" user interface for the Waveshare ESP32-S3 4.3B (800×480), ported from the 480×320 CustomUI design onto the 4.3B and wired to live pedal data. This is a fork of Builty/TonexOneController.
The screenshot above is a render from the built-in PC simulator (
simulator800/), so it shows placeholder text; on the device the preset number, name, BPM and effect states are filled in live from the pedal.
- New "mint" UI for the 4.3B (800×480). Black background, teal/mint accent (
#6ED8BF), heavy Anton display font for the big preset number and name, M PLUS font for the Japanese labels, flat signal-chain effect icons (grey = off, coloured = on, active block highlighted), and an arc-knob settings screen. - Ported from 480×320 to 800×480 and hooked up to the live pedal data (preset number → number pill, preset name → hero label, BPM, and per-effect on/off states) in
display.c/display_tonex.c. Legacy widgets the new design drops are provided as hidden stubs viascreens_compat.c. - Fixed the 4.3B frame-offset regression. V2.0.4.2-beta5 shifts the whole frame up/down between boots on some 4.3B panels. Reverted the RGB pixel clock to 13.1 MHz with
vsyncporch 16/16 (the V2.0.2.2-beta2 known-good values) insource/main/platform_ws43.c— the frame now stays centred across power cycles. simulator800/— headless UI preview. Renders the real firmwarescreens.cto a PNG on a PC (no SDL/cmake needed, justgcc+ the vendored LVGL):cd simulator800 && ./preview.sh→preview.png.- The design is edited visually in EEZ Studio (
ui_design_800x480land/Tonex_Controller_800_480land.eez-project). After every EEZ Build, runbash simulator800/restore_compat_stubs.sh— EEZ regeneratesscreens.hand wipes the hand-addedCOMPAT STUBSblock that the firmware needs to compile.
Flash the pre-built Mint UI firmware straight from your browser — no ESP-IDF, no downloads.
- Open https://krodetsa.github.io/TonexOneController/ in Chrome or Edge (Safari/Firefox don't support WebSerial).
- Press and hold the "Boot" button on the board.
- Connect a USB-C cable to the board and your PC/Mac. Release Boot after it's connected.
- Press Connect, pick the ESP32-S3 serial port (may be listed as "USB JTAG/serial debug unit"), and follow the prompts.
- Choose Erase only if you want to wipe all settings back to default; skip it to keep your existing config.
- When it finishes, unplug and power the board normally.
Prerequisites: ESP-IDF v5.5.1 installed (e.g. in ~/esp/esp-idf).
- Connect the 4.3B board to your PC over USB. On Linux it enumerates as the ESP32-S3 USB-JTAG serial port, usually
/dev/ttyACM0.- If you get a permission error, grant access:
sudo chmod a+rw /dev/ttyACM0(or add yourself to thedialoutgroup and re-login).
- If you get a permission error, grant access:
- Configure the ESP-IDF environment and build:
. ~/esp/esp-idf/export.sh cd source # first time only — creates the build config for the 4.3B: idf.py -B build_ws43b -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.ws43B" set-target esp32s3 # build: idf.py -B build_ws43b build
- Flash it:
The board resets into the new firmware automatically.
idf.py -B build_ws43b -p /dev/ttyACM0 flash
If you edited the UI in EEZ Studio first: run
bash simulator800/restore_compat_stubs.shbefore step 2, otherwise the build fails on missingobjects_tfields.
Serial debug logs go to a separate UART TX pin (see FirmwareDevelopment.md), not the USB port, so the USB console is quiet at idle — that is normal, not a crash.