Skip to content

Releases: guysoft/rt82display

v0.6.1

24 Feb 07:47

Choose a tag to compare

Fixes

  • Fix concurrent upload hang: Added a file lock and timeout to upload_to_device. This prevents the process from hanging indefinitely (at "Erasing blocks...") if the background service and a manual CLI command try to access the USB device at the same time. The CLI now raises a DeviceBusy error immediately if the device is in use.
  • Timeout safety: Added a 120-second timeout to the upload process to prevent indefinite hangs if the device becomes unresponsive.

Added unit tests and a ci to run them :)

v0.6.0

22 Feb 20:42

Choose a tag to compare

Prebuilt native QGIF encoder in pip wheels

The native QGIF encoder (test_qgif) is now bundled inside the pip wheel -- no more building from source. Just pip install rt82display and the encoder works out of the box.

What's new

  • Prebuilt binaries for Linux (x86_64, aarch64), macOS (x86_64, arm64), and Windows (x86_64)
  • Automatic discovery -- the CLI finds the bundled encoder first, then falls back to PATH lookup for dev setups
  • Windows support -- fixed POSIX header guards in the C sources for MSVC compatibility
  • cibuildwheel CI -- platform-specific wheels are built and published automatically on release

Upgrade

pip install --upgrade rt82display

No manual build steps required on any supported platform.

V0.5.2

22 Feb 09:44

Choose a tag to compare

What's changed

Automated version management -- the package version is now derived from the git tag at build time using hatch-vcs, instead of being hardcoded in three separate files (pyproject.toml, __init__.py, cli.py).

This eliminates the risk of version drift between the git tag, PyPI release, and rt82display --version output. No functional changes.

Details

  • Replaced hardcoded version = "0.5.1" in pyproject.toml with dynamic = ["version"] + hatch-vcs
  • __version__ is now auto-generated into _version.py at build time
  • Removed duplicate version string from cli.py
  • CI workflow now checks out with fetch-depth: 0 so git tags are available during build

Intial release

22 Feb 08:17

Choose a tag to compare

RT82 Display CLI

Upload GIFs to your Epomaker RT82 keyboard's LCD screen from the command line.

Installation

Install from PyPI

pip install rt82display

This installs the CLI tool and all Python dependencies. You can immediately
use rt82display list, rt82display info, and upload pre-encoded .qgif files.

Linux: udev rules (required for non-root access)

# Download the rules file from the repo
sudo curl -o /etc/udev/rules.d/99-rt82.rules \
  https://raw.githubusercontent.com/guysoft/rt82display/main/udev/99-rt82.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Then unplug and replug the keyboard.

macOS: No extra setup required.

Optional: Build the native QGIF encoder

The native encoder is needed to upload .gif files directly (auto-converts
GIF to QGIF). Without it you can still upload pre-encoded .qgif files.

git clone https://github.com/guysoft/rt82display.git
cd rt82display/wasm2c_runtime
./build.sh

Requirements: A C compiler (gcc/clang). The WABT runtime headers are
included in the repository.

Development install

To install from a local checkout instead of PyPI:

git clone https://github.com/guysoft/rt82display.git
cd rt82display
pip install -e .

Usage

Upload a GIF (auto-encodes to QGIF)

rt82display upload my_animation.gif

Upload a pre-encoded QGIF file

rt82display upload my_animation.qgif

Encode a GIF without uploading

rt82display encode input.gif output.qgif

List connected devices

rt82display list

Show device/protocol info

rt82display info

Example

A test GIF is included in the repository to verify your setup works:

rt82display upload capture_test.gif

Example GIF