summaryrefslogtreecommitdiff
path: root/plugins/betriebsform
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/betriebsform
Initial push
Diffstat (limited to 'plugins/betriebsform')
-rw-r--r--plugins/betriebsform/hybbx-host/README.md22
-rw-r--r--plugins/betriebsform/hybbx-host/plugin.yaml27
-rw-r--r--plugins/betriebsform/service/README.md19
-rw-r--r--plugins/betriebsform/service/plugin.yaml27
-rw-r--r--plugins/betriebsform/standalone/README.md22
-rw-r--r--plugins/betriebsform/standalone/plugin.yaml24
6 files changed, 141 insertions, 0 deletions
diff --git a/plugins/betriebsform/hybbx-host/README.md b/plugins/betriebsform/hybbx-host/README.md
new file mode 100644
index 0000000..21affb5
--- /dev/null
+++ b/plugins/betriebsform/hybbx-host/README.md
@@ -0,0 +1,22 @@
+# Operating mode: HyBBX Host
+
+Secondary RF host on a HyBBX **Secondary** node — or **standalone Main** cohost when `[instance] standalone=yes` and max25d `mode=hybbx-cohost`. MAX25 prepares hardware; HyBBX bridges AX.25 to Main over HBX (Secondary) or serves users locally (standalone Main).
+
+## Workflow
+
+1. MAX25 device prep (boot-wait, `max25-bcpr-ctl start`, or `crdopc`)
+2. max25d releases KISS PTY (`/tmp/max25-bcpr/kiss-bc0` for BayCom/based)
+3. Merge `share/hybbx/*-host.ini.example` into `hybbx.ini`
+4. Start HyBBX (Secondary or standalone Main)
+
+## Per device
+
+| Device | MAX25 prep | HyBBX plugin |
+|--------|------------|--------------|
+| TNC2C | `tnc2c-boot-wait.sh` | `packet_radio` |
+| BayCom/based SER12 | `max25-bcpr-ctl start` / max25d `max25_bcpr=yes` | `baycom` |
+| CRDOP | `crdopc` running | `crdop` |
+
+**Co-host Main:** dual TNC + PC-COM on one host — max25d `mode=hybbx-cohost`, HyBBX `[networks] baycom=yes`. See [docs/BAYCOM.md](../../docs/BAYCOM.md).
+
+Contract: [docs/HYBBX.md](../../docs/HYBBX.md)
diff --git a/plugins/betriebsform/hybbx-host/plugin.yaml b/plugins/betriebsform/hybbx-host/plugin.yaml
new file mode 100644
index 0000000..4ff2c56
--- /dev/null
+++ b/plugins/betriebsform/hybbx-host/plugin.yaml
@@ -0,0 +1,27 @@
+id: hybbx-host
+type: betriebsform
+parent_stack: MainAX25-Stack (MAX25-Stack)
+label: HyBBX Host
+description: Secondary RF host — serial TNC or BayCom KISS → HBX to Main
+
+stack_requirements:
+ hybbx_secondary: true
+ circuit_link: required
+
+hybbx:
+ plugins:
+ - packet_radio
+ - baycom
+ transport_sections:
+ - transport.packet_radioN
+ - transport.baycomN
+
+integration:
+ tncs:
+ boot_script: stacks/tncs/tnc2c-boot-wait.sh
+ integration_test: stacks/tncs/tnc2c-integration-test.sh
+ ini_template: stacks/tncs/hybbx-tnc2c.ini
+ modems:
+ kiss_link: /tmp/max25-bcpr/kiss-bc0
+ ctl: stacks/max25-bcpr/tools/max25-bcpr-ctl
+ plugin_doc: stacks/max25-bcpr/README.md
diff --git a/plugins/betriebsform/service/README.md b/plugins/betriebsform/service/README.md
new file mode 100644
index 0000000..d5befeb
--- /dev/null
+++ b/plugins/betriebsform/service/README.md
@@ -0,0 +1,19 @@
+# Operating mode: Service
+
+Continuous operation with one or two radios. HyBBX Secondary, digipeater, or unattended packet service.
+
+## Requirements
+
+- BayCom/based (PC-COM): **bcpr** — real IRQ, exclusive COM lock, max 2 devices ([docs/BAYCOM.md](../../../docs/BAYCOM.md))
+- TNC path: unique serial device / no shared UART with bcpr
+- No second process on the same UART while `max25-bcprd` holds the lock
+
+## Templates
+
+| Stack | Config |
+|-------|--------|
+| BayCom/based (bcpr) | `stacks/max25-bcpr/share/max25-bcpr.ini.example` |
+| HyBBX dual BayCom | `share/hybbx/service-dual.ini.example` |
+| HyBBX dual TNC | `stacks/tncs/hybbx-dual.ini` |
+
+One `[transport.*N]` per radio channel on HyBBX Secondary.
diff --git a/plugins/betriebsform/service/plugin.yaml b/plugins/betriebsform/service/plugin.yaml
new file mode 100644
index 0000000..a659ad5
--- /dev/null
+++ b/plugins/betriebsform/service/plugin.yaml
@@ -0,0 +1,27 @@
+id: service
+type: betriebsform
+parent_stack: MainAX25-Stack (MAX25-Stack)
+label: Service
+description: 24/7 dual-radio — HyBBX, digipeater, automation
+
+stack_requirements:
+ modems_min: 1
+ modems_max: 2
+ tncs_max: 2
+ unique_irq_per_uart: true
+ staged_start: true
+
+lifecycle:
+ start: scripts/max25-ctl start --mode service
+ recover: stacks/baycom-pr/scripts/baycom-pr-ctl recover
+
+hybbx:
+ role: primary
+ multi_instance: true
+ kiss_paths:
+ - /var/run/baycom-pr/kiss-a
+ - /var/run/baycom-pr/kiss-b
+
+templates:
+ - stacks/baycom-pr/config/examples/baycom-pr.dual.ini
+ - stacks/tncs/hybbx-dual.ini
diff --git a/plugins/betriebsform/standalone/README.md b/plugins/betriebsform/standalone/README.md
new file mode 100644
index 0000000..fc9cb5d
--- /dev/null
+++ b/plugins/betriebsform/standalone/README.md
@@ -0,0 +1,22 @@
+# Operating mode: Standalone
+
+Single-operator packet radio. One TNC or one BayCom modem online. **Default v1 path.**
+
+## Start
+
+```bash
+# TNC2C
+./scripts/max25-ctl start --mode standalone --hardware tncs --device tnc2c
+
+# BayCom/based SER12 (max25e0 via max25-bcpr) — prefer max25d
+# [features] max25_bcpr=yes · max25e0 = max25-bcpr:bc0 — see docs/BAYCOM.md
+
+# max25d (recommended host path)
+sudo max25d -c /etc/max25/max25d.ini
+```
+
+## HyBBX
+
+Optional. HyBBX opens serial or KISS **after** MAX25 prep (boot-wait, driver load).
+
+INI: `share/hybbx/standalone.ini.example` · Contract: [docs/HYBBX.md](../../docs/HYBBX.md)
diff --git a/plugins/betriebsform/standalone/plugin.yaml b/plugins/betriebsform/standalone/plugin.yaml
new file mode 100644
index 0000000..1923aa3
--- /dev/null
+++ b/plugins/betriebsform/standalone/plugin.yaml
@@ -0,0 +1,24 @@
+id: standalone
+type: betriebsform
+parent_stack: MainAX25-Stack (MAX25-Stack)
+label: Standalone
+description: Single operator — one radio/TNC, terminal AX.25 clients
+
+stack_requirements:
+ modems_max: 1
+ tncs_max: 1
+
+lifecycle:
+ start: scripts/max25-ctl start --mode standalone
+ stop: scripts/max25-ctl stop
+ status: scripts/max25-ctl status
+
+hybbx:
+ role: optional
+ note: HyBBX may run on same host; stack exposes KISS or direct serial
+
+clients:
+ - listen
+ - call
+ - tnc2c-listen.sh
+ - baycom-pr-ctl listen
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com