LVGL 8.4 · ESP32 · Arduino

Meet the LVGL Studio
Editor

The first all-in-one visual development environment for ESP32 LCD projects. Design, automate, generate code and flash — all in your browser.

How it works

From idea to hardware in 5 steps

01

Choose your panel

Pick from 19 pre-configured LCD panels. Canvas resizes automatically.

02

Design visually

Drag widgets onto the canvas, style them with the props panel.

03

Build your logic

Connect nodes in the workflow editor — no C coding required.

04

Generate C code

One click produces ready-to-compile LVGL 8.4 + Arduino firmware.

05

Flash to device

Upload via USB-Serial directly from the browser. Done.

UI Editor

47 LVGL widgets.
Pixel-perfect preview.

Every widget renders exactly as it will appear on your LCD. Style every part — background, border, shadow, text, gradient — then see the result instantly.

  • Drag & drop widget placement
  • Multi-select, group move, resize handles
  • Full LVGL style system (parts, states, opacity)
  • Multi-screen support with navigation
  • Undo / Redo history
  • Smart alignment guides & snap
  • Image upload → auto C array embed
  • Memory usage estimator
Basic6 widgets
ObjectLabelButtonImageLineContainer
Input9 widgets
ArcSliderSwitchCheckboxDropdownRollerTextareaKeyboardSpinbox
Display6 widgets
BarChartMeterLEDBadgeLottie Animation
Layout6 widgets
PanelGridFlex RowFlex ColTabviewTileview
Advanced6 widgets
CalendarColorwheelImgbtnMsgboxSpanList
Workflow Engine

Visual logic for your ESP32 —
no C code needed.

Connect nodes to create any logic flow. The engine compiles it to optimized, non-blocking LVGL 8.4 C code automatically.

Trigger
Touch / widget event
⏱️
Timer
Recurring or one-shot timer
👂
Event Listener
Cross-screen event receiver
⚖️
Condition
if / else branching
🔁
Loop
C for() loop
🔀
Switch
Multi-branch routing
📦
Variable
Local variable
🌐
Global Variable
Cross-screen variable
🧮
Math
+ − × ÷ min max abs
📐
Clamp / Map
Range clamp / Arduino map()
🎲
Random
ESP32 hardware RNG
📝
String Format
snprintf template → label
💾
NVS Storage
Flash read / write / erase
📡
Emit Event
Publish event to bus
Delay
Non-blocking lv_timer wait
🔧
Action
61 hardware / UI actions

61 Built-in Actions

GPIO & PWM
gpio_writegpio_readgpio_togglepwm_setdac_writeadc_read
LED
blink_ledstop_blink_ledset_led_brightnessset_led_colortoggle_ledwidget_led_toggle
UI
navigate_screenset_textset_valueset_arc_valueset_meter_valueset_propertytoggle_visibleshow_msgboxrefresh_labelplay_animation
Sensors
sensor_dht11sensor_bme280sensor_mpu6050sensor_ina219sensor_bh1750sensor_aht20sensor_sht31sensor_ds3231sensor_vl53l0x
Communication
wifi_connectwifi_send_jsonmqtt_publishserial_sendi2c_writespi_writecan_sendhttp_request
System
deep_sleeprestart_devicetimer_starttimer_stopincrementdecrementset_variablecall_function
ui_screen_main.c
// ─── Generated by LVGL Studio ───
void ui_Screen_Main_init() {
  ui_Screen_Main = lv_obj_create(NULL);
  lv_obj_set_style_bg_color(
    ui_Screen_Main,
    lv_color_hex(0x0a0f2e), 0);

  // Label: lbl_temp
  ui_lbl_temp = lv_label_create(
    ui_Screen_Main);
  lv_label_set_text(
    ui_lbl_temp, "--°C");

  // Workflow callback
  lv_timer_create(
    _wf_timer_cb_abc, 1000, NULL);
}
Code Generation

Clean, production-ready
LVGL 8.4 C code.

The code generator produces multiple files ready for Arduino IDE or PlatformIO. Panel-specific drivers are automatically included.

  • LVGL 8.4 compatible output
  • Separate .c / .h for each screen
  • Non-blocking lv_timer for all delays
  • Auto-declares all variables and callbacks
  • Panel-specific driver & pin configuration
  • Sensor library includes auto-added
  • WiFi / MQTT / NVS helpers generated
  • Zero hand-editing required
Hardware Support

19 LCD panels, zero configuration.

Select your panel and the editor sets the canvas size, resolution, and driver. Firmware compiles immediately.

Waveshare 7" 1024×600
Waveshare 4.3" 800×480
Waveshare 3.5" 480×320
Waveshare 7" 800×480
Elecrow 7" 800×480
Elecrow 5" 800×480
Elecrow 4.3" 480×272
Elecrow 3.5" 480×320
LilyGO T-Display-S3
LilyGO T-Display
ILI9341 320×240
ILI9488 480×320
ST7789 240×240
ST7789 320×240
ST7735 160×128
GC9A01 240×240 Round
SSD1306 128×64 OLED
SSD1306 128×32 OLED
SH1106 128×64 OLED
Flash & Mirror

Flash to device
directly from the browser.

Using the Web Serial API, LVGL Studio uploads generated firmware to your ESP32 over USB — no Arduino IDE needed for flashing.

  • One-click USB flash via Web Serial API
  • Live mirror mode — see canvas on real LCD
  • Preflight check before every flash
  • ESP32 and ESP32-S3 supported
  • WiFi OTA flash (planned)
  • No drivers to install on Windows / macOS

Ready to flash

Connect your ESP32 via USB, select the COM port, click Flash. Done in seconds.

Chrome / Edge supported Windows / macOS / Linux No local software needed

Ready to build your
first LCD app?

Free registration. No credit card required. Start designing immediately.