summaryrefslogtreecommitdiff
path: root/plugins/hardware
diff options
context:
space:
mode:
authorinfo@mode42.com <info@mode42.com>2026-08-07 18:25:13 +0000
committerinfo@mode42.com <info@mode42.com>2026-08-07 18:25:13 +0000
commit04d965d67a7264a1c7c211494aebda1953df7603 (patch)
tree0ebd700a6e219f84a26a656f4bee8778bc75da7b /plugins/hardware
Initial push
Diffstat (limited to 'plugins/hardware')
-rw-r--r--plugins/hardware/acoustic-bench/plugin.yaml21
-rw-r--r--plugins/hardware/modems/README.md27
-rw-r--r--plugins/hardware/modems/plugin.yaml27
-rw-r--r--plugins/hardware/soft-modems/README.md23
-rw-r--r--plugins/hardware/soft-modems/plugin.yaml48
-rw-r--r--plugins/hardware/terminal/plugin.yaml4
-rw-r--r--plugins/hardware/tncs/README.md25
-rw-r--r--plugins/hardware/tncs/plugin.yaml28
8 files changed, 203 insertions, 0 deletions
diff --git a/plugins/hardware/acoustic-bench/plugin.yaml b/plugins/hardware/acoustic-bench/plugin.yaml
new file mode 100644
index 0000000..7df7a28
--- /dev/null
+++ b/plugins/hardware/acoustic-bench/plugin.yaml
@@ -0,0 +1,21 @@
+id: acoustic-bench
+type: hardware
+parent_stack: MainAX25-Stack (MAX25-Stack)
+label: Acoustic Bench
+description: |
+ Host-side acoustic signal bench — dummy device, sniffer, DSP loopback.
+ Kernel ALSA only. For CRDOP / MAX25-SoftModem development and test.
+
+stack_path: stacks/crdop
+status: active
+
+devices:
+ - audio-dummy
+
+tools:
+ sniffer: stacks/crdop/tools/max25-signal-sniffer
+ dummy_daemon: stacks/crdop/tools/audio-dummyd
+
+docs:
+ - docs/CRDOP.md
+ - stacks/crdop/docs/AUDIO-ARCHITECTURE.md
diff --git a/plugins/hardware/modems/README.md b/plugins/hardware/modems/README.md
new file mode 100644
index 0000000..9988df9
--- /dev/null
+++ b/plugins/hardware/modems/README.md
@@ -0,0 +1,27 @@
+# Hardware: Modems
+
+BayCom/based SER12 — userspace **bcpr** (`stacks/max25-bcpr/`). USB/async KISS — `plugins/devices/baycom-kiss/`.
+
+Kernel `baycom-pr` / `baycom_ser_fdx` removed from this tree (2026-07-18).
+
+## HyBBX
+
+Optional BayCom/based path is via MAX25 (`bcpr` → KISS). See [docs/BAYCOM.md](../../docs/BAYCOM.md) and [docs/HYBBX.md](../../docs/HYBBX.md).
+
+| Path | Role |
+|------|------|
+| `stacks/max25-bcpr/` | SER12 userspace (PC-COM class) |
+| `baycom-kiss` | USB/async KISS TNC firmware |
+
+## Quick start
+
+```bash
+cmake -S . -B build-max25-bcpr -DMAX25_BUILD_MAX25_BCPR=ON
+cmake --build build-max25-bcpr
+# then: docs/BAYCOM.md (max25-bcpr-ctl / max25d [features] max25_bcpr=yes)
+```
+
+## Docs
+
+- [docs/BAYCOM.md](../../docs/BAYCOM.md)
+- [stacks/max25-bcpr/README.md](../../stacks/max25-bcpr/README.md)
diff --git a/plugins/hardware/modems/plugin.yaml b/plugins/hardware/modems/plugin.yaml
new file mode 100644
index 0000000..ad0a194
--- /dev/null
+++ b/plugins/hardware/modems/plugin.yaml
@@ -0,0 +1,27 @@
+id: modems
+type: hardware
+parent_stack: MainAX25-Stack (MAX25-Stack)
+label: Modems
+description: BayCom/based SER12 via max25-bcpr (userspace; not usable by default); USB/async KISS via baycom-kiss
+
+stack_path: stacks/max25-bcpr
+hybbx_plugin: baycom
+
+backends:
+ - max25-bcpr-ser12
+ - kiss-serial
+
+build:
+ cmake_option: MAX25_BUILD_MAX25_BCPR
+ targets: [max25-bcprd, max25-bcpr-ctl]
+
+ctl: stacks/max25-bcpr/tools/max25-bcpr-ctl
+
+runtime:
+ state_dir: /tmp/max25-bcpr
+ config: /etc/max25/max25-bcpr.ini
+ kiss_default: /tmp/max25-bcpr/kiss-bc0
+
+devices:
+ - baycom-kiss
+# SER12 product devices are max25e0 / max25e0:bc1 via max25d [devices], not kernel plugins.
diff --git a/plugins/hardware/soft-modems/README.md b/plugins/hardware/soft-modems/README.md
new file mode 100644
index 0000000..d3cdd53
--- /dev/null
+++ b/plugins/hardware/soft-modems/README.md
@@ -0,0 +1,23 @@
+# Hardware: Soft Modems
+
+Sound-card software modems — **MAX25-SoftModem (CRDOP)** is the in-house standard. **CRDOP** = stack acronym for **MAX25-SoftModem** (device id `soft-crdop`).
+
+| Device | Stack | HyBBX plugin | Protocol | v1 |
+|--------|-------|--------------|----------|-----|
+| `soft-crdop` | `stacks/crdop` | `crdop` | MAX25-native M25/KISS host | **active** |
+
+## CRDOP (standard)
+
+**CRDOP (MAX25-SoftModem)** — MAX25-Stack standard (`stacks/crdop/`). Built by default (`MAX25_BUILD_CRDOP=ON`). Native M25 host protocol on TCP :8515/:8516.
+
+**ARDOP-plugin** — optional separate registry for third-party ARDOP host software — see [plugins/external/ardop/README.md](../../external/ardop/README.md). Not coupled to CRDOP.
+
+## Start (operator)
+
+```bash
+./scripts/max25-ctl start --hardware soft-modems --device soft-crdop
+```
+
+Then attach HyBBX with `share/hybbx/crdop-host.ini.example`.
+
+CRDOP is acoustically AX.25-compatible at 1200 baud+; host path uses native MAX25 SoftModem TCP (M25/KISS).
diff --git a/plugins/hardware/soft-modems/plugin.yaml b/plugins/hardware/soft-modems/plugin.yaml
new file mode 100644
index 0000000..535a850
--- /dev/null
+++ b/plugins/hardware/soft-modems/plugin.yaml
@@ -0,0 +1,48 @@
+id: soft-modems
+type: hardware
+parent_stack: MainAX25-Stack (MAX25-Stack)
+label: Soft Modems (MAX25-SoftModem / CRDOP)
+description: |
+ MAX25-SoftModem (CRDOP) — in-house sound-card modem, MAX25-Stack STANDARD.
+ Development and test phase. 1200 baud+, half/full duplex.
+ Acoustically AX.25/Packet-Radio compatible with TNCs and BayCom modems.
+ Sound card IN/OUT + radio — use like a hardware modem.
+ Good sound card required (tone accuracy; higher baud = stricter audio).
+ Built and installed unless MAX25_BUILD_CRDOP=OFF.
+
+stack_path: stacks/crdop
+hybbx_plugin: crdop
+hybbx_doc: ../../docs/HYBBX.md#crdop
+
+status: active
+phase: development_and_testing
+shipped_default: true
+
+protocols:
+ - max25-softmodem
+ - ax25-afsk-acoustic
+
+requirements:
+ sound_card: required
+ baud_primary: 1200
+ baud_max: 19200
+ duplex: [half, full]
+ coupling: [line_level, acoustic]
+
+build:
+ cmake_option: MAX25_BUILD_CRDOP
+ default: ON
+
+ctl:
+ build: stacks/crdop/scripts/build-crdop.sh
+ start: stacks/crdop/scripts/crdopc
+ install: stacks/crdop/scripts/install-crdop.sh
+
+devices:
+ - soft-crdop
+
+docs:
+ - stacks/crdop/docs/INDEX.md
+ - stacks/crdop/README.md
+ - stacks/crdop/docs/SOFTMODEM.md
+ - stacks/crdop/ROADMAP.md
diff --git a/plugins/hardware/terminal/plugin.yaml b/plugins/hardware/terminal/plugin.yaml
new file mode 100644
index 0000000..9b9de36
--- /dev/null
+++ b/plugins/hardware/terminal/plugin.yaml
@@ -0,0 +1,4 @@
+id: terminal
+label: MAX25 Terminal clients
+stack: stacks/terminal
+description: Remote operator UI — no local hardware; connects to Linux max25d
diff --git a/plugins/hardware/tncs/README.md b/plugins/hardware/tncs/README.md
new file mode 100644
index 0000000..b2c8fef
--- /dev/null
+++ b/plugins/hardware/tncs/README.md
@@ -0,0 +1,25 @@
+# Hardware: TNCs
+
+Serial and USB Terminal Node Controllers. Merged from **TNCs-Stack** (`stacks/tncs/`).
+
+## HyBBX
+
+`packet_radio` plugin with `tnc=` profile per device.
+
+| Device | `tnc=` | Serial |
+|--------|--------|--------|
+| TNC2C | `tnc2c` | 19200 8N1, RTS/DTR |
+| PK-TNC2 | `tnc2` | 9600/2400 8N1 (planned) |
+
+## Build & test
+
+```bash
+./scripts/build.sh
+./stacks/tncs/tnc2c-integration-test.sh # with hardware
+```
+
+## Docs
+
+- [stacks/tncs/README.md](../../stacks/tncs/README.md)
+- [stacks/tncs/docs/TNC2C-OPERATIONS.md](../../stacks/tncs/docs/TNC2C-OPERATIONS.md)
+- [stacks/tncs/docs/TNC2C-REFERENCE.md](../../stacks/tncs/docs/TNC2C-REFERENCE.md)
diff --git a/plugins/hardware/tncs/plugin.yaml b/plugins/hardware/tncs/plugin.yaml
new file mode 100644
index 0000000..cbc95de
--- /dev/null
+++ b/plugins/hardware/tncs/plugin.yaml
@@ -0,0 +1,28 @@
+id: tncs
+type: hardware
+parent_stack: MainAX25-Stack (MAX25-Stack)
+label: TNCs
+description: Serial/USB TNC hardware group — async host protocols (KISS, hostmode, 6PACK)
+
+stack_path: stacks/tncs
+hybbx_plugin: packet_radio
+hybbx_doc: ../../docs/HYBBX.md#packet_radio
+
+protocols:
+ - kiss
+ - hostmode
+ - sixpack
+
+build:
+ makefile: stacks/tncs/Makefile
+ targets: [all, test, integration, health, boot-wait]
+
+ctl:
+ health: stacks/tncs/tnc2c-health.sh
+ boot_wait: stacks/tncs/tnc2c-boot-wait.sh
+ integration: stacks/tncs/tnc2c-integration-test.sh
+ listen: stacks/tncs/tnc2c-listen.sh
+
+devices:
+ - tnc2c
+ - pktnc2
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com