Touchy Pad

An open-source graphical touchpad/macropad project

Internet of Things (IoT)PythonGPL-3.0

Abstract

Touchy Pad is an open-source Internet of Things (IoT) project. An open-source graphical touchpad/macropad project. This project includes a plugin for OpenDeck. It allows you to use a touchy-pad as a 'StreamDeck' like device (that costs only $15!). It is built using Python, ESP32. Key capabilities include: It is a "premium feel" open-source multitouch USB touchpad with built-in customizable screen (for use with Mac/Linux/Windows/Android). This works even if you don't want to run our sister app; When used as a touchpad provides a pretty water droplet touch/grab/turn/gesture visualization; Allows simple key/mouse shortcut/macros without the need for leaving the (optional) sister app running. Generated entirely natively as USB events from our device. The complete source code is publicly available on GitHub under the GNU General Public License v3.0, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.

1. Introduction

This project includes a plugin for OpenDeck. It allows you to use a touchy-pad as a 'StreamDeck' like device (that costs only $15!).

2. Objective

An open-source graphical touchpad/macropad project

This project demonstrates how Python, ESP32 can be applied to a real-world Internet of Things (IoT) problem.

3. Key Features / Modules

  • It is a "premium feel" open-source multitouch USB touchpad with built-in customizable screen (for use with Mac/Linux/Windows/Android). This works even if you don't want to run our sister app.
  • When used as a touchpad provides a pretty water droplet touch/grab/turn/gesture visualization.
  • Allows simple key/mouse shortcut/macros without the need for leaving the (optional) sister app running. Generated entirely natively as USB events from our device.
  • Also works like a "StreamDeck" via the OpenDeck application. Many different plugins automatically supported, bind behaviors and displays to your touchy-deck with a polished GUI app.
  • (optional) Wifi access - so you can control your touchypads from across the room or the internet. Fully encrypted mTLS based connection - no servers required.
  • Linux, macOS and Windows hosts are supported (in theory - currently only tested with Linux, please open a GitHub issue if you see problems on your machine)
  • Includes full (easy) python and rust API libraries for making your own host side apps with cool graphical controls/displays on small/cheap USB devices.
  • For fun I kinda wanna put a CYD with this software into a custom Steam Machine front-plate.
  • Stylus recognition (on suitable device), for brush effects etc...
  • Multitouch is currently supported entirely in the device (by emulating appropriate USB HID actions), but for some art applications we should also expose a multitouch HID endpoint

4. Technology Stack

PythonESP32

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Python 3.8 or later
  • pip / virtualenv for dependencies
  • VS Code, PyCharm or Jupyter Notebook
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/geeksville/touchy-pad.git
cd touchy-pad

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add a mobile dashboard using Blynk or Firebase
  • Store readings in a cloud database for history charts
  • Add alerts via SMS / Telegram when thresholds are crossed

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which microcontroller / board and sensors are used and why?
  2. How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
  3. Where is the sensor data stored and visualised?
  4. How is power consumption managed?
  5. How would you secure the device and its communication?

9. Source Code & License

This project is developed by geeksville and published on GitHub under the GNU General Public License v3.0. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Internet of Things (IoT) Internship