← All projects

Ulanzi D100H — hardware front panel for AetherSDR over TCI

Active

A seven-key Bluetooth LE macro dial turned into a physical front panel for AetherSDR, driven over its TCI WebSocket. The knob tunes the transmit slice — snapping to the step grid, so an off-grid VFO from a band stack or a panadapter click lands back on a boundary rather than carrying its offset all session — and a press flips between fast and slow rates.

The keys are split, PTT, ATU tune, mode cycle, mute and band up/down, with band stacking that remembers frequency and mode per band. Split parks the TX slice 1 kHz up on CW and 5 kHz on SSB, and mute masters every open receiver rather than just one.

Runs on Nigel Fenton G0JKN's AetherSDR Controller plugin for Ulanzi Studio, with local patches carried on top and a bundle script that rebuilds the whole thing — patched plugin, dependencies and the operator profile — for a second machine. Doubles as the plugin's first-light hardware test. The plugin shipped as a pre-release scaffold that had never been run against a device, and putting it on a radio found five defects — reported upstream as issue #3 and fixed in PR #4, both now closed with the fixes merged upstream: property-inspector settings that had never once persisted, a mode cycle pinned to its first entry by a case-sensitive comparison, and a TUNE button that could start an ATU cycle but never stop one, while keying the transmitter. Every fix verified on the air before submission — G0JKN has no D100H, so the hardware evidence behind the merge is from this station.

The bundle now installs itself: one script on the target machine quits Studio, copies the plugin and profile into place and then verifies the result — every action the manifest declares is actually handled by the code, the WebSocket dependency is present, the radio's TCI server is reachable. Publishing the repo meant meeting Apache-2.0 first, since that bundle redistributes G0JKN's plugin in modified form: the licence, a NOTICE and per-file modification notices now travel with every copy handed to another machine. A PowerShell port of the same toolchain ships alongside it — Ulanzi Studio and AetherSDR both have Windows builds, and the plugin itself is portable JavaScript — though it has been verified only as far as a Mac allows and has never been run on Windows.

Plugin by Nigel Fenton G0JKN — upstream at nigelfenton/aethersdr-ulanzi-plugin.

View repo on GitHub
macOSJavaScriptNode.jsUlanzi StudioTCIAetherSDRBluetooth LEWebSocket
← All projects