Add support for StreamDeck Plus XL and update product IDs#170
Open
mdlopezme wants to merge 2 commits intoabcminiuser:masterfrom
Open
Add support for StreamDeck Plus XL and update product IDs#170mdlopezme wants to merge 2 commits intoabcminiuser:masterfrom
mdlopezme wants to merge 2 commits intoabcminiuser:masterfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements full device driver support for the Elgato Stream Deck + XL (USB PID
0x00c6). The device was reverse-engineered via HID probing on the physical hardware and all functionality has been verified end-to-end.Hardware Specs (discovered via reverse engineering)
0x00c6Key technical findings
KEY_ROTATION = 90(PIL rotates 90 CCW before sending). Touchscreen images are rotated manually inset_touchscreen_imagewithexpand=Truebecause the sharedPILHelper._to_native_formatusesrotate()withoutexpand=True, which crops non-square images.(x, y, w, h)are swapped to(y, x, h, w)in the 0x0c header.Changes
Added
src/StreamDeck/Devices/StreamDeckPlusXL.py— Full driver implementation. Includes all abstract method implementations, HID event parsing, image upload, and touchscreen rotation handling.Test Results
Hardware validation was performed on a physical Stream Deck + XL with 20 interactive checks — all passed.
How to verify with hardware
If you have a Stream Deck + XL, copy the script below and run it. It walks through 20 checks covering keys, dials, touchscreen, brightness, and callbacks — you confirm each step by observing the device.
Hardware validation script — click to expand, save, and run
Test coverage breakdown