Skip to content

ramtic-lab/ajazz-pi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ajazz AKP153E on Raspberry Pi 5 — TV Remote (and more)

A working open-source driver and example application for the Ajazz AKP153E (PID 0x0300:0x3010) on Linux — specifically targeting Raspberry Pi 5, but should work on any Linux machine with libusb.

This was built to bridge an awkward gap: the AKP153E is a great-looking 15-key streamdeck-style controller with per-key LCDs, but it has no Linux software, no public protocol documentation, and a firmware quirk that prevents it from transmitting button events on Linux unless properly initialized.

This repo solves that. Out of the box you get:

  • A Python driver that talks to the AKP153E over USB via libusb / pyusb
  • The captured init handshake (recorded from the official Windows app via Wireshark + USBPcap) packaged as a binary blob the script replays
  • Custom per-key icons from any image file (PNG/JPG/WebP/etc.) — script handles resizing, rotation, and centering
  • Full TV-remote example: GPIO IR transmitter integration with channel-switching macros, power+input combo, etc.
  • Systemd service + udev rules so the service only runs when the device is plugged in (no crash-looping, no manual start)

What this is NOT

  • It's not a stream-deck protocol implementation. The init replay is byte-for-byte from one specific Windows app session (mine). The icons embedded in the replay are mine — you'll be replacing them with your own, but the act of replaying the init is what wakes the device up.
  • It's not a generic "Ajazz everything" library. Only AKP153E rev 0x0002 (PID 0x3010) is verified working. Other Ajazz models likely use similar protocols but haven't been tested.

Hardware

  • Ajazz AKP153E — verify yours has VID 0x0300, PID 0x3010. Check with lsusb after plugging in.
  • Raspberry Pi 5 (or any Linux machine) — should also work on Pi 4, Pi Zero 2 W, x86 PCs, etc.
  • For the TV remote example: a GPIO IR transmitter (V1221 or similar) on GPIO 27.

Getting started

See docs/SETUP.md for a step-by-step guide from "blank Pi" to "working remote."

For just the AKP153E driver without the TV/IR parts, see docs/MINIMAL.md.

If you want to understand how this works under the hood (or adapt it for another Ajazz model), see docs/PROTOCOL.md.

Important: the init replay file

The repo includes ajazz_replay_essential.bin (~12 MB) — this is the captured init sequence the device requires. It contains my custom icons baked into the replay. When you run the script, it will:

  1. Replay the init (your device shows my icons briefly)
  2. Apply your custom icons from icons/ (overwriting mine)

So for normal use you don't need to do anything — just put your icons in the icons/ folder. If for some reason you want to recapture the init from your own Windows session, see docs/RECAPTURE.md.

Credits

Inspired by reverse engineering work by @Uriziel01/Ajazz-AKP153-reverse-engineering and the mirajazz Rust library.

License

MIT — see LICENSE.

About

Linux/Raspberry Pi driver for the Ajazz AKP153E streamdeck. It includes TV remote example with GPIO IR control

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages