| Crates.io | mirajazz |
| lib.rs | mirajazz |
| version | 0.9.0 |
| created_at | 2025-04-21 19:47:59.361707+00 |
| updated_at | 2025-09-11 17:22:20.039179+00 |
| description | A library for interfacing with Mirabox and Ajazz stream controller devices |
| homepage | https://github.com/4ndv/mirajazz |
| repository | https://github.com/4ndv/mirajazz.git |
| max_upload_size | |
| id | 1643141 |
| size | 88,351 |
A Rust crate for interfacing with Mirabox and Ajazz "stream controller" devices
This is a hardfork of elgato-streamdeck crate, with notable differences:
v0.3.0The idea is to have a common lowlevel library serving as a backbone for device-specific OpenDeck plugins
These versions are our own internal concept, and mostly used for telling the library which exact set of quirks to apply for specific protocol variations.
Mirabox (the manufacturer behind these devices) has no plans to provide any specifics on protocol implementation, as stated by their staff member on official Discord, so we have to improvise and reverse engineer.
Do not use this directly. This is a fallback for devices with very old firmware and will be set internally if needed, use version 1
1.0.0.0ACK and OK in input reportExample devices: 293S rebranded as Soomfon
355499441494HidDeviceInfo, always use serial_number function of connected DeviceExample devices: Mirabox 293S (not 293SV3) with latest firmware, Ajazz AKP153 and regional variations
Example devices: Mirabox N3, Ajazz AKP03 (and variations, with PID starting with 1, not 3)
Example devices: Mirabox N3 rev. 2 (PID 1003), Mirabox N4, Akp03 rev. 2 (PIDs starting with 3)
355499441494There is couple OpenDeck plugins made by me, which can be used as a starting point for making your own:
If you plan to fork any of them, here's the checklist of things you'll need to do
For using on Linux, you are required to bring your own udev rules for all the VID/PID pairs you want to support. Without the udev rules, you wouldn't be able to connect to the devices from the userspace.
Here's an example for Ajazz AKP03R (VID 0x0300, PID 0x1003):
SUBSYSTEM=="usb", ATTR{idVendor}=="0300", ATTR{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="0300", ATTR{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
Commit history of the original library can be found here