ESP32 Home Assistant dashboard display workflow

The XDA piece on building an ESP32 Home Assistant dashboard hit an itch a lot of home-lab folks already had. A cheap ESP32 board with a 3.5-inch touchscreen replaces a wall-mounted tablet for a fraction of the price, uses almost no power, and stops being the third phone check of your morning. The catch is that you need actual desktop apps to flash it, design the interface, and connect it to your Home Assistant instance. This roundup covers the seven best desktop apps for building an ESP32 Home Assistant dashboard display in 2026, tested on Windows 11, macOS 15, and Fedora 40.

None of these apps require a paid subscription. Most are open source. All of them talk to a stock ESP32-2432S028R, ESP32-S3-Box, or a WT32-SC01 without hardware modification.

What to look for in an ESP32 dashboard toolchain

Quick comparison table

App Role in the stack License Runs on Standout
ESPHome Firmware generator GPLv3 Docker / Home Assistant addon Native HA API, first-class LVGL
PlatformIO Firmware IDE Apache 2.0 VS Code plugin, cross-OS Flexible for Arduino / IDF
SquareLine Studio Visual UI designer Freeware / paid Win / macOS / Linux Design LVGL screens, export code
LVGL UI framework MIT Cross-platform The runtime for every serious ESP32 UI
OpenHASP Pre-built HA dashboard firmware MIT Web installer No coding, HA-native
TFT_eSPI Config Tool Display config helper MIT Cross-platform Solves the pin-mapping headache
Home Assistant The instance the display talks to Apache 2.0 Any OS Where entities and automations live

The apps

1. ESPHome — Best YAML-based firmware generator

ESPHome is the shortcut. Write a 30-line YAML file describing your board, your display driver, and the LVGL widgets you want on-screen, and ESPHome generates and flashes the firmware. The native API integrates with Home Assistant in one click, no MQTT broker needed. LVGL support landed as a first-class module in the 2024.6 release and has matured through 2026 into the fastest path from “board on desk” to “dashboard on wall.”

Where it falls short: YAML has its limits. Very custom interactions (animations, sound, offline logic) still push you toward PlatformIO. Compile-and-upload times on modest hardware are noticeable.

Pricing:

Platforms: Home Assistant addon, Docker container, standalone Python install. All host OSes work.

Download: esphome.io · ESPHome on GitHub

Bottom line: The correct default. Start here and only move to PlatformIO if you outgrow it.

2. PlatformIO — Best flexible IDE for Arduino and ESP-IDF

PlatformIO is a VS Code extension that adds embedded targets: ESP32, ESP32-S3, ESP32-C3, STM32, RP2040, and dozens more. It bundles Arduino cores, ESP-IDF, and a library manager. For a dashboard project that needs custom drivers, non-trivial state machines, or integration with local sensors that ESPHome does not expose cleanly, PlatformIO is the escape hatch.

Where it falls short: Steeper learning curve than ESPHome. You maintain the C++. First-project setup takes an evening.

Pricing:

Platforms: VS Code on Windows, macOS, Linux.

Download: platformio.org

Bottom line: The right tool when your project needs code, not YAML.

3. SquareLine Studio — Best visual UI designer for LVGL

SquareLine Studio is a drag-and-drop LVGL designer. Drop buttons, gauges, sliders, and images on a canvas sized to your ESP32’s screen, wire up events, then export the C source that plugs into ESPHome or PlatformIO. Free tier covers a personal project. Paid tier removes limits on exports.

Where it falls short: Free tier limits the number of screens and widgets per project. Export integration with ESPHome requires a small adapter script.

Pricing:

Platforms: Windows, macOS, Linux.

Download: squareline.io

Bottom line: The tool that turns hand-coded LVGL into a designable UI.

4. LVGL — Best embedded UI runtime, and the standard everyone else builds on

LVGL is the graphics library your ESP32 dashboard actually renders through. It handles double buffering, anti-aliased primitives, touch, gestures, and a widget library that looks modern instead of 1998. You rarely install LVGL directly; ESPHome and PlatformIO both fetch it as a dependency. But knowing its API opens up custom widgets and animations.

Where it falls short: Not a standalone app; it is a library. Documentation is dense.

Pricing:

Platforms: Cross-platform, runs on ESP32, STM32, RP2040, Linux frame buffer.

Download: lvgl.io · LVGL on GitHub

Bottom line: Learn its widget model even if you never touch its source directly.

5. OpenHASP — Best no-code, pre-built HA dashboard firmware

OpenHASP takes the ESP32 board choice out of the design phase. It is a pre-built firmware you flash from a browser, then configure entirely from Home Assistant via MQTT. Screens are defined in JSONL files served by HA. No code, no LVGL widget wiring, no Squareline export.

Where it falls short: Not as flexible as building your own ESPHome + LVGL screen. Requires MQTT (which you probably already run, but if not, it is an extra service).

Pricing:

Platforms: Web installer flashes from any Chromium browser. Runs on ESP32 with ILI9341, ILI9488, GC9A01 panels.

Download: openhasp.com

Bottom line: The pick if you want an HA touchscreen without becoming an embedded developer.

6. TFT_eSPI Config Tool — Best helper for the pin-mapping headache

TFT_eSPI Config Tool is a small cross-platform utility that generates the User_Setup.h for TFT_eSPI (the display driver library most ESP32 board bundles use). Instead of hand-editing pin macros for your specific board, pick the board from a dropdown and export the correct file. Fifteen minutes saved every new project.

Where it falls short: Very narrow scope. Not needed if you use ESPHome (which handles this internally).

Pricing:

Platforms: Cross-platform (JavaScript).

Download: TFT_eSPI Config Tool on GitHub

Bottom line: The five-minute fix for the “why does my screen show pink stripes” moment.

7. Home Assistant — Best (and required) instance to talk to

Home Assistant is not optional in this stack. The point of an ESP32 dashboard is to display and control HA entities. HA supplies the state feed, the automation triggers, and the API the ESP32 talks to. Whether you run HA on a Raspberry Pi 4, a mini-PC, or a NAS, install it first before the ESP32 arrives.

Where it falls short: Not a build tool. The learning curve for HA itself is a separate project.

Pricing:

Platforms: Raspberry Pi, mini-PC, NAS, VM. Any x86_64 or ARM64 host with 4 GB of RAM.

Download: home-assistant.io · Nabu Casa

Bottom line: The instance every other item on this list connects to. Install first.

How to pick the right one

Stay on a wall-mounted tablet if the total investment (board, screen, case, enclosure, time) is worth less to you than the tablet you already own. For most home-lab folks, the ESP32 route is cheaper, uses less power, and lasts longer.

FAQ

What is the easiest way to build a Home Assistant dashboard display?

Flash OpenHASP if you want zero coding. Use ESPHome with LVGL if you want to customize freely without writing C++. Both work on a stock ESP32-2432S028R for under thirty dollars.

Do I need to run Home Assistant to build an ESP32 dashboard?

Yes, in practice. The dashboard displays HA entities and calls HA services. You can build a standalone screen that just shows the time, but there is little point in an ESP32 for that.

Which ESP32 board is best for a HA dashboard?

The ESP32-2432S028R (the “Cheap Yellow Display”) is the community standard. The WT32-SC01 Plus is a nicer capacitive-touch option. The ESP32-S3-Box has a first-party Espressif AI stack if you also want voice.

Can I do voice control on the same device?

Yes, with an ESP32-S3-Box or a stock ESP32 wired to an INMP441 microphone. ESPHome’s voice assistant integration relays audio to Home Assistant’s Assist pipeline and speaks back through a small speaker.

Do these apps work on macOS with Apple Silicon?

Yes. ESPHome, PlatformIO, and SquareLine Studio all ship native ARM64 builds. Flashing over USB works with the built-in drivers on macOS 14 and 15.

Can I update the display firmware over the air?

Yes. Both ESPHome and PlatformIO support OTA updates on ESP32. Wire OTA on the very first flash so you never have to unbolt the device from the wall.