Real EvilKey GUI on the prototype
Watch the real device and its AMOLED touch interface in the published, silent GUI Short. The ending uses the firmware-inspired animated EvilKey logo. This footage does not show live PIN verification, cursor movement, or script execution.
A longer walk through the 0.7.4 interface
I wanted to show how the screens fit together, rather than leave each feature as a separate clip. This tour moves from the animated screensaver and PIN interaction through Ready and Settings, then into Air Mouse, BLE Gamepad, USB Tool and the Apps screen. There is actual EvilBundle gameplay, including EvilRacer, before the final app gallery.
Watch the EvilKey 0.7.4 Interface Tour on YouTube.
The film is rendered from the real firmware UI running on a desktop host. The PIN and connection/status moments are arranged demo states; they do not show a live FIDO2 sign-in, USB payload or BLE pairing. The Short above remains the physical-prototype GUI footage. EvilBundle is still a private app collection, not part of the public firmware download.
A perfectly reasonable problem, followed by a perfectly unreasonable response
My OpenAI account asked me for FIDO2 authentication while I was working with an active Daybreak Blue model. I needed a security key. The sensible plan was to buy a YubiKey, log in and get on with my life. Naturally, that is not what happened.
I found the open-source Pico FIDO project and ordered a Waveshare ESP32-S3 Touch AMOLED 1.64 board. Then came the maker's classic facepalm: I had overlooked that the community version did not give me everything I had pictured. The sensible response was still to use it as a FIDO2 key. Instead, a very old XDA Developers reflex woke up.
As a teenager I loved getting my hands dirty with firmware for early HTC phones, Windows Mobile and the first generations of Android. Back then, phones felt full of places where a curious community could improve things before manufacturers caught up. I remember how much fun it was to make an existing device do something its original menu had never imagined. That memory made me smile, then made me open the source tree. Apparently the older version of me still enjoys making hardware do extra things. Some useful. Some gloriously unnecessary.
EvilKey is the result: a FIDO2 key that acquired a dark AMOLED touch interface, on-device PIN entry, a script-driven USB tool and, because apparently a key should also steer a cursor, an air mouse. Then it learned to load apps from microSD. Apparently that meant games. The Waveshare PCB is not my hardware design. The EvilKey firmware port, LVGL interface, Windows Manager, original microSD examples and enclosure work are my additions, with the upstream licenses and notices kept visible.
How the feature creep happened
- Make the key usable every day. Keep the FIDO2 role and build an interface that is readable on a 280 × 456 touch AMOLED, with large controls and a restrained dark palette.
- Put the PIN on the key. The touch screen provides a numeric keypad for FIDO2 built-in user verification: masked entry, a visible retry count and timeout, Backspace, Verify and Cancel. On compatible FIDO2 requests, I enter the PIN on EvilKey instead of typing it into the connected computer. The familiar host-side ClientPIN path remains available for setup and compatibility.
- Give it a face. The mint symbol and white crystal became a shared 3D screensaver. Both parts move in the same projected plane; the crystal turns around its vertical axis. The logo stays recognizable even when the animation briefly glitches.
- Win back display speed. Keep the LVGL object pool in PSRAM and use two DMA-capable RGB565 draw buffers in internal RAM when memory permits. The preferred layout is two 64-row buffers, with a two 16-row fallback before other buffer layouts. Diagnostics shows what was actually allocated. Firmware 0.7.5 also shares GUI and native 3D drawing between both ESP32-S3 cores, with the same graphics...
Michal Wojciechowski


ON3 Paul Krause
solitary dev
CiferTech