SHEET 16 · Systems & Hardware
open-apollo
Ten pull requests to an open-source Linux driver for Universal Audio Apollo interfaces, ten merged — the Apollo Twin USB brought up from a USBPcap capture of the Windows driver, two decoder bugs and a missing DSP handshake found on the way

10/10 PRs merged+1,093 lines0 replay errors#2 contributor rank2026liveSystems & Hardware
About
open-apollo is a GPL-2.0 driver and toolset for Universal Audio's Apollo interfaces on Linux. The Twin USB model was listed as "needs testing" with no channel counts. I captured the Windows driver initialising mine with USBPcap, then found that the project's decoder read the 4-byte bulk header as a 16-bit word count where it is four bytes: 2,833 of 6,823 packets parsed consistently before, 6,823 after. A second bug stepped entries at fixed sizes; the low 16 bits are a length in dwords, and the corrected walk turned 81,700 garbage entries into 40,832 clean ones.
The init turned out to be bulk and 45 control transfers. Without one arm/commit pair the DSP acknowledges all 1,433 plugin-chain packets and does nothing, which the project had attributed to copy protection. I shipped extraction and replay tools that reproduce the init from a capture — 940 responses, 0 errors — and deliberately never ship firmware or DSP bytes. Ten single-purpose, evidence-first pull requests were merged in four days; second contributor by commits after the maintainer.
Key features
- 01#70 · bulk header parsed as four bytes: 6,823/6,823 packets consistent, the 3,990 failures were exactly the flags = 0x10 packets
- 02#76 · entries walked by dword count: 40,832 clean entries, every one 2–28 words, on a 50,036-packet mixer sweep
- 03#77 · pcap-init-extract and init-replay: byte-identical to two hand-built reference sequences; hardware replay 940 responses, 0 errors, 118.7 s
- 04#78 · the control half of the init documented: registers for sample rate, plugin chain, coefficient writes and routing
- 05#71 · nine USB tools made model-agnostic across Solo, Twin and Twin X product ids
- 06#73 #74 #75 · udev rules that compose, exact kernel-source lookup, fail-closed dependency re-check after install
- 07#79 · a Windows USBPcap capture guide; #72 · corrected channel counts and the 48 kHz quirk
- 08Cold-DSP finding on an open issue: replay at 5 s after enumeration fails, at 30 s works, both identical at the USB layer
- 09Local PipeWire integration: quantum 512 after measuring a silent 12% cycle drop at 1024; mono mic node; a relink watchdog
Gallery


Nearby
SHEET 14 · Systems & Hardware

Hyprland patches
Five patches, 292 lines, to a 7,700-commit C++ compositor: BT.1886 gamma for an HDR TV, colour-exact screenshots, a SIGBUS guard, a screencopy leak fix — and the shim stack that keeps them alive across every upgrade
2026local5 patches+292 lines
SHEET 02 · Systems & Hardware

Boiler Plant Telemetry
Boiler-plant telemetry over the Ayla IoT cloud — 390 parameters read from two binary properties, 216 writable — and a software outdoor-reset curve on two 2 MMBtu/h condensing boilers
2026local390 parameters216 writable
SHEET 03 · Systems & Hardware

WeatherNext Collector
Hourly Google DeepMind WeatherNext 3 ensemble runs for one grid cell at 10,700 ft — every run kept, verified against the on-site station once the hours pass, served to the public weather page and to the boiler reset curve
2026live22 s run fetch11 × 6 variables