A touch control deck for the Guition JC3248W535 (3.5" 320x480 IPS, capacitive touch, ESP32-S3 with 16 MB flash and 8 MB PSRAM). Pages of tiles switch and read Home Assistant entities, show live PC stats from the TouchDeck Companion and follow Bambu Lab printers. Everything is set up from a web portal on the device. No cloud, no accounts: it talks to Home Assistant over its local WebSocket API and receives PC metrics over UDP on the LAN.
A personal project built around my own desk setup, shared as is. Expect features that only make sense for that setup, and rough edges.
Install from the browser: touchdeck.stolaris.dev flashes the latest release over USB from desktop Chrome or Edge, sets up WiFi in the same tab and walks through Home Assistant and the PC companion.
Full feature guide: GUIDE.md.
Guition JC3248W535: AXS15231B panel over QSPI, AXS15231B touch on I2C. Nothing to wire. 3D printed case: MakerWorld model 3463113. USB-C cable I use: AliExpress.
![]() |
![]() |
Optional: a single-colour status LED on a free GPIO (wiring), a vibration motor for tile taps and a microSD card for wallpapers and brand icons.
Short video of the deck in use: YouTube.
Captured from the device (/screen.bmp), Glass theme unless noted.
![]() |
![]() |
| Home Assistant tiles, media and PC volume | PC stats from the companion |
![]() |
![]() |
| Midnight theme | Daylight theme |
![]() |
![]() |
| Bambu Lab printer page | AMS units and all slots |
![]() |
![]() |
| Home lab: Proxmox and pfSense | Quick panel |
Recorded frame by frame from the display. Pick a set under Display > Animations (Classic, Calm, Water, Glass, Heavy, or Custom to choose each effect).
![]() |
![]() |
| Calm | Water |
![]() |
![]() |
| Glass | Heavy |
![]() |
![]() |
| Photo frame | Printer animations |
- Pages of tiles up to 6x4, sized in half-cell steps, stacked into columns: swipe sideways between columns, up and down within one. More
- Home Assistant: switches, sliders, scenes and scripts, sensors with history charts and warning thresholds, a detail card on long press. Material Design Icons, plus optional brand icons.
- PC stats and control from the TouchDeck Companion (Windows, Linux): metric tiles, media keys, volume, now playing, hotkeys, sleep and shut down.
- Bambu Lab printers: up to two, over the LAN or through Home Assistant, with printer and AMS pages. More
- HTTP buttons and sensors for LAN devices without Home Assistant (Tasmota, Node-RED, your own projects). Buttons, sensors
- Conditional tiles and pages: shown only while a PC is on or off, or while an entity is in a state. More
- Themes: Midnight, Daylight and Glass over your own pictures or daily Windows Spotlight wallpapers, per-tile colours and icon styles. Wallpapers
- Screen sleep on Home Assistant presence, night schedules for the backlight and the status LED. More
- MQTT discovery: the deck shows up in Home Assistant with its screen, page, night mode and a message toast. More
- Edit on the device: long press an empty spot to move, resize, add or remove tiles. A quick panel from the top edge has brightness, night mode and link status.
- Flash from touchdeck.stolaris.dev, or see Flashing without the web flasher.
- Set up WiFi over USB in the same tab, or join the deck's
TouchDeck-XXXXnetwork (passwordtouchdeck1234, setup page athttp://192.168.4.1). - Open the device IP, connect Home Assistant and build your pages.
Updating a deck that already runs TouchDeck: upload TouchDeck-<version>-ota.bin from Releases in Maintenance > Firmware update. Building from source: GUIDE.md.
Built on LVGL, ArduinoJson, arduinoWebSockets, GFX Library for Arduino (AXS15231B init table) and Improv WiFi (vendored under lib/ImprovWiFi). Fonts: Montserrat (SIL OFL 1.1) with the LVGL symbol set (Font Awesome Free); icons: Material Design Icons, installed on the device by the user.
MIT, see LICENSE. The vendored Improv WiFi library keeps its own MIT license in lib/ImprovWiFi/LICENSE.















