summaryrefslogtreecommitdiff
path: root/plugins/devices
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/devices')
-rw-r--r--plugins/devices/audio-dummy/README.md41
-rw-r--r--plugins/devices/audio-dummy/plugin.yaml26
-rw-r--r--plugins/devices/bayc-plugin/README.md7
-rw-r--r--plugins/devices/baycom-kiss/README.md7
-rw-r--r--plugins/devices/baycom-kiss/plugin.yaml31
-rw-r--r--plugins/devices/max25-sniffport/README.md5
-rw-r--r--plugins/devices/max25-terminal/plugin.yaml16
-rw-r--r--plugins/devices/max25-vcom/README.md5
-rw-r--r--plugins/devices/pktnc2/README.md16
-rw-r--r--plugins/devices/pktnc2/plugin.yaml37
-rw-r--r--plugins/devices/soft-crdop/README.md26
-rw-r--r--plugins/devices/soft-crdop/plugin.yaml77
-rw-r--r--plugins/devices/tmodem/README.md15
-rw-r--r--plugins/devices/tmodem/plugin.yaml33
-rw-r--r--plugins/devices/tnc2c/README.md25
-rw-r--r--plugins/devices/tnc2c/plugin.yaml40
16 files changed, 407 insertions, 0 deletions
diff --git a/plugins/devices/audio-dummy/README.md b/plugins/devices/audio-dummy/README.md
new file mode 100644
index 0000000..4903d60
--- /dev/null
+++ b/plugins/devices/audio-dummy/README.md
@@ -0,0 +1,41 @@
+# Device: audio-dummy (acoustic bench)
+
+**Status:** `active` — development/test device for on-host acoustic signal evaluation.
+
+## Purpose
+
+Main **dummy device** for Bell 202 AFSK without RF:
+
+- **loopback** — full DSP encode/decode in process (CI default)
+- **alsa** — capture from sound card, sniff/decode live
+- **host** — TCP to `audio-dummyd` (M25 KISS host protocol, ports 8520/8521)
+
+## Tools
+
+```bash
+# Internal loopback (no hardware):
+stacks/crdop/tools/max25-signal-sniffer --loopback
+
+# ALSA capture sniff:
+stacks/crdop/tools/max25-signal-sniffer -D plughw:1,0 -t 3
+
+# Calibration tones (mark 1200 Hz / space 2200 Hz):
+stacks/crdop/tools/max25-signal-sniffer -D plughw:1,0 --mark -t 1
+stacks/crdop/tools/max25-signal-sniffer -D plughw:1,0 --space -t 1
+```
+
+## max25d
+
+```ini
+[devices]
+audio-dummy = audio:loopback
+
+[device.audio-dummy]
+mode = loopback ; loopback | alsa | host
+; capture = plughw:1,0
+; playback = plughw:1,0
+; sample_rate = 48000
+; host_port = 8520
+```
+
+Docs: [docs/CRDOP.md](../../../docs/CRDOP.md)
diff --git a/plugins/devices/audio-dummy/plugin.yaml b/plugins/devices/audio-dummy/plugin.yaml
new file mode 100644
index 0000000..789c92b
--- /dev/null
+++ b/plugins/devices/audio-dummy/plugin.yaml
@@ -0,0 +1,26 @@
+id: audio-dummy
+type: device
+parent_stack: MainAX25-Stack (MAX25-Stack)
+hardware: acoustic-bench
+label: Audio Dummy (acoustic bench)
+status: active
+
+product:
+ name: MAX25-Audio-Dummy
+ purpose: sniff_test_evaluate_acoustic_signals_on_host
+ protocol: m25-kiss-host
+ license: GPL-3.0-or-later
+
+note: |
+ Main dummy device for Bell 202 AFSK bench — loopback, ALSA sniff, or host TCP.
+ No RF required. Used before field tests against TNC2C/BayCom.
+
+runtime:
+ modes: [loopback, alsa, host]
+ sniffer: stacks/crdop/tools/max25-signal-sniffer
+ daemon: stacks/crdop/tools/audio-dummyd
+ default_spec: audio:loopback
+
+docs:
+ - docs/CRDOP.md
+ - stacks/crdop/docs/AUDIO-ARCHITECTURE.md
diff --git a/plugins/devices/bayc-plugin/README.md b/plugins/devices/bayc-plugin/README.md
new file mode 100644
index 0000000..870f0c1
--- /dev/null
+++ b/plugins/devices/bayc-plugin/README.md
@@ -0,0 +1,7 @@
+# bayc-plugin — BayCom/based (max25d)
+
+**Role:** BayCom/based device plugin under **max25d** · host face **`max25e0`**.
+
+Experimental orch / soft-TNC / guest-PTY work is **not** shipped in this freigegeben tree.
+
+Thin stub only. Do not restore experimental orch tools here.
diff --git a/plugins/devices/baycom-kiss/README.md b/plugins/devices/baycom-kiss/README.md
new file mode 100644
index 0000000..c834c39
--- /dev/null
+++ b/plugins/devices/baycom-kiss/README.md
@@ -0,0 +1,7 @@
+# Device: BayCom KISS Serial
+
+USB or async serial BayCom firmware TNC. Uses `kiss-serial` backend — no kernel `baycom_ser_fdx`, no **bcpr** SER12 path.
+
+HyBBX `[transport.baycom1]` with `backend=kiss`, `device=/dev/ttyUSB0`.
+
+See [docs/BAYCOM.md](../../../docs/BAYCOM.md) (KISS vs BayCom/based) and [docs/PLUGINS-DEVICE-MODEL.md](../../../docs/PLUGINS-DEVICE-MODEL.md).
diff --git a/plugins/devices/baycom-kiss/plugin.yaml b/plugins/devices/baycom-kiss/plugin.yaml
new file mode 100644
index 0000000..78c8a1d
--- /dev/null
+++ b/plugins/devices/baycom-kiss/plugin.yaml
@@ -0,0 +1,31 @@
+id: baycom-kiss
+type: device
+parent_stack: MainAX25-Stack (MAX25-Stack)
+hardware: modems
+label: BayCom KISS Serial (USB/async)
+status: active
+
+hybbx:
+ plugin: baycom
+ backend: kiss
+ serial_baud: 9600
+
+serial:
+ default_device: /dev/ttyUSB0
+
+runtime:
+ kiss_link: /var/run/baycom-pr/kiss
+
+ini:
+ - stacks/baycom-pr/config/examples/baycom-pr.usb.ini
+ - share/baycom/baycom-pr.kiss-usb.ini.example
+
+client:
+ - share/clients/baycom-kiss.yaml
+ - share/clients/kiss-serial-usb.yaml
+ - share/clients/kiss-serial-rs232.yaml
+
+docs:
+ - stacks/baycom-pr/docs/GETTING-STARTED.md
+
+notes: USB KISS path — no kernel baycom driver required. Device alias pccom-kiss uses same backend.
diff --git a/plugins/devices/max25-sniffport/README.md b/plugins/devices/max25-sniffport/README.md
new file mode 100644
index 0000000..d0fcaa4
--- /dev/null
+++ b/plugins/devices/max25-sniffport/README.md
@@ -0,0 +1,5 @@
+# max25-sniffport
+
+Mode-A virt-COM / sniffport experimental work is **not** shipped in this freigegeben tree.
+
+Thin stub only.
diff --git a/plugins/devices/max25-terminal/plugin.yaml b/plugins/devices/max25-terminal/plugin.yaml
new file mode 100644
index 0000000..9f1289e
--- /dev/null
+++ b/plugins/devices/max25-terminal/plugin.yaml
@@ -0,0 +1,16 @@
+id: max25-terminal
+label: MAX25 Terminal
+hardware: terminal
+role: client
+status: active
+description: Official text-only operator UI — sole MAX25 client; M25/1 to max25d
+docs:
+ - docs/MAX25-CLIENT.md
+ - docs/MAX25-TERMINAL.md
+ - docs/PACKET-RADIO.md
+ - include/max25/protocol.md
+binaries:
+ - max25-terminal
+ - max25-client
+protocol: m25/1
+default_port: 7325
diff --git a/plugins/devices/max25-vcom/README.md b/plugins/devices/max25-vcom/README.md
new file mode 100644
index 0000000..ac6485a
--- /dev/null
+++ b/plugins/devices/max25-vcom/README.md
@@ -0,0 +1,5 @@
+# max25-vcom
+
+vcom-port / PTY experimental work is **not** shipped in this freigegeben tree.
+
+Thin stub only.
diff --git a/plugins/devices/pktnc2/README.md b/plugins/devices/pktnc2/README.md
new file mode 100644
index 0000000..3b9dd2e
--- /dev/null
+++ b/plugins/devices/pktnc2/README.md
@@ -0,0 +1,16 @@
+# Device: PK-TNC2
+
+**Status:** Planned — probe serial port after hardware delivery.
+
+PK-TNC2 / TNC-2 (TheFirmware) profile for HyBBX `packet_radio` with `tnc=tnc2`.
+
+## Preparation
+
+```bash
+# After delivery: edit stacks/tncs/pktnc2-serial.env
+./stacks/tncs/pktnc2-boot-wait.sh
+```
+
+HyBBX: `share/hybbx/pktnc2-host.ini.example`
+
+Reuses `tnc2c-probe` for port scan.
diff --git a/plugins/devices/pktnc2/plugin.yaml b/plugins/devices/pktnc2/plugin.yaml
new file mode 100644
index 0000000..0e3dc79
--- /dev/null
+++ b/plugins/devices/pktnc2/plugin.yaml
@@ -0,0 +1,37 @@
+id: pktnc2
+type: device
+parent_stack: MainAX25-Stack (MAX25-Stack)
+hardware: tncs
+label: PK-TNC2 / TNC-2 (TheFirmware)
+status: planned
+
+hybbx:
+ plugin: packet_radio
+ profile: tnc2
+ aliases: [pktnc2, pk-tnc2, tapr, thefirmware]
+ protocol: kiss
+ serial_line: 8n1
+ kiss_entry: auto
+
+serial:
+ default_device: /dev/ttyUSB1
+ default_baud: 9600
+
+rf:
+ radio_baud: 1200
+ band: cb
+
+scripts:
+ boot_wait: stacks/tncs/pktnc2-boot-wait.sh
+ probe: stacks/tncs/tnc2c-probe
+
+ini:
+ - share/hybbx/pktnc2-host.ini.example
+
+client:
+ - share/clients/pktnc2.yaml
+
+docs:
+ - stacks/tncs/docs/TNC2C-REFERENCE.md
+
+notes: Planned device — probe serial port after hardware inventory.
diff --git a/plugins/devices/soft-crdop/README.md b/plugins/devices/soft-crdop/README.md
new file mode 100644
index 0000000..fe44f9d
--- /dev/null
+++ b/plugins/devices/soft-crdop/README.md
@@ -0,0 +1,26 @@
+# Device: soft-crdop (MAX25-SoftModem / CRDOP — MAX25-SoftModem)
+
+**CRDOP** = stack acronym for **MAX25-SoftModem** (device id `soft-crdop`).
+
+**Status:** `active` — MAX25-Stack **standard subproject** (`stacks/crdop/`).
+
+**Canonical rule:** [docs/CRDOP.md](../../../docs/CRDOP.md) · **License:** GNU GPL v3
+
+## Summary
+
+| Topic | Policy |
+|-------|--------|
+| Type | Sound-card software modem subproject |
+| Compatibility | **AX.25 / KISS / TNC / modem** (software-modem domain) |
+| Mission | **Hardware solutions** (primary) + pure **software** on computers |
+| Audio | Kernel ALSA + MAX25 sound-proxy — **no PulseAudio** |
+| Build | Default ON — `-DMAX25_BUILD_CRDOP=OFF` to skip |
+
+## Quick start
+
+```bash
+./scripts/build.sh
+./scripts/max25-ctl start --hardware soft-modems --device soft-crdop
+```
+
+See [docs/CRDOP.md](../../../docs/CRDOP.md) for full project rules.
diff --git a/plugins/devices/soft-crdop/plugin.yaml b/plugins/devices/soft-crdop/plugin.yaml
new file mode 100644
index 0000000..a18a524
--- /dev/null
+++ b/plugins/devices/soft-crdop/plugin.yaml
@@ -0,0 +1,77 @@
+id: soft-crdop
+type: device
+parent_stack: MainAX25-Stack (MAX25-Stack)
+hardware: soft-modems
+label: MAX25-SoftModem (CRDOP — CB/AR Digital Open Protocol)
+status: active
+
+product:
+ name: MAX25-SoftModem
+ phase: development_and_testing
+ development: in-house
+ baud_primary: 1200
+ baud_max: 19200
+ duplex: [half, full]
+ ax25_packet_radio: acoustically_compatible
+ use_like_hardware_modem: true
+ protocol_primary: max25-softmodem
+ audio_hardware: required
+
+note: |
+ CRDOP = CB/AR Digital Open Protocol (CB = Citizens Band, AR = Amateur Radio).
+ MAX25-Stack STANDARD subproject (stacks/crdop/) — GNU GPLv3.
+ Sound-card based; kernel ALSA + MAX25 sound-proxy; no PulseAudio.
+ Full AX.25/KISS/TNC/modem compatibility goal. Hardware-solution-first.
+ Static project rule: docs/CRDOP.md
+
+hybbx:
+ plugin: crdop
+ transport: tcp
+ control_port: 8515
+ data_port: 8516
+ profile: cb
+
+modem:
+ protocol: max25-softmodem
+ duplex: half
+ duplex_modes: [half, full]
+ default_speed_baud: 1200
+ max_speed_baud: 19200
+ ax25_acoustic: true
+ packet_radio_compatible: true
+ audio: alsa
+ audio_backend: alsa-kernel
+ audio_path: max25-sound-proxy
+ no_pulseaudio: true
+ audio_required: true
+ coupling: [line_level, acoustic]
+
+runtime:
+ ctl_start: stacks/crdop/scripts/crdopc
+ default_ini: stacks/crdop/share/crdop.ini.example
+ env:
+ - CRDOP_INI
+ cmake_option_off: MAX25_BUILD_CRDOP
+ shipped_default: true
+
+ini:
+ - stacks/crdop/share/crdop.ini.example
+ - stacks/crdop/share/crdop-dual.ini.example
+ - stacks/crdop/share/crdop-amateur.ini.example
+ - share/hybbx/crdop-host.ini.example
+
+client:
+ - share/clients/soft-crdop.yaml
+
+license: GPL-3.0-or-later
+
+docs:
+ - docs/CRDOP.md
+ - stacks/crdop/docs/SOFTMODEM.md
+ - stacks/crdop/docs/AUDIO-ARCHITECTURE.md
+ - stacks/crdop/docs/CONFIG.md
+ - stacks/crdop/ROADMAP.md
+
+scripts:
+ build: stacks/crdop/scripts/build-crdop.sh
+ start: stacks/crdop/scripts/crdopc
diff --git a/plugins/devices/tmodem/README.md b/plugins/devices/tmodem/README.md
new file mode 100644
index 0000000..0ac2772
--- /dev/null
+++ b/plugins/devices/tmodem/README.md
@@ -0,0 +1,15 @@
+# Device: T-Modem-c1224 (`tmodem`)
+
+USB CDC **KISS half-TNC** from [T-Modem-c1224](https://github.com/ngteq/T-Modem-c1224) Pico firmware. Chip does AFSK; Pico does HDLC + bitbang. **Not** BayCom/based. **Not** softmodem.
+
+| Item | Value |
+|------|--------|
+| Device id | `tmodem` |
+| Backend | `kiss-raw-serial` |
+| Default path | `/dev/ttyACM0` |
+| Feature | `[features] tmodem=yes` (default **no**) |
+| Terminal | `max25-terminal -d tmodem` |
+
+HyBBX: attach to max25d only — no L1 inside HyBBX.
+
+See [docs/DEV/TMODEM-C1224.md](../../../docs/DEV/TMODEM-C1224.md).
diff --git a/plugins/devices/tmodem/plugin.yaml b/plugins/devices/tmodem/plugin.yaml
new file mode 100644
index 0000000..dd093fd
--- /dev/null
+++ b/plugins/devices/tmodem/plugin.yaml
@@ -0,0 +1,33 @@
+id: tmodem
+type: device
+parent_stack: MainAX25-Stack (MAX25-Stack)
+hardware: tncs
+label: T-Modem-c1224 (USB KISS half-TNC)
+status: prototype
+
+hybbx:
+ attach: max25d
+ note: HyBBX attach-only via MAX25 — no L1 in HyBBX
+
+serial:
+ default_device: /dev/ttyACM0
+ default_baud: 115200
+ line: 8n1
+ dtr_rts: no
+
+runtime:
+ backend: kiss-raw-serial
+
+ini:
+ - share/max25/max25d.tmodem.ini.example
+
+client:
+ - share/clients/tmodem.yaml
+
+docs:
+ - docs/DEV/TMODEM-C1224.md
+
+notes: >
+ T-Modem-c1224 Pico presents USB CDC KISS (HDLC on Pico + TCM3105 chip AFSK).
+ Not BayCom/based. Feature gate [features] tmodem=yes (default off).
+ First client path: max25-terminal -d tmodem.
diff --git a/plugins/devices/tnc2c/README.md b/plugins/devices/tnc2c/README.md
new file mode 100644
index 0000000..4ddd19d
--- /dev/null
+++ b/plugins/devices/tnc2c/README.md
@@ -0,0 +1,25 @@
+# Device: Landolt TNC2C
+
+**Status:** Active (v1).
+
+| Parameter | Value |
+|-----------|-------|
+| Serial | `/dev/ttyUSB0` or `/dev/ttyS4` (site-specific) |
+| Host line | 19200 8N1, RTS+DTR |
+| RF | 2400 AFSK |
+| HyBBX | `tnc=tnc2c`, `protocol=kiss` |
+
+## Boot sequence
+
+DTR must be high during power-on:
+
+```bash
+./stacks/tncs/tnc2c-boot-wait.sh
+./stacks/tncs/tnc2c-integration-test.sh
+```
+
+HyBBX INI: `share/hybbx/tnc2c-host.ini.example`
+
+## Safety
+
+No `kiss on` or TX tests without dummy load when antenna connected.
diff --git a/plugins/devices/tnc2c/plugin.yaml b/plugins/devices/tnc2c/plugin.yaml
new file mode 100644
index 0000000..d822c4a
--- /dev/null
+++ b/plugins/devices/tnc2c/plugin.yaml
@@ -0,0 +1,40 @@
+id: tnc2c
+type: device
+parent_stack: MainAX25-Stack (MAX25-Stack)
+hardware: tncs
+label: Landolt TNC2C
+status: active
+
+hybbx:
+ plugin: packet_radio
+ profile: tnc2c
+ protocol: kiss
+ serial_line: 8n1
+ rts_dtr: yes
+ kiss_entry: kiss_on
+
+serial:
+ default_device: /dev/ttyS4
+ default_baud: 19200
+ env_file: stacks/tncs/tnc2c-serial.env
+
+rf:
+ modem: tcm3105
+ radio_baud: 2400
+ band: cb
+
+scripts:
+ boot_wait: stacks/tncs/tnc2c-boot-wait.sh
+ health: stacks/tncs/tnc2c-health.sh
+ integration: stacks/tncs/tnc2c-integration-test.sh
+
+ini:
+ - stacks/tncs/hybbx-tnc2c.ini
+ - share/hybbx/tnc2c-host.ini.example
+
+client:
+ - share/clients/tnc2c.yaml
+
+docs:
+ - stacks/tncs/docs/TNC2C-OPERATIONS.md
+ - stacks/tncs/docs/HYBBX-TNC2C.md
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com