Skip to content

Plugin development

Radio modules are JSON packages, not npm libraries with executable plugins. HamBench never loads TypeScript from a module.

Follow Create a radio module for layout, config fields, and the memory-map codec.

What to ship

PathRole
configs/*.jsonOne radio: protocol, serial, memory, cat, schemas, memory-map $ref
src/shared/schemas/*.jsonChannel and settings schemas ($ref from the config)
src/shared/memory-maps/*.jsonMemory-map DSL (codec.type: "memoryMap")

Do not add src/index.ts, codec-factory.ts, or *.ts codecs. Encode/decode is MemoryMapRadioCodec in @springfield/ham-radio-utils.

Naming

  • Official: @springfield/radio-module-{manufacturer}
  • Third-party: radio-module-{manufacturer} or @scope/radio-module-{manufacturer}
  • springfield.pluginType must be "radio-module"

Publish

JSON zip on GitHub Releases (yarn pack:release), then update radio-module-catalog. See Publish a module.