From fa05a5f8238e9e1417235711656e5062ccc843a7 Mon Sep 17 00:00:00 2001 From: "info@mode42.com" Date: Fri, 7 Aug 2026 18:23:28 +0000 Subject: Initial push --- share/max25/max25d.ini.example | 46 ++++++++++++++++++++++++ share/max25/max25d.lite.bcpr.ini.example | 42 ++++++++++++++++++++++ share/max25/max25d.lite.crdop.ini.example | 40 +++++++++++++++++++++ share/max25/max25d.lite.ini.example | 44 +++++++++++++++++++++++ share/max25/max25d.service.example | 13 +++++++ share/max25/serial/README.md | 22 ++++++++++++ share/max25/serial/pccom-kiss-serial.env.example | 9 +++++ share/max25/serial/pktnc2-serial.env.example | 5 +++ share/max25/serial/tnc2c-serial.env.example | 8 +++++ 9 files changed, 229 insertions(+) create mode 100644 share/max25/max25d.ini.example create mode 100644 share/max25/max25d.lite.bcpr.ini.example create mode 100644 share/max25/max25d.lite.crdop.ini.example create mode 100644 share/max25/max25d.lite.ini.example create mode 100644 share/max25/max25d.service.example create mode 100644 share/max25/serial/README.md create mode 100644 share/max25/serial/pccom-kiss-serial.env.example create mode 100644 share/max25/serial/pktnc2-serial.env.example create mode 100644 share/max25/serial/tnc2c-serial.env.example (limited to 'share/max25') diff --git a/share/max25/max25d.ini.example b/share/max25/max25d.ini.example new file mode 100644 index 0000000..1cffbbc --- /dev/null +++ b/share/max25/max25d.ini.example @@ -0,0 +1,46 @@ +; MAX25-Stack-Lite — one radio, one terminal (example) +; Localhost only: max25d + max25-terminal on the SAME PC. No LAN / no remote terminal. +; Copy: sudo cp share/max25/max25d.lite.ini.example /etc/max25/max25d.ini +; Edit only the device path for your modem. + +[daemon] +mode = standalone +hardware = tncs +device = tnc2c + +[network] +tcp_host = 127.0.0.1 +tcp_port = 7325 +unix_socket = /run/max25/modem.sock +; Empty = no AUTH on loopback smoke tests; set before LAN exposure +tcp_password = + +[modem] +callerid = CB-0 +callid = QST +ax25_ui = yes + +[reporting] +error_transmissions = yes +voice_transmissions = yes +data_passes = 3 +data_quality_min = 50 +data_pass_seconds = 20 + +[stack] +auto_start = yes +serial_watch = yes +serial_watch_interval = 60 +stack_recover_only = yes +serial_bootwait_escalate = yes +serial_bootwait_escalate_after = 3 + +[devices] +default = tnc2c +tnc2c = /dev/ttyUSB0 + +[serial.tnc2c] +baud = 19200 +line = 8n1 +dtr_rts = yes +kiss_entry = kiss_on diff --git a/share/max25/max25d.lite.bcpr.ini.example b/share/max25/max25d.lite.bcpr.ini.example new file mode 100644 index 0000000..792e602 --- /dev/null +++ b/share/max25/max25d.lite.bcpr.ini.example @@ -0,0 +1,42 @@ +; MAX25-Stack-Lite — BayCom/based PC-COM (max25-bcpr / max25e0) +; Localhost only: max25d + max25-terminal on the SAME PC. +; Copy: sudo cp share/max25/max25d.lite.bcpr.ini.example /etc/max25/max25d.ini +; sudo cp stacks/max25-bcpr/share/max25-bcpr.ini.example /etc/max25/max25-bcpr.ini +; Start bcpr first: sudo max25-bcpr-ctl start --ini /etc/max25/max25-bcpr.ini + +[features] +max25_bcpr = yes + +[daemon] +mode = standalone +hardware = tncs +device = max25e0 + +[network] +tcp_host = 127.0.0.1 +tcp_port = 7325 +unix_socket = /run/max25/modem.sock +tcp_password = + +[modem] +callerid = CB-0 +callid = QST +ax25_ui = yes + +[reporting] +error_transmissions = yes +voice_transmissions = yes +data_passes = 3 +data_quality_min = 50 +data_pass_seconds = 20 + +[stack] +auto_start = yes + +[devices] +default = max25e0 +max25e0 = max25-bcpr:bc0 + +[device.max25e0] +kiss_link = /tmp/max25-bcpr/kiss-bc0 +max25_bcpr_ini = /etc/max25/max25-bcpr.ini diff --git a/share/max25/max25d.lite.crdop.ini.example b/share/max25/max25d.lite.crdop.ini.example new file mode 100644 index 0000000..f47cf6a --- /dev/null +++ b/share/max25/max25d.lite.crdop.ini.example @@ -0,0 +1,40 @@ +; MAX25-Stack-Lite — CRDOP sound-card modem (example) +; Localhost only: max25d, crdop, and terminal on the SAME PC. +; Copy: sudo cp share/max25/max25d.lite.crdop.ini.example /etc/max25/max25d.ini +; Also: cp stacks/crdop/share/crdop.ini.example ~/.config/crdop/crdop.ini +; Wizard: ./scripts/max25-lite-setup.sh + +[daemon] +mode = standalone +hardware = soft-modems +device = soft-crdop + +[network] +tcp_host = 127.0.0.1 +tcp_port = 7325 +unix_socket = /run/max25/modem.sock +tcp_password = + +[modem] +callerid = CB-0 +callid = QST +ax25_ui = yes + +[reporting] +error_transmissions = yes +voice_transmissions = yes +data_passes = 3 +data_quality_min = 50 +data_pass_seconds = 20 + +[stack] +auto_start = yes + +[devices] +default = soft-crdop +soft-crdop = crdop:default + +[device.soft-crdop] +host = 127.0.0.1 +port = 8515 +listen = yes diff --git a/share/max25/max25d.lite.ini.example b/share/max25/max25d.lite.ini.example new file mode 100644 index 0000000..c7c17b9 --- /dev/null +++ b/share/max25/max25d.lite.ini.example @@ -0,0 +1,44 @@ +; MAX25-Stack-Lite — one radio, one terminal (example) +; Localhost only: max25d + max25-terminal on the SAME PC. No LAN / no remote terminal. +; Copy: sudo cp share/max25/max25d.lite.ini.example /etc/max25/max25d.ini + +[daemon] +mode = standalone +hardware = tncs +device = tnc2c + +[network] +tcp_host = 127.0.0.1 +tcp_port = 7325 +unix_socket = /run/max25/modem.sock +tcp_password = + +[modem] +callerid = CB-0 +callid = QST +ax25_ui = yes + +[reporting] +error_transmissions = yes +voice_transmissions = yes +data_passes = 3 +data_quality_min = 50 +data_pass_seconds = 20 + +[stack] +auto_start = yes +serial_watch = yes +serial_watch_interval = 60 +stack_recover_only = yes +serial_bootwait_escalate = yes +serial_bootwait_escalate_after = 3 + +[devices] +default = tnc2c +tnc2c = /dev/ttyUSB0 + +[serial.tnc2c] +baud = 19200 +line = 8n1 +dtr_rts = yes +kiss_entry = kiss_on diff --git a/share/max25/max25d.service.example b/share/max25/max25d.service.example new file mode 100644 index 0000000..e3281fb --- /dev/null +++ b/share/max25/max25d.service.example @@ -0,0 +1,13 @@ +[Unit] +Description=MAX25 daemon (MainAX25-Stack) +After=network.target + +[Service] +Type=simple +ExecStart=/usr/local/bin/max25d -c /etc/max25/max25d.ini +Restart=on-failure +RuntimeDirectory=max25 +# Unix socket: /run/max25/modem.sock (writable when RuntimeDirectory=max25) + +[Install] +WantedBy=multi-user.target diff --git a/share/max25/serial/README.md b/share/max25/serial/README.md new file mode 100644 index 0000000..04c5310 --- /dev/null +++ b/share/max25/serial/README.md @@ -0,0 +1,22 @@ +# Per-device serial env (max25d / boot-wait) + +Install copies for site-specific paths: + +```bash +sudo mkdir -p /etc/max25 +sudo cp share/max25/serial/tnc2c-serial.env.example /etc/max25/tnc2c-serial.env +# edit device path and baud +``` + +Search order (`paths.py`): `/etc/max25/` → `local/` → `share/max25/serial/` → `stacks/tncs/`. + +**Other device families** use different site config (same `[devices]` pattern in `max25d.ini`): + +| Hardware | Site config (not serial env) | +|----------|------------------------------| +| BayCom/based (`max25e0` / bcpr) | `share/max25-bcpr/max25-bcpr.ini.example` → `/etc/max25/max25-bcpr.ini` | +| CRDOP (`soft-crdop`) | `stacks/crdop/share/crdop.ini.example` | + +Device model overview: [../../README.md](../../README.md) (scope) · [../../stacks/max25-bcpr/README.md](../../stacks/max25-bcpr/README.md) (BayCom/based). + +Terminal client profiles (connection only): [`../clients/`](../clients/README.md). diff --git a/share/max25/serial/pccom-kiss-serial.env.example b/share/max25/serial/pccom-kiss-serial.env.example new file mode 100644 index 0000000..6fbbe00 --- /dev/null +++ b/share/max25/serial/pccom-kiss-serial.env.example @@ -0,0 +1,9 @@ +# PC-COM / USB KISS serial — copy to /etc/max25/pccom-kiss-serial.env +# Used by max25d devices pccom-kiss and baycom-kiss (kiss-raw-serial backend). +# Stable path preferred: /dev/serial/by-id/usb-... +PCCOM_KISS_DEV=/dev/ttyUSB0 +PCCOM_KISS_BAUD=9600 +PCCOM_KISS_LINE=8n1 +PCCOM_KISS_DTR_RTS=no +PCCOM_KISS_RADIO_BAUD=1200 +HYBBX_SERIAL_LINE=8n1 diff --git a/share/max25/serial/pktnc2-serial.env.example b/share/max25/serial/pktnc2-serial.env.example new file mode 100644 index 0000000..ba25cc7 --- /dev/null +++ b/share/max25/serial/pktnc2-serial.env.example @@ -0,0 +1,5 @@ +# PK-TNC2 serial — copy to /etc/max25/pktnc2-serial.env +# Example: onboard UART /dev/ttyS5 +PKTNC2_DEV=/dev/ttyS5 +PKTNC2_BAUD=9600 +PKTNC2_LINE=8n1 diff --git a/share/max25/serial/tnc2c-serial.env.example b/share/max25/serial/tnc2c-serial.env.example new file mode 100644 index 0000000..10b2576 --- /dev/null +++ b/share/max25/serial/tnc2c-serial.env.example @@ -0,0 +1,8 @@ +# TNC2C serial — copy to /etc/max25/tnc2c-serial.env +# Example: onboard UART /dev/ttyS4 +TNC2C_DEV=/dev/ttyS4 +TNC2C_BAUD=19200 +TNC2C_LINE=8n1 +TNC2C_RADIO_BAUD=2400 +TNC2C_MODEM=tcm3105 +HYBBX_SERIAL_LINE=8n1 -- cgit v1.3.1