Stoatworks Labs

companion-play

An NDI decoder turned into a Companion box

In developmentv0.1.0FirmwareShell
companion-play — An NDI decoder turned into a Companion box
The released v0.1.0 image booted under QEMU aarch64, not on a PLAY: Companion's admin UI on the appliance's own HDMI output, in Chromium under openbox with its tab strip, and the offline module bundle preloaded with no internet.

What it does

A BirdDog PLAY is a small, cheap, fanless ARM box with HDMI out, USB, gigabit ethernet and 2 GB of memory, which is also a fair description of what you'd want a Bitfocus Companion server to run on. companion-play replaces the decoder's operating system with one that boots straight into Companion: the server, its admin interface on the unit's own HDMI output with a keyboard and mouse, and Stream Deck-class surfaces on the USB port.

It's a replacement, so the unit stops being an NDI decoder while it's running this, and comes back when it's flashed to stock. What it won't do is put the way back at risk: only the boot and root partitions get written, so the vendor's recovery partition and the chip's own recovery mode both survive untouched.

The whole module library is in the image, all 808 of them, so a unit works offline from first boot instead of needing the internet before it can do anything. Companion's own configuration lives on the partition that doesn't get overwritten, so a reflash is an upgrade that keeps the operator's setup, not a reset.

  • Boots into a Companion server with the admin UI on HDMI
  • USB surfaces — keyboard, mouse, touchscreen and Stream Deck-class panels, all through one USB-A port, so a self-powered hub is required
  • 808 modules in the image, so it works with no network on first boot
  • Configuration on a separate partition, so reflashing upgrades without losing the setup
  • Boot and root partitions only — both recovery paths survive
  • Every bundled module's licence checked at build time; the build fails on one that does not declare a licence

Where it stands

Tagged v0.1.0 and marked an early beta, and the image is there to download, but nothing has run on PLAY hardware yet. What's been proven is the software: on the same processor architecture in a virtual machine, Companion starts, enumerates the whole bundle (811 modules in the run that proved it, 808 after the licence filter that decides what ships), serves its interface and starts its USB surface handlers. I haven't measured how many connections 2 GB of memory holds at once, and that's the number that decides what the box is good for. Published images carry a documented default password.