LCD Wizard documentation
Everything about the application, from the first screen to the firmware on the board.
LCD Wizard is a browser-based designer for LVGL
user interfaces on Arduino-class display boards. You lay out screens on a canvas, describe the
board, the panel, the touch controller and any sensors, and it generates a complete Arduino or
PlatformIO project - the sketch, the driver configuration, lv_conf.h and the LVGL UI
sources - which you compile and flash yourself.
These pages are the reference for the whole application. If you have never used it, start with the quick start; if you have a board on the bench and a zip from the export dialog, go straight to flashing and configuration.
How the pieces fit together
Everything in the designer belongs to one of four layers, and the generated project has a file for each of them.
| Layer | Where you edit it | What it becomes |
|---|---|---|
| Screens and widgets | The canvas, the Widgets panel and the Inspector | ui/ui.c, one ui_<Screen>.c per screen, and
ui_events.c for your own callbacks |
| Hardware | The Hardware tab: Board, Display, Touch, Buses, Devices, I/O, Inputs | The .ino, lcd_pins.h, the driver configuration
(User_Setup.h or LGFX_Config.hpp) and hardware.cpp |
| Data | The Data tab (variables, automations) and each widget's Data bindings | app_logic.cpp: vars_update(), bindings_apply() and
the automation handlers |
| Assets | The Assets tab at the bottom of the window | Files under data/ for the board filesystem, or C arrays compiled in |
On the device the loop is short: hw_poll() reads every input on its own schedule
and caches it, vars_update() applies your formulas to those caches,
bindings_apply() pushes the results into widgets, and lv_timer_handler()
draws. A slow sensor therefore never stalls the display, and a widget always shows the most recent
value it was given.
What it is not
It is not an IDE and it does not talk to your board. Compiling and flashing happen in PlatformIO or the Arduino IDE on your own machine, with the toolchain and board core you already use. It is also not a simulator of the hardware: the preview runs your bindings and events against made-up readings so you can see the logic work, but the panel, the touch controller and the sensors only exist once the firmware is on the board.
Conventions in these pages
- Tab > Section names a place in the designer: Hardware > Display is the Display tab inside the Hardware panel on the right.
monospaceis something that appears verbatim in generated code or a file name.- A Ctrl+E pair is a keyboard shortcut.
- Screenshots are cropped from the designer as it is today; the layout is stable but the exact widget list and hardware catalogue grow over time, so a menu may have gained an entry since a picture was taken.