Skip to content

Add SP616E serial LED controller support #1557

Description

@MysticCodolic

Detailed functionality path

The SP616E is a popular, low-cost serial LED controller commonly sold on AliExpress and
used with addressable WS2812B/WS2815 LED strips. It connects via USB (typically
/dev/ttyUSB0 or /dev/ttyACM0) and accepts a simple serial protocol: raw RGB pixel data
followed by a 0xFF terminator byte, at 115200 baud. No header, checksum, or handshake.
User flow:

  1. User connects SP616E controller to their HyperHDR host via USB
  2. In HyperHDR web UI → LED Hardware → LED Controller, user selects "sp616e" from the
    device type dropdown (under Serial group)
  3. User configures:
    • Serial port (e.g. /dev/ttyUSB0, default: ttyACM0)
    • Baud rate (default: 115200)
    • Delay after connect (default: 250ms)
  4. HyperHDR sends RGB frames to the controller — each frame is (_ledCount × 3) RGB
    bytes followed by a single 0xFF terminator byte
  5. The SP616E drives the connected LED strip in real-time
    Protocol details:
  • Frame format: [R0 G0 B0] [R1 G1 B1] ... [Rn Gn Bn] [0xFF]
  • No header, no length field, no checksum
  • Frame size: (LED count × 3) + 1 bytes
  • Default baud rate: 115200
  • The 0xFF byte acts as the frame terminator/sync marker
    I have a working implementation ready as a PR that follows the exact same pattern as the
    existing TPM2 and SEDU serial drivers (ProviderSerial base class, auto-registration,
    JSON schema). The implementation is 4 files, +85 lines total.

Justification

  1. Affordable hardware access: The SP616E is one of the cheapest USB LED controllers
    available (~$5-10 on AliExpress). Many users already own one from previous AmbiBox
    setups and would benefit from using it with HyperHDR's superior HDR tone mapping
    and performance.
  2. Simple protocol, minimal maintenance: The SP616E protocol is trivial (raw RGB +
    terminator) — the entire driver is ~40 lines of code following the established
    ProviderSerial pattern. It requires no special handshake, firmware flashing, or
    complex state management, so maintenance burden is near zero.
  3. Migration path from AmbiBox: Many users searching for SP616E + HyperHDR are AmbiBox
    users wanting to upgrade. Native support would eliminate the current answer of
    "not supported, buy different hardware" and provide a smooth migration path.
  4. Consistent with existing serial drivers: HyperHDR already supports TPM2, SEDU,
    Adalight, Karate, and other simple serial protocols. The SP616E fits naturally
    into this family with identical architecture and code patterns.
  5. No breaking changes: This is purely additive — a new driver class, a JSON schema,
    and a resource file entry. Zero impact on existing drivers or functionality.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions