Hardware
Boards for jobs nobody makes a box for
Four open designs, and every one of them started on a gig: a DMX node that daisy-chains on one Cat5, a bridge that lets a control app you already own drive amplifiers it was never sold to talk to, a wireless-mic antenna pair sent down a single Cat cable, and an HDMI box that tells the source it's a display it isn't.
Where they've got to: all four are designed and routed. One of them, CANary, has been built, and board #1 is powered and running on a bench. Cuckoo's first boards are on order, and so is ANTeater's front-end test board. nanODE is ready to order as a prototype, and nothing's been ordered yet. Each board says what has and hasn't been run on real hardware, because I'd rather you heard it from me.
Or read a discipline in full: AudioVideoLightingRF & Wireless
Audio · IP and USB to CAN bus converter
CANary
Rev A built · board #1 powered, flashed and passing its self-test
An IP and USB to CAN bus converter for use with the d&b amplifier ecosystem. It puts amplifiers that only speak CAN onto the network, so the control software you already run can discover and drive them through hardware you can build yourself.
- Transparent bridgeNo interpretation and no extra protocol layer. The gateway is invisible to the control application, which is what it's for.
- Running on real hardwareBoard #1 came up on the first plug-in. Ethernet, the isolated CAN transceiver and the whole network protocol all answer on the bench.
- Galvanically isolatedThe CAN side sits across a 7 mm barrier on an ADM3053 with its own supply, so an amplifier rack and a laptop never share a ground through this box.
- Standard partsESP32-S3, W5500 Ethernet, ADM3053 isolated CAN. Nothing exotic, nothing unobtainable. 45 of the 50 BOM lines carry a part checked against live distributor stock, and the other five are the hand-soldered connectors.
- Bench test rigA self-test image the board runs on itself, a host-side acceptance script, and a written bring-up procedure with generated probe-point drawings.
Where it stands
Boards exist and one of them works. Board #1 enumerated over USB first time, passed its own self-test six for six, took a DHCP lease and answered a host-side acceptance run of nineteen network checks. The control application discovers it and lists it. On 26 September 2026 the USB network build met its first laptop: it now hands the laptop an address, serves its settings page, and passes the same nineteen checks down the cable. What that doesn't cover: the CAN side has only been run as a loopback through its own transceiver, never against a real amplifier bus; the bench sequence of rail and isolation-resistance measurements was skipped on this board; the indicator LEDs and the power-delivery status pin still need somebody to look at them; and the last link, the control application actually driving amplifiers through it, isn't finished. The 0.2.0 firmware only changes names and hasn't been on a board yet; the last build proven on one is 0.1.0's. One board from the batch has been touched. Rev B is where the fixes go.



- MCU
- ESP32-S3
- Network
- W5500 Ethernet
- Bus
- ADM3053 isolated CAN, 100 kbit/s
- Isolation
- 7 mm barrier, separate CAN-side supply
- Board
- 100 x 81 mm, 4-layer
- Assembly
- 76 placements, top side only
- Power
- USB-C PD
- Role
- IP and USB to CAN bus converter
- For
- The d&b amplifier ecosystem
- Firmware
- Flashed from a browser tab with the CANary Flasher
- Repo
- Public: stoatworks-labs/canary
Video · Inline HDMI EDID box
Cuckoo
Coming soon · Rev A boards on order, firmware written, never run
A small box that sits in an HDMI line and shows the source an EDID of your choosing, while the picture goes straight through on copper. It's named after the bird that lays its egg in another bird's nest: this one tells the source it's a display it isn't.
- Any EDID you likeThe source reads the EDID you picked, not whatever happens to be plugged in downstream. Force 1080p50 into a converter, pin a laptop to one mode, or keep its display layout when the projector goes off. With nothing plugged in downstream at all, it's a dummy plug, as long as it has USB-C power.
- The picture stays on copperThe four TMDS pairs run from one connector to the other as 100 Ω pairs and nothing else. An RP2354A answers EDID reads itself and forwards the rest of the DDC traffic, so HDMI 2.0 scrambling and HDCP still reach the display.
- HDCP, blocked on requestIn Block mode the box doesn't answer on the HDCP address, so the source finds no receiver and never starts encrypting. Nothing is ever decrypted: protected content refuses to play, as it would on any display without HDCP.
- The phone sets it up, the show doesn't need itAn ESP32-C3 serves a web page with eight EDID slots, the display's own EDID and a copy of the EDID Editor, all offline. The RP2354A keeps the slots in its own flash and carries on if the ESP32 falls over.
- Unplugged, it's a cableWith no power, two relays put the DDC lines, hot-plug and +5 V straight through, so the source reads the display's own EDID. The picture may change format, but it doesn't go black.
Where it stands
Nothing has been built yet. Rev A is routed and passes its design-rule checks, and the first boards are on order from PCBWay and JLCPCB. Most of the firmware is written, and none of it has run on anything. The DDC bridge on the RP2354A (EDID answered locally, everything else forwarded, HDCP Pass and Block, the dummy-plug stand-in, eight EDID slots in flash and the hot-plug modes) is compiled and passes its tests against a software model of the bus, which says nothing about how a real source or display will behave. There's also a bring-up image that checks each part of the board in turn, and a first ESP32 image with a Wi-Fi access point, a placeholder page and the link between the two chips, both compiled and never run. The web UI isn't written yet. Writing the bring-up image turned up three things to check on Rev A when it arrives, one of them a possible back-feed of +5 V from the DDC pull-ups with the relays off. The case has been checked against the board file in software and never printed.




- Role
- Inline HDMI EDID emulator
- Bridge
- RP2354A: DDC bridge, EDID slots, hot-plug
- Web UI
- ESP32-C3-MINI-1 over Wi-Fi
- Video path
- Passive: TMDS pairs on copper, 100 Ω differential
- Connectors
- HDMI Type A in and out, USB-C for power
- Board
- 60 x 38 mm, 4-layer
- Assembly
- 86 placements, both sides
- Case
- Printed base, lid and light pipe, snap-fit
- Firmware
- DDC bridge, bring-up and a first ESP32 image; compiled and simulated, never run; web UI not started
- Repo
- Private
Lighting · Art-Net / sACN to DMX512
nanODE
Ready to order as a prototype · nothing ordered or built yet
A PoE-powered, daisy-chainable Art-Net / sACN to 4x DMX512 node. One Cat5 in and one loop out, carrying power and data, so a run of nodes needs a single cable from the switch instead of one per box.
- 4 universes out5-pin XLR, from Art-Net 4 (including ArtSync) or sACN / E1.31.
- Real RDM discoveryRuns as a background task, so the web console never blocks on it.
- Daisy-chain built inInternal 3-port switch: Cat5 in, loop out, plus the ESP32 itself.
- Field-replaceable portsEvery external connector is a daughter-card. Smash an XLR on site, swap it without a soldering iron.
- Browser consoleOver WiFi or Ethernet: patch, address, and see RDM devices live.
Where it stands
Nothing has been ordered or built yet, but it's ready to order as a prototype. The main board and its three port cards are routed with no design-rule errors and nothing left unconnected, the fabrication packages have been regenerated from that copper, the order is written up, and every part JLCPCB would fit was in stock there when checked on 24 October 2026. Getting that far turned up two faults no rule check can see. All six status LEDs were wired backwards. And the ESP32's GPIO0 is both the strap that puts it into download mode and the input for the network switch's 50 MHz clock, which the switch started at power-up, so the board as drawn couldn't be flashed and might not even have booted. The ESP32 now holds the switch in reset from GPIO2 until the firmware is ready for it. Both are fixed on the board above. A few things are knowingly left for rev C: the Ethernet pairs aren't routed as pairs, which should still link over runs this short but leaves an EMC question for the first board to answer, and there's no programming header, so it's flashed through the module's edge pads. The firmware builds clean against real ESP-IDF 5.5 tooling, and the REST API and RDM discovery are verified against a mock node. It has never run on real silicon.




- MCU
- ESP32
- Network
- Internal 3-port switch, PoE
- Outputs
- 4 x DMX512 on 5-pin XLR
- Protocols
- Art-Net 4, sACN / E1.31, RDM
- Board
- 170 x 70 mm main board, 4-layer, plus six 2-layer port cards in three designs. Ready to order as a prototype
- Enclosure
- 3D-printed ASA, 300 x 82 x 54 mm, 330 mm over the mounting ears
- Repo
- Private
RF & wireless · UHF pair extender
ANTeater
Front-end test board on order · head and rack routed
A UHF pair extender: it sends a wireless-mic receive antenna pair down a single shielded Cat cable. Filtering, gain and line drivers at the antenna end; balun, slope equalisation and a matched step attenuator pair at the rack end. 470-698 MHz, A/B diversity preserved, one cable instead of two coax runs down the side of a stage.
- Diversity stays diversityEach antenna gets its own individually screened pair. With a single overall screen, pair-to-pair crosstalk at 500 MHz is 30-40 dB, which couples antenna A into B and destroys the independence the receiver's diversity logic depends on, and never tells you.
- Noise figure comes first0.97 dB system noise figure at any attenuator setting, because the step attenuator sits after the line driver rather than mid-chain. The same parts mid-chain give 11.8 dB.
- The preselector is split on purposeLow-loss filtering before the first LNA, where its 0.46 dB lands directly on noise figure; the lossy LTE traps after 20 dB of gain, where 3.3 dB costs a hundredth as much. Worth 2.8 dB of sensitivity for no extra parts.
- No AGC, everReceivers derive squelch thresholds and diversity decisions from absolute RF level. Gain is measured once at commissioning and then frozen. A running loop that holds a target level is a defect here, not a feature.
- Power gets its own pairWideband UHF transformers rate around 30 mA and the head needs roughly 200 mA, so the DC feed rides the one pair that's split at the connector, which makes it no use for signal anyway. Never parallel two pairs for one RF signal: cable delay skew puts comb nulls inside the passband.
Where it stands
Three boards, and the one being built first isn't a product. The front-end characterisation board is a single-channel test board that exists to decide whether either production board works, because it can be measured with a VNA and one receiver. It's routed and on order from PCBWay. The head and rack units are routed too and pass their design-rule checks, but both wait on what the test board measures: the LTE trap values go into the head, and the rack's slope equaliser is still an empty space on the board until somebody knows how much tilt there is to correct. Nothing has been built yet. Every figure quoted above is a budget computed from datasheet numbers, not a measurement, and the first board is there to find out which of them are true.



- Band
- 470-698 MHz, A/B diversity
- Cable
- One S/FTP Cat run: 2 RF pairs, 1 DC, 1 RS-485
- Front end
- Split preselector either side of the first LNA
- Gain block
- QPL9547 LNA, TCM2-33WX+ balun
- Level control
- PE4312 step attenuator, both channels one control word
- Boards
- Head, rack, and a front-end characterisation board
- Stack-up
- 4-layer, impedance controlled, 50 ohm microstrip
- Repo
- Private
Nothing under that heading yet. .
Printed guards for Blackmagic and Decimator converters, so a tugged lead pulls on the case instead of the port. Some haven't been fitted to a real converter yet. Fitting instructions for each.
More hardware
There's a queue behind these
A touring control surface for the desk. A custom surface for the dMix 128. An in-house PCB assembly line, so these stop being quotes from someone else. They're all at various stages of not being finished, and they'll turn up here once they're close enough to show.