Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

touchy_pad-0.3.4.tar.gz (241.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

touchy_pad-0.3.4-py3-none-any.whl (264.9 kB view details)

Uploaded Python 3

File details

Details for the file touchy_pad-0.3.4.tar.gz.

File metadata

  • Download URL: touchy_pad-0.3.4.tar.gz
  • Upload date:
  • Size: 241.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for touchy_pad-0.3.4.tar.gz
Algorithm Hash digest
SHA256 f3cbb5d9c87419e9c17b10ca2438a62dda52b803673b09758f2b09c6b91b3c55
MD5 54af247a842107f51ab079bb28b0101a
BLAKE2b-256 55d8c2bd6b51713aca022ec7e1b5cdb0d8c352f5f53a97435be9129fdccc7610

See more details on using hashes here.

Provenance

The following attestation bundles were made for touchy_pad-0.3.4.tar.gz:

Publisher: release.yml on geeksville/touchy-pad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file touchy_pad-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: touchy_pad-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 264.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for touchy_pad-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 609641ff40401d5f08b576cdf7b843e3f6c501b979aab3459b5cbcf434e842a8
MD5 f8c891fdcd9cd875b186e7b36fc7268f
BLAKE2b-256 153201df5679163d09650cc8a5c5ded28fc1e54186b87872a7eb6fe4a72b17b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for touchy_pad-0.3.4-py3-none-any.whl:

Publisher: release.yml on geeksville/touchy-pad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.4 This release

2 files

0.3.3

2 files

0.3.1

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page