AULA L99 keyboard touchscreen as a Home Assistant control panel and energy display

Hi everyone! I turned the touchscreen on my AULA L99 keyboard into a 12-button Home Assistant panel and a small live energy display. I wanted useful controls beside the keys I already use, instead of just the factory animations and CPU/GPU screen.

The experiment works on my keyboard, and I have published the research so others can understand the approach and build on it:

What it does

  • A HOME page controls lights, a hot-water pump, gate/garage pulse actions, and TV play/pause/mute.
  • An energy page displays PV power, grid power, battery charge, floor temperature, daily grid import, and daily PV production.
  • An analog-clock page also shows four of those readings, updating while the page stays open.
  • The Windows companion application runs in the background/tray. Ordinary typing and the top number row still work.

My keyboard, with Russian UI labels. This photo was AI-retouched for presentation; it is not pixel-exact display evidence.

How it works

There are two separate paths:

Control: touchscreen → keyboard MCU → numpad key event → Windows application → Home Assistant action.

The screen already knows how to send numpad commands. We reused those commands, changed the artwork and touch records, and mapped the resulting events to HA actions on the PC. The application suppresses those events so pressing a screen button does not type a digit into the active window. Num Lock is not required.

Readings: Home Assistant → Windows application → screen USB serial interface → runtime RAM variables → native screen widgets.

This does not stream a dashboard or video to the display. The modified screen resources define the layout; the PC writes short formatted values into variables that its widgets display. Static Cyrillic labels are bitmaps.

What was actually modified

We changed resources, page descriptions and touch records in the screen image, UartTFT-II_Flash.bin, while keeping the stock executable MCU logic. This is not a QMK port or a complete replacement firmware. The keyboard does not connect to HA independently; the PC and companion application must be running.

One practical limitation: the Windows hook currently cannot distinguish the touchscreen from another keyboard’s physical numpad. While control is enabled, those numpad keys are reserved for the panel. The top number row is unaffected. Touchscreen button colors are also static artwork, not live HA state indicators.

What is available

The repository has English and Russian documentation covering the architecture, image format, protocol addresses, recovery observations, and offline inspection tools. It separates hardware-tested behavior from static analysis and untested ideas.

It is a research write-up, not a ready-to-install integration or flashing kit: the Windows app and UI build chain are not yet packaged for public installation, and vendor firmware/updater binaries are not included. Testing was on one L99; compatibility with every board revision and recovery from arbitrary bootloader damage are not established.

The work builds on gavindi/Aula_L99_Linux, HuldaLloyd/lt7689 and Salamor/aula-l99-open-widgets, credited and linked in the repository. Development and the write-up were AI-assisted; the working controls and display updates were checked on my actual keyboard.

If you have explored the L99 or similar keyboard screens, I would be interested in comparing protocol findings—especially a way to identify touchscreen input separately from other numpads.