Developer docs
HamBench is a set of TypeScript packages plus JSON radio modules. The desktop app interprets those modules; you do not write a per-radio driver in TypeScript.
| Package | Role |
|---|---|
@springfield/ham-radio-api | Types and schemas (protocol DSL, memory map, serial config) |
@springfield/ham-radio-utils | Memory-map codec, band plan, license mapping, validation |
@springfield/ham-radio-driver | Serial driver that executes protocol steps |
@springfield/ham-radio-registry | Load and validate radio configs; official catalog types |
ham-radio-ui | HamBench desktop app |
ham-radio-sniffer | Headless serial bridge |
radio-module-baofeng / radio-module-kenwood | JSON radio modules |
Official modules are JSON zips on GitHub Releases, listed in radio-module-catalog. They are not published to npm.
Start here
typescript
import { RadioDriver } from '@springfield/ham-radio-driver';
const driver = new RadioDriver(radioConfig, logger);
const memory = await driver.readRadio('/dev/ttyUSB0', progressIndicator);