
7 January 2026
I'm playing at making a tablet based on a Raspberry Pi Zero 2 W and a USB/HDMI touchscreen by Elecrow (Amazon link).
I want to boot to a usable app screen as quickly as possible, and it all has to fit into the Pi's 512MB RAM...so the software will need to be really lightweight.
At the minute, I'm intending to avoid using X or Wayland and write apps which use EGL directly. I've also been a little worried by the screen's product information saying it doesn't support multi-touch on Linux.
So I'm looking to handle the touchscreen input myself, which led me to investigating how to use libevdev in C/C++.
I have managed to make a program which scans for the first multi-touch device, then connects to it and dumps to the console any input events from it.
The Elecrow screen seems to send through all the Linux input messages that I'd need (ABS_MT_SLOT, ABS_MT_TRACKING_ID, ABS_MT_POSITION_X/Y). Handling the EV_SYN event might take a little thinking to get right, but at the moment it all feels possible.
So my initial thoughts on design for the touchscreen system are to split it into three layers:
getEvent() routine which passes through just the events I'm interested in, handling EV_SYN correctly.I think my next step is now to design a simple gesture-control interface to navigate a proof-of-concept tablet app.
Or maybe the next step is to check I can actually get EGL working properly on the Pi with GPU acceleration.
Either way - it's progress! :D