summaryrefslogtreecommitdiff
path: root/share/clients
diff options
context:
space:
mode:
authorinfo@mode42.com <info@mode42.com>2026-08-07 18:23:28 +0000
committerinfo@mode42.com <info@mode42.com>2026-08-07 18:23:28 +0000
commitfa05a5f8238e9e1417235711656e5062ccc843a7 (patch)
tree46fbbd18de54492b59307c16efcc7f3152723238 /share/clients
Initial push
Diffstat (limited to 'share/clients')
-rw-r--r--share/clients/README.md79
-rw-r--r--share/clients/baycom-kiss.yaml46
-rw-r--r--share/clients/index.yaml39
-rw-r--r--share/clients/kiss-serial-rs232.yaml55
-rw-r--r--share/clients/kiss-serial-usb.yaml57
-rw-r--r--share/clients/pktnc2.yaml54
-rw-r--r--share/clients/soft-crdop.yaml66
-rw-r--r--share/clients/tmodem.yaml42
-rw-r--r--share/clients/tnc2c.yaml53
9 files changed, 491 insertions, 0 deletions
diff --git a/share/clients/README.md b/share/clients/README.md
new file mode 100644
index 0000000..0a2bfc7
--- /dev/null
+++ b/share/clients/README.md
@@ -0,0 +1,79 @@
+# Terminal client profiles (YAML)
+
+Per-modem **max25-terminal** profiles for devices that need settings beyond a BayCom/based **bcpr** or TNC env catalog.
+
+| Who reads this | Purpose |
+|----------------|---------|
+| **max25-terminal** | Connection target, default `SET DEVICE`, session IDs, UI pacing |
+| **Operator** | `max25-terminal -U /run/max25/modem.sock` — device from max25d `[devices] default`, or `-d <id>` / F10→7 / `SET DEVICE` (id from YAML `device.id`) |
+| **max25d** | **Not** loaded from here — use `max25d.ini`, `bcpr.ini`, or env files |
+
+## BayCom/based (bcpr) — client YAML as operator reference
+
+SER12 PC-COM class hardware runs via **bcpr** (`stacks/max25-bcpr/`), not a kernel driver. Configure `bcpr.ini` / max25d `[features] max25_bcpr=yes` and device **`max25e0`** (`max25e0 = max25-bcpr:bc0`). No separate client YAML is required — use max25d default or `SET DEVICE max25e0`.
+
+Terminal clients attach to **max25d** after `max25-bcprd` / max25d bring-up. See [../../stacks/max25-bcpr/README.md](../../stacks/max25-bcpr/README.md).
+
+Registry of all catalog IDs (with and without client YAML): [`index.yaml`](index.yaml).
+
+## Schema (`schema_version: 1`)
+
+```yaml
+schema_version: 1
+id: tnc2c # max25d device id or catalog id
+label: Human name
+type: client-profile # client-profile | catalog-only
+
+connection: # terminal → max25d (never raw serial)
+ host: 127.0.0.1
+ port: 7325
+ unix_socket: /run/max25/modem.sock
+
+device: # M25/1 SET DEVICE on connect
+ id: tnc2c
+ hardware: tncs
+
+session: # optional defaults (SET CALLERID / CALLID / AX25_UI)
+ callerid: CB-0
+ callid: QST
+ ax25_ui: true
+
+terminal: # HyBBX-aligned UI
+ pacing_baud: 2400
+ line_width: 80
+ payload_max: 256
+
+max25d: # pointers for daemon/site config (informational)
+ ini_example: share/max25/max25d.ini.example
+ device_section: serial.tnc2c
+ env_file: stacks/tncs/tnc2c-serial.env
+ boot_wait: stacks/tncs/tnc2c-boot-wait.sh
+
+serial: # max25d-owned serial (client does not open)
+ default_device: /dev/ttyS4
+ baud: 19200
+ line: 8n1
+ dtr_rts: true
+ kiss_entry: kiss_on
+```
+
+KISS-async and CRDOP profiles use `serial:` or `crdop:` instead of BayCom catalog fields.
+
+## Files
+
+| File | Modem / device |
+|------|----------------|
+| [`tnc2c.yaml`](tnc2c.yaml) | Landolt TNC2C |
+| (none — use `max25e0`) | BayCom/based SER12 via max25-bcpr (PC-COM) |
+| [`pktnc2.yaml`](pktnc2.yaml) | PK-TNC2 / TNC-2 (TheFirmware)
+| [`kiss-serial-usb.yaml`](kiss-serial-usb.yaml) | KISS on USB (`modems.ini` catalog) |
+| [`kiss-serial-rs232.yaml`](kiss-serial-rs232.yaml) | KISS on RS-232 |
+| [`baycom-kiss.yaml`](baycom-kiss.yaml) | MAX25 device plugin (USB KISS) |
+| [`soft-crdop.yaml`](soft-crdop.yaml) | CRDOP sound-card modem |
+| [`index.yaml`](index.yaml) | Full modem database map |
+
+## See also
+
+- [../../include/max25/protocol.md](../../include/max25/protocol.md) — M25/1 protocol
+- [../../stacks/terminal/README.md](../../stacks/terminal/README.md) — operator UI
+- [stacks/max25-bcpr/share/max25-bcpr.ini.example](../../stacks/max25-bcpr/share/max25-bcpr.ini.example) — bcpr INI example
diff --git a/share/clients/baycom-kiss.yaml b/share/clients/baycom-kiss.yaml
new file mode 100644
index 0000000..b849c2a
--- /dev/null
+++ b/share/clients/baycom-kiss.yaml
@@ -0,0 +1,46 @@
+schema_version: 1
+id: baycom-kiss
+label: BayCom KISS Serial (MAX25 device)
+type: client-profile
+status: scaffold
+
+connection:
+ host: 127.0.0.1
+ port: 7325
+ unix_socket: /run/max25/modem.sock
+ tcp_only: false
+
+device:
+ id: baycom-kiss
+ hardware: modems
+
+session:
+ callerid: CB-0
+ callid: QST
+ ax25_ui: true
+
+terminal:
+ pacing_baud: 2400
+ line_width: 80
+ payload_max: 256
+
+max25d:
+ ini_example: share/max25/max25d.ini.example
+ devices_key: baycom-kiss
+ backend: kiss-raw-serial
+
+serial:
+ default_device: /dev/ttyUSB0
+ baud: 9600
+ line: 8n1
+ dtr_rts: false
+
+catalog_profiles:
+ - share/clients/kiss-serial-usb.yaml
+ - share/clients/kiss-serial-rs232.yaml
+
+docs:
+ - plugins/devices/baycom-kiss/plugin.yaml
+ - stacks/baycom-pr/docs/GETTING-STARTED.md
+
+notes: Device plugin wrapper — pick USB or RS-232 catalog profile above.
diff --git a/share/clients/index.yaml b/share/clients/index.yaml
new file mode 100644
index 0000000..099269f
--- /dev/null
+++ b/share/clients/index.yaml
@@ -0,0 +1,39 @@
+# MAX25 client profile registry
+# Maps MAX25 device plugins to terminal client configs.
+# Kernel baycom-pr / modems.ini catalog removed 2026-07-18 — SER12 product path is bcpr.
+
+schema_version: 1
+plugin_registry: plugins/manifest.yaml
+
+devices:
+ - id: tnc2c
+ label: Landolt TNC2C
+ hardware: tncs
+ client_config: share/clients/tnc2c.yaml
+ status: active
+
+ - id: pktnc2
+ label: PK-TNC2 / TNC-2 (TheFirmware)
+ hardware: tncs
+ client_config: share/clients/pktnc2.yaml
+ status: planned
+
+ - id: baycom-kiss
+ label: BayCom KISS serial (USB/async)
+ hardware: modems
+ client_config: share/clients/baycom-kiss.yaml
+ status: active
+
+ - id: tmodem
+ label: T-Modem-c1224 USB KISS half-TNC
+ hardware: tncs
+ client_config: share/clients/tmodem.yaml
+ status: prototype
+
+ - id: soft-crdop
+ label: CRDOP sound-card modem
+ hardware: soft-modems
+ client_config: share/clients/soft-crdop.yaml
+ status: active
+
+# BayCom/based SER12: configure max25d max25e0 / max25e0:bc1 — no separate client YAML required.
diff --git a/share/clients/kiss-serial-rs232.yaml b/share/clients/kiss-serial-rs232.yaml
new file mode 100644
index 0000000..6a22148
--- /dev/null
+++ b/share/clients/kiss-serial-rs232.yaml
@@ -0,0 +1,55 @@
+schema_version: 1
+id: kiss-serial-rs232
+label: KISS modem on RS-232 serial
+type: client-profile
+catalog: kiss-serial-rs232
+status: active
+
+connection:
+ host: 127.0.0.1
+ port: 7325
+ unix_socket: /run/max25/modem.sock
+ tcp_only: false
+
+device:
+ id: baycom-kiss
+ hardware: modems
+
+session:
+ callerid: CB-0
+ callid: QST
+ ax25_ui: true
+
+terminal:
+ pacing_baud: 2400
+ line_width: 80
+ payload_max: 256
+
+max25d:
+ ini_example: share/max25/max25d.ini.example
+ device_section: serial.baycom-kiss
+ backend: kiss-raw-serial
+ baycom_pr:
+ catalog: kiss-serial-rs232
+ kiss_link: /var/run/baycom-pr/kiss
+
+serial:
+ default_device: /dev/ttyS1
+ baud: 9600
+ line: 8n1
+ dtr_rts: false
+ kiss_entry: none
+
+rf:
+ radio_baud: 1200
+
+hybbx:
+ plugin: baycom
+ backend: kiss
+
+docs:
+ - stacks/baycom-pr/config/modems.ini
+
+notes: |
+ TNC2, OpenTracker, KISS firmware on RS-232 or USB-serial adapter.
+ Self-powered TNC preferred; port-powered units need adequate TXD/DTR current.
diff --git a/share/clients/kiss-serial-usb.yaml b/share/clients/kiss-serial-usb.yaml
new file mode 100644
index 0000000..120bb36
--- /dev/null
+++ b/share/clients/kiss-serial-usb.yaml
@@ -0,0 +1,57 @@
+schema_version: 1
+id: kiss-serial-usb
+label: KISS modem on USB (ttyUSB / ttyACM)
+type: client-profile
+catalog: kiss-serial-usb
+status: active
+
+connection:
+ host: 127.0.0.1
+ port: 7325
+ unix_socket: /run/max25/modem.sock
+ tcp_only: false
+
+device:
+ id: baycom-kiss
+ hardware: modems
+
+session:
+ callerid: CB-0
+ callid: QST
+ ax25_ui: true
+
+terminal:
+ pacing_baud: 2400
+ line_width: 80
+ payload_max: 256
+
+max25d:
+ ini_example: share/max25/max25d.ini.example
+ device_section: serial.baycom-kiss
+ backend: kiss-raw-serial
+ baycom_pr:
+ catalog: kiss-serial-usb
+ kiss_link: /var/run/baycom-pr/kiss
+
+serial:
+ default_device: /dev/ttyUSB0
+ baud: 9600
+ line: 8n1
+ dtr_rts: false
+ kiss_entry: none
+
+rf:
+ radio_baud: 1200
+
+hybbx:
+ plugin: baycom
+ backend: kiss
+
+docs:
+ - stacks/baycom-pr/config/modems.ini
+ - stacks/baycom-pr/docs/GETTING-STARTED.md
+
+notes: |
+ No kernel baycom_ser_fdx — async USB serial KISS.
+ max25d or baycom-pr kiss bridge owns the USB device; terminal uses M25/1 only.
+ Adapter must supply stable USB power (see stacks/baycom-pr/docs/archive/HARDWARE.md).
diff --git a/share/clients/pktnc2.yaml b/share/clients/pktnc2.yaml
new file mode 100644
index 0000000..bf97834
--- /dev/null
+++ b/share/clients/pktnc2.yaml
@@ -0,0 +1,54 @@
+schema_version: 1
+id: pktnc2
+label: PK-TNC2 / TNC-2 (TheFirmware)
+type: client-profile
+status: planned
+
+connection:
+ host: 127.0.0.1
+ port: 7325
+ unix_socket: /run/max25/modem.sock
+ tcp_only: false
+
+device:
+ id: pktnc2
+ hardware: tncs
+
+session:
+ callerid: CB-0
+ callid: QST
+ ax25_ui: true
+
+terminal:
+ pacing_baud: 2400
+ line_width: 80
+ payload_max: 256
+
+max25d:
+ ini_example: share/max25/max25d.ini.example
+ device_section: serial.pktnc2
+ env_file: stacks/tncs/pktnc2-serial.env
+ boot_wait: stacks/tncs/pktnc2-boot-wait.sh
+
+serial:
+ default_device: /dev/ttyS5
+ baud: 9600
+ line: 8n1
+ dtr_rts: false
+ kiss_entry: auto
+
+rf:
+ radio_baud: 1200
+ band: cb
+
+hybbx:
+ ini_example: share/hybbx/pktnc2-host.ini.example
+ plugin: packet_radio
+ profile: tnc2
+ aliases: [pktnc2, pk-tnc2, tapr, thefirmware]
+
+docs:
+ - stacks/tncs/docs/TNC2C-REFERENCE.md
+ - plugins/devices/pktnc2/plugin.yaml
+
+notes: Probe serial port after hardware inventory — adjust default_device in local env.
diff --git a/share/clients/soft-crdop.yaml b/share/clients/soft-crdop.yaml
new file mode 100644
index 0000000..81ae5a2
--- /dev/null
+++ b/share/clients/soft-crdop.yaml
@@ -0,0 +1,66 @@
+schema_version: 1
+id: soft-crdop
+label: MAX25-SoftModem (CRDOP)
+type: client-profile
+status: active
+
+connection:
+ host: 127.0.0.1
+ port: 7325
+ unix_socket: /run/max25/modem.sock
+ tcp_only: false
+
+device:
+ id: soft-crdop
+ hardware: soft-modems
+
+session:
+ callerid: CB-0
+ callid: QST
+ ax25_ui: true
+
+terminal:
+ pacing_baud: 1200
+ line_width: 80
+ payload_max: 256
+
+max25d:
+ ini_example: share/max25/max25d.ini.example
+ device_section: device.soft-crdop
+ ctl_start: stacks/crdop/scripts/crdopc
+ default_ini: stacks/crdop/share/crdop.ini.example
+
+softmodem:
+ product: MAX25-SoftModem
+ phase: development_and_testing
+ protocol: max25-softmodem
+ baud_primary: 1200
+ baud_max: 19200
+ duplex: [half, full]
+ ax25_packet_radio: acoustically_compatible
+ use_like_hardware_modem: true
+ audio_required: true
+ coupling: [line_level, acoustic]
+ host: 127.0.0.1
+ control_port: 8515
+ data_port: 8516
+ listen: true
+
+hybbx:
+ ini_example: share/hybbx/crdop-host.ini.example
+ plugin: crdop
+
+docs:
+ - stacks/crdop/docs/INDEX.md
+ - stacks/crdop/README.md
+ - stacks/crdop/docs/SOFTMODEM.md
+ - stacks/crdop/ROADMAP.md
+ - plugins/devices/soft-crdop/plugin.yaml
+
+notes: |
+ MAX25-SoftModem (CRDOP) — MAX25-Stack STANDARD (built unless MAX25_BUILD_CRDOP=OFF).
+ 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 in max25d.
+ Good sound card REQUIRED (accurate tones; stricter at higher baud).
+ Open docs for DIY hardware interfaces.
diff --git a/share/clients/tmodem.yaml b/share/clients/tmodem.yaml
new file mode 100644
index 0000000..162b5b8
--- /dev/null
+++ b/share/clients/tmodem.yaml
@@ -0,0 +1,42 @@
+schema_version: 1
+id: tmodem
+label: T-Modem-c1224 USB KISS half-TNC
+type: client-profile
+status: prototype
+
+connection:
+ host: 127.0.0.1
+ port: 7325
+ unix_socket: /run/max25/modem.sock
+ tcp_only: false
+
+device:
+ id: tmodem
+ hardware: tncs
+
+session:
+ callerid: CB-0
+ callid: QST
+ ax25_ui: true
+
+terminal:
+ pacing_baud: 1200
+ line_width: 80
+ payload_max: 256
+
+max25d:
+ ini_example: share/max25/max25d.tmodem.ini.example
+ devices_key: tmodem
+ backend: kiss-raw-serial
+
+serial:
+ default_device: /dev/ttyACM0
+ baud: 115200
+ line: 8n1
+ dtr_rts: false
+
+docs:
+ - plugins/devices/tmodem/plugin.yaml
+ - docs/DEV/TMODEM-C1224.md
+
+notes: Not BayCom/based. Feature [features] tmodem=yes required.
diff --git a/share/clients/tnc2c.yaml b/share/clients/tnc2c.yaml
new file mode 100644
index 0000000..90c6e9c
--- /dev/null
+++ b/share/clients/tnc2c.yaml
@@ -0,0 +1,53 @@
+schema_version: 1
+id: tnc2c
+label: Landolt TNC2C
+type: client-profile
+status: active
+
+connection:
+ host: 127.0.0.1
+ port: 7325
+ unix_socket: /run/max25/modem.sock
+ tcp_only: false
+
+device:
+ id: tnc2c
+ hardware: tncs
+
+session:
+ callerid: CB-0
+ callid: QST
+ ax25_ui: true
+
+terminal:
+ pacing_baud: 2400
+ line_width: 80
+ payload_max: 256
+
+max25d:
+ ini_example: share/max25/max25d.ini.example
+ device_section: serial.tnc2c
+ env_file: stacks/tncs/tnc2c-serial.env
+ boot_wait: stacks/tncs/tnc2c-boot-wait.sh
+ health: stacks/tncs/tnc2c-health.sh
+
+serial:
+ default_device: /dev/ttyS4
+ baud: 19200
+ line: 8n1
+ dtr_rts: true
+ kiss_entry: kiss_on
+
+rf:
+ modem: tcm3105
+ radio_baud: 2400
+ band: cb
+
+hybbx:
+ ini_example: share/hybbx/tnc2c-host.ini.example
+ plugin: packet_radio
+ profile: tnc2c
+
+docs:
+ - stacks/tncs/docs/TNC2C-OPERATIONS.md
+ - plugins/devices/tnc2c/plugin.yaml
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com