Chen Liang's Wireless Thin Client Takes the Concept to the Limit with an ESP32 or RP2040 Heart
Designed to connect to a VNC server running on something more powerful, this low-cost build could be the thinnest thin client ever.
Electronics engineer Chen Liang has built a thin client device, which pushes the concept to its very limit β by using a low-cost microcontroller, like an Espressif ESP32 or Raspberry Pi Pico W, as its processor.
"'Thin client' is minimalistic hardware that provide a user interface [to] connect the user to the actual processing machine," Liang explains. "A thin client [does] not require a high processing power device since all jobs are running on the server, so it is called 'thin client.' [It] has many advantage if it can be made from low cost hardware. But how low it can be?"
The answer, it turns out, is surprisingly low. While modern thin client systems are usually based on application processors β the popular Raspberry Pi 4 single-board computer (SBC) and its industrial Compute Module 4 variant often find themselves pressed into service as thin clients β Liang's design goes in a different direction: a low-cost, Arduino-compatible microcontroller board with integrated Wi-Fi capabilities.
Building atop a VNC client written for the Arduino platform by Markus Sattler, Liang has created a variant that supports higher-resolution displays and ZRLE encoding β boosting the performance from a clunky six frames per second to a more usable 15-20 frames per second. The user's choice of M5STack CardKB or LILYGO BBQ10 keyboard provides a means to enter text, while a touchscreen display replaces a mouse β and by connecting to a desktop system it's possible to run any software you like, from a web browser to an admittedly-jerky game.
Liang has plans for the future of the project, too, including adding a battery to make the device fully portable, design a custom keyboard more like those found on a desktop machine, a case for free-standing and handheld use, and add extra security for cloud operation.
More information is available in Liang's project post; the source code for the RLE-capable fork of Sattler's VNC port is available on GitHub under the reciprocal GNU General Public License 2.