Free tier 10 code generations a month

Design the screen.
Ship the firmware.

A visual LVGL designer for Arduino-class displays. Drag out your interface, pick the panel and touch controller, map the pins, wire in your sensors - then export an Arduino project that compiles.

No install. Runs in the browser. Confirm your email and you are in.

lcdwizard - ui_Screen1
EXPORT CODE SCREENS Screen1 Settings WIDGETS Button Label Slider Arc Chart Switch Bar Roller Greenhouse 21.4 DEG C Humidity 64% Fan speed START STOP Inspector Hardware Data Theme GEOMETRY X 120 Y 198 W 200 H 20 VALUE Range 0 - 100 BINDING fan_speed (uint8) value * 255 / 100 EVENTS RELEASED -> set variable pump_on = 1 PINS SCK 14 MOSI 13 CS 15 DC 2 TOUCH GT911 @ 0x5D INT 36
What it does

Everything between a blank screen and working firmware

The design tool and the board bring-up are the same job. This does both.

21 LVGL widgets

Buttons, sliders, arcs, charts, rollers, tabviews, keyboards and the rest - with the style parts and states LVGL actually exposes, not a simplified subset.

Real driver support

Over 30 display controllers and 19 touch controllers, each with the exact driver symbol TFT_eSPI, LovyanGFX, Arduino_GFX or esp_lcd expects.

Pin mapping that checks itself

Set every bus pin by hand or start from a board preset. Collisions, input-only pins, strapping pins and flash pins are flagged as you go.

Sensors and I/O

Add extra I2C and SPI buses, environmental sensors, ADCs, IMUs and I/O expanders. Every configuration register the part exposes is in the inspector.

Variables and formulas

Bind a sensor channel to a widget through a conversion formula. The same expression drives the live preview and the C written into your firmware.

Code you can read

An Arduino sketch, LVGL UI sources, lv_conf.h, driver config, a PlatformIO file and a list of every library you need - not an opaque blob.

Hardware

Built for the boards you already have

Start from a known-good preset, or describe your own wiring pin by pin. Every preset carries a note about which revision it was verified against, because vendor pinouts move.

11MCU targets
36display controllers
19touch controllers
20board presets
ESP32 ESP32-S3 ESP32-S2 ESP32-C3 RP2040 STM32F4 STM32H7 ILI9341 ST7789 ST7796 ILI9488 GC9A01 RGB parallel GT911 FT6236 XPT2046 CST816S CYD 2432S028 T-Display S3 M5Stack Core2 Sunton 7"
How it works

Four steps, one browser tab

Pick the hardware

Choose a board preset or set the MCU, panel resolution, display controller, graphics library and touch controller yourself. Pin fields appear for the bus you selected and are validated against the MCU you chose.

Draw the interface

Drag widgets onto the screen, nest them, align them, and style each part and state the way LVGL does. Screens, events and transitions work the way they do in the framework, so nothing is lost in translation.

Wire in the data

Add sensors on any bus, declare variables, bind them to widgets through a conversion formula, and add automations for gestures, digital inputs and thresholds. Press play to simulate readings before the board exists.

Export and build

Get a complete project: the sketch, the UI sources, the driver configuration, lv_conf.h, a PlatformIO manifest and a library list with links. Open it in the Arduino IDE or PlatformIO and compile.

Pricing

Free to design. Pay when you generate a lot.

Designing, previewing and saving are unmetered. What counts is a code generation - one full build of your project's source.

Prices in USD. Cancel any time from inside the app. Full comparison

Questions

Before you sign up

Do I need to install anything?

No. The designer runs in the browser. You need the Arduino IDE or PlatformIO to compile what it exports, but nothing to design with.

What exactly is a "code generation"?

One full build of your project's source files. Designing, previewing, validating, saving and re-opening projects are all free and unlimited - you are only charged when you press Generate and get files back.

Which LVGL version does it target?

Both 8.3.x and 9.x. Pick the version per project; the generator handles the API differences, including the renames and the display and input-device registration changes.

My board is not in the list.

Start from "Custom" and set the pins yourself - every preset is only a shortcut to the same fields. If your display or touch controller is genuinely missing, send us the datasheet link and we will add it.

Do you own the code it generates?

No. What the generator produces is yours, for any purpose, with no attribution requirement and no runtime tied back to us.

Why do I have to confirm my email?

The free tier is metered per account, and an unverified address makes that meaningless. It also means we can reach you if a generated project has a problem.

Your panel is already on the desk.

Design the interface for it in the next ten minutes.

Create a free account