Skip to content

Repository files navigation

companion-surface-ulanzi-stream-controller

Tip

If this plugin is useful to you, you can buy me a coffee at ko-fi.com/jcalado. Support helps keep the project maintained and encourages future work (more surfaces, bug fixes, features).

Companion surface plugin for the Ulanzi Stream Controller D200 / D200X: 13–14 physical buttons on a 5×3 grid plus a status window, 196×196 px icons.

Built against @companion-surface/base. Wire protocol reverse-engineered with help from redphx/strmdck and USBPcap captures of Ulanzi Studio.

Features

  • 13 configurable buttons, each with a Companion-rendered icon
  • Brightness control from Companion
  • Button press/release events
  • Small-window status display with seven modes (analog dial clock, four digital clock variants (time; time + weekday; time + date; date + time + weekday), system stats (CPU / RAM), or a custom background image), selectable per-surface via the ⚙ Config panel. Digital modes honour a 12/24-hour checkbox. Background images are loaded from a local file path (PNG/JPEG), automatically resized and center-cropped to 458×196.

Quickstart

Requires Companion 4.3.0+ and Node 22.

yarn install
yarn build

Then register the build directory with Companion as a developer module and enable it under Modules → Surfaces. Windows works out of the box; Linux needs a udev rule and a USB 2.0 hub.

See SETUP.md for the full walkthrough, platform notes, firmware quirks, and troubleshooting.

Development

yarn dev       # tsc --watch
yarn build     # → dist/
yarn package   # full package for Companion

Not yet implemented

  • Keyboard emulation on interface 1 (intentionally left to usbhid)

License

MIT.

Releases

Packages

Contributors

Languages