Experimental

ESP-KVM terminal

Firmware for the M5Stack Tab5 that shows an ESP-KVM device's screen on the Tab5. Touch, the Tab5 keyboard or a USB keyboard and mouse control the target. No browser, no computer: a KVM console you hold in one hand.

An M5Stack Tab5 with its keyboard, showing the same desktop as the laptop screen behind it, mouse pointer included. ▶ Watch it run — 26 seconds
The Tab5 in front, the target's own screen behind it. In the video a clip plays on the laptop, to show how the picture keeps up over Wi-Fi.

An experiment. The Tab5 has the same ESP32-P4 as the KVM, so I wanted to see what it could do with it. I do not know yet how many people want one, or how well it works day to day outside my desk. It works for me. If you try it, or decide you would never use it, I would like to hear either.

What it does

WhatHowStatus
Wi-FiThrough the Tab5's ESP32-C6; remembers the network.Works
Finding devicesESP-KVM devices on the network show up by themselves (mDNS).Works
Sign-inA device's certificate is trusted only after you check its fingerprint.Works
The pictureMJPEG, up to about 20 fps at 1280×720.Works
TailscaleAbout 11-14 fps on my network.Works
ReconnectingWhen the device or the network drops.Works
TouchTouch as the pointer or a trackpad, two-finger scroll, pinch to zoom up to 8×.Works
KeyboardsThe M5Stack Keyboard for Tab5, or a USB keyboard and mouse.Works
Extra keysEsc, F1-F12, the arrows; Ctrl, Alt, Win and Shift held for the next key.Works
Target powerPower, reset, Wake-on-LAN, Ctrl+Alt+Del.Works
The Tab5 itselfSleep, brightness, battery level; turns over when held upside down.Works
Several saved networksUp to five; the strongest one in range is joined.
UpdatesFrom GitHub releases, with a way back after a bad one.
2FA sign-inA code from an authenticator app.
Several devicesSwitching between them, forgetting one.
Text modeThe target's screen read as characters.

What it needs

  • An M5Stack Tab5. The Keyboard for Tab5 is optional: without it an on-screen keyboard appears.
  • An ESP-KVM device on the same network, or on the same tailnet.
  • The device's video codec set to MJPEG. The Tab5's chip has no H.264 decoder, and decoding it in software gives about 4 fps.

Installing it

Each release on GitHub has two files. espkvm-term-merged.bin goes onto a Tab5 at address 0x0 and replaces what is there, M5 Launcher included. espkvm-term.bin is for M5 Launcher: copy it to the SD card and install it from there. After that the Tab5 updates itself from its TERMINAL screen. Building from source needs ESP-IDF 6.1 and the espkvm repository next to it; the README has the steps.