Releases: guysoft/rt82display
v0.6.1
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 aDeviceBusyerror 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
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
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"inpyproject.tomlwithdynamic = ["version"]+ hatch-vcs __version__is now auto-generated into_version.pyat build time- Removed duplicate version string from
cli.py - CI workflow now checks out with
fetch-depth: 0so git tags are available during build
Intial release
RT82 Display CLI
Upload GIFs to your Epomaker RT82 keyboard's LCD screen from the command line.
Installation
Install from PyPI
pip install rt82displayThis 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 triggerThen 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.shRequirements: 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.gifUpload a pre-encoded QGIF file
rt82display upload my_animation.qgifEncode a GIF without uploading
rt82display encode input.gif output.qgifList connected devices
rt82display listShow device/protocol info
rt82display infoExample
A test GIF is included in the repository to verify your setup works:
rt82display upload capture_test.gif