What
Native Elgato StreamDeck integration via HIDAPI. Button presses mapped to radio actions, rotary dials mapped to tuning/gain controls, and live radio status rendered on LCD key images.
Supported Devices
| Device |
PID |
Keys |
Dials |
Touchscreen |
| Stream Deck + XL |
0x00c6 |
36 (9×4) |
6 |
1200×100 |
| Stream Deck + |
0x0084 |
8 (4×2) |
4 |
800×100 |
| Stream Deck XL |
0x006c |
32 (8×4) |
0 |
None |
| Stream Deck MK2 |
0x0080 |
15 (5×3) |
0 |
None |
| Stream Deck Mini |
0x0063 |
6 (3×2) |
0 |
None |
Features
Key images (live radio status)
- Frequency display, mode indicator, S-meter readout
- TX/RX state (red/green), band buttons
- SWR/power gauges, VFO A/B indicators
- Dark theme matching AetherSDR's UI
Button mapping
- 36+ keys mappable to radio actions (MOX, TUNE, band change, mode switch, etc.)
- Same action dispatch as FlexControl/MIDI (50+ parameters)
- Configurable profiles
Dial mapping
- VFO tuning, AF gain, RF power, squelch, RIT/XIT
- Same coalesce pattern as FlexControl (20ms batching)
Touchscreen strip
- Mini S-meter bar, power/SWR display, or spectrum preview
Architecture
StreamDeckManager on ExtControllers thread (same as HidEncoderManager)
- Uses HIDAPI (already integrated via HAVE_HIDAPI)
- Key image rendering via QPainter → JPEG → HID write
- State change signals from RadioModel/SliceModel trigger image updates
- Configuration UI in Radio Setup → Serial tab
Prior Art
Reference
- Protocol: same HID reports as python-elgato-streamdeck library
- Key images: 112×112 JPEG, 90° rotation for portrait LCD
- Touchscreen: 1200×100 JPEG with coordinate swap
- Brightness: feature report [0x03, 0x08, percent]
What
Native Elgato StreamDeck integration via HIDAPI. Button presses mapped to radio actions, rotary dials mapped to tuning/gain controls, and live radio status rendered on LCD key images.
Supported Devices
Features
Key images (live radio status)
Button mapping
Dial mapping
Touchscreen strip
Architecture
StreamDeckManageron ExtControllers thread (same as HidEncoderManager)Prior Art
~/build/sc-python-elgato-streamdeckReference