touchy-pad
Host-side Python library and CLI for the Touchy-Pad USB multitouch device.
Install
pip install touchy-pad
You will also need a working libusb-1.0 runtime on your host:
| Platform | Command |
|---|---|
| Debian | sudo apt install libusb-1.0-0 |
| macOS | brew install libusb |
| Windows | bundle libusb-1.0.dll next to your interpreter |
On Linux you also need a udev rule so non-root users can open the device.
A starter rule is shipped at ../bin/99-touchy-pad.rules.
CLI
touchy --help # list subcommands
touchy board-info # query device board, firmware, protocol version
touchy screen-wake # turn the backlight on
touchy events # live-tail events from the device
Library
The supported entry point is touchy_pad.api:
from touchy_pad.api import touchy_open
with touchy_open() as pad:
print("firmware:", pad.client.sys_version_get().firmware_version_str)
pad.on_host_event(0x100, lambda e: print("event", e))
# ...do work; events arrive on a background thread...
See docs/python-api.md for the full guide
and docs/python-api/ for auto-generated
reference docs (built with just build-docs).
Uploading images
Touchy.file_save accepts any Pillow-readable image (BMP, PNG,
JPEG, GIF, WebP) and transparently converts it to LVGL's native .bin
format before uploading, so the firmware (which only ships LVGL's
built-in bin decoder) can render it without extra config:
with touchy_open() as pad:
with open("avatar.png", "rb") as f:
pad.file_save("images/avatar.png", f.read()) # auto-converted
# Already-converted `.bin` payload, or any non-image bytes, pass
# through unchanged.
pad.file_save("screens/home.pb", screen.to_bytes())
Refer to the asset by its upload path (asset="images/avatar.png")
when constructing image(...) / image_button(...) widgets — both
support scale= and rotation= for runtime transforms, and
image_button also takes pressed_asset / pressed_scale /
pressed_rotation for a distinct pressed-state look.
Development
See docs/development.md for full setup instructions
(dev container or manual), day-to-day just recipes, and git hook details.
Metadata
Release files for touchy-pad 0.3.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| touchy_pad-0.3.4.tar.gz | 241.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| touchy_pad-0.3.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 506.1 kB
Release files / touchy_pad-0.3.4.tar.gz
| Download URL | touchy_pad-0.3.4.tar.gz |
|---|---|
| Size | 241.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f3cbb5d9c87419e9c17b10ca2438a62dda52b803673b09758f2b09c6b91b3c55
|
|
BLAKE2b-256 checksum How to use checksums |
55d8c2bd6b51713aca022ec7e1b5cdb0d8c352f5f53a97435be9129fdccc7610
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.
Transparency logRelease files / touchy_pad-0.3.4-py3-none-any.whl
| Download URL | touchy_pad-0.3.4-py3-none-any.whl |
|---|---|
| Size | 264.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
609641ff40401d5f08b576cdf7b843e3f6c501b979aab3459b5cbcf434e842a8
|
|
BLAKE2b-256 checksum How to use checksums |
153201df5679163d09650cc8a5c5ded28fc1e54186b87872a7eb6fe4a72b17b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.
Transparency log