summaryrefslogtreecommitdiff
path: root/share/max25/max25d.ini.example
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 /share/max25/max25d.ini.example
Initial push
Diffstat (limited to 'share/max25/max25d.ini.example')
-rw-r--r--share/max25/max25d.ini.example173
1 files changed, 173 insertions, 0 deletions
diff --git a/share/max25/max25d.ini.example b/share/max25/max25d.ini.example
new file mode 100644
index 0000000..fdac117
--- /dev/null
+++ b/share/max25/max25d.ini.example
@@ -0,0 +1,173 @@
+; MainAX25-Stack — max25d daemon (Linux only)
+; Copy to /etc/max25/max25d.ini or pass MAX25D_INI=
+
+[features]
+; PC-COM / SER12: max25-bcpr userspace (BayCom/based). Kernel baycom = legacy.
+baycom = yes
+pccom = yes
+max25_bcpr = yes
+; T-Modem-c1224 USB KISS half-TNC (Pico) — off unless stuffed
+tmodem = no
+
+[daemon]
+; Operating mode: standalone | service | hybbx-main | hybbx-cohost | hybbx-host
+; HyBBX attach (release serial/KISS to hybbxd): hybbx-main | hybbx-cohost | hybbx-host
+; or [hybbx] release_attach=yes on standalone
+mode = standalone
+; Drop to unprivileged user after stack prep (when started as root via run-max25d.sh)
+; user = max25
+; group = max25
+; Default hardware when per-device hardware= is omitted
+hardware = tncs
+; Legacy single-device id (used when [devices] is absent)
+device = tnc2c
+
+[devices]
+; Linux host: ONE RF device per max25d (design rule). Pick one id below.
+; Layout examples still under design — do not enable two backends on one host.
+; Serial path, baycom:<modem>, or crdop:<profile>
+default = tnc2c
+tnc2c = /dev/ttyS4
+; pktnc2 = /dev/ttyS5
+; --- PC-COM / BayCom/based: max25-bcpr userspace SER12 (default product path) ---
+; Uncomment ONE RF device — max25e0 for PC-COM on ttyS0 (adjust serial in max25-bcpr.ini)
+; default = max25e0
+; max25e0 = max25-bcpr:bc0
+; baycom-kiss = /dev/ttyUSB0
+; pccom-kiss = /dev/ttyUSB0
+; baycom-ser12 = baycom:a ; LEGACY kernel path — avoid
+; soft-crdop = crdop:default
+; --- T-Modem-c1224 USB KISS half-TNC (not BayCom/based) ---
+; tmodem = yes ; under [features]
+; tmodem = /dev/ttyACM0
+; Acoustic bench (loopback / ALSA sniff / host daemon):
+; audio-dummy = audio:loopback
+; enabled = tnc2c ; optional — single id recommended
+
+[network]
+; Terminal clients connect here (TCP). Unix socket always enabled on Linux.
+tcp_host = 0.0.0.0
+tcp_port = 7325
+unix_socket = /run/max25/modem.sock
+; Plain-text TCP auth for remote terminals (empty = disabled; Unix socket exempt)
+tcp_password =
+
+[modem]
+; Default IDs — terminal may override live (session scope)
+callerid = CB-0
+callid = QST
+; Send lines as AX.25 UI when yes (CRDOP uses native AX.25 UI display when ax25_ui=yes)
+ax25_ui = yes
+; Banned AX.25 source callsigns — silent RX drop (one per line in file)
+; bans_file = /etc/max25/bans.txt
+
+[reporting]
+; Client-visible error/voice telemetry in STATUS (and EVENT on decode failure).
+; yes = participate in STATUS; no = always report invalid for that field.
+error_transmissions = yes
+voice_transmissions = yes
+; Data quality: N timed passes (good/bad only; voice/noise ignored), min % good.
+; Each pass lasts up to data_pass_seconds (default 20s); full cycle = 3 × 20s.
+data_passes = 3
+data_quality_min = 50
+data_pass_seconds = 20
+
+[stack]
+; Auto-start hardware on daemon start (boot-wait / baycom-pr-ctl / crdopc per device)
+auto_start = yes
+; TNC serial stability: periodic probe + software recovery (power-cycle stays rescue-only)
+serial_watch = yes
+serial_watch_interval = 60
+serial_repair_cooldown = 20
+serial_watch_startup_grace = 45
+; max25d uses --recover-only for TNC stack prep (no power cycle on daemon start)
+stack_recover_only = yes
+stack_retry_interval = 120
+; After N inline repair failures (error-host), escalate to boot-wait subprocess
+serial_bootwait_escalate = yes
+serial_bootwait_escalate_after = 3
+serial_bootwait_escalate_cooldown = 300
+
+; Software TOT (host policy for max25-bcpr / BayCom/based — not radio TOT)
+; Synced into max25-bcpr.ini on stack start. Trip → stop bcpr, tot-paused, auto recover.
+[tot]
+enabled = yes
+max_key_sec = 25
+min_gap_sec = 1.5
+max_consecutive = 3
+max_bursts = 8
+recover_sec = 300
+
+; Detached operator session (CLI — not parsed from ini):
+; max25d --session tmux -c /etc/max25/max25d.ini
+; max25d session start --tmux
+; max25d-session attach
+; Env: MAX25D_SESSION=max25d MAX25D_SESSION_BACKEND=tmux|screen
+
+[serial]
+; Legacy single-device overrides — ignored when [devices] is present.
+; device = /dev/ttyS4
+; baud = 19200
+; line = 8n1
+; dtr_rts = yes
+; kiss_entry = kiss_on
+
+[serial.tnc2c]
+; Per-device serial profile (optional — defaults from stacks/tncs/tnc2c-serial.env)
+; baud = 19200
+; line = 8n1
+; dtr_rts = yes
+; kiss_entry = kiss_on
+
+[serial.pktnc2]
+; pktnc2: 9600 8N1, DTR+RTS off, kiss_entry=auto
+; baud = 9600
+; line = 8n1
+; dtr_rts = no
+; kiss_entry = auto
+
+[serial.tmodem]
+; T-Modem-c1224 USB CDC KISS half-TNC (not BayCom/based)
+; baud = 115200
+; line = 8n1
+; dtr_rts = no
+
+; --- BayCom kernel (LEGACY — prefer bcpr above) ---
+; baycom-ser12 = baycom:a
+; [device.baycom-ser12]
+; kiss_link = /var/run/baycom-pr/kiss
+; modem = a
+; baycom_ini = /etc/baycom/baycom-pr.ini
+
+; --- max25-bcpr device block (when max25e0 enabled above) ---
+; [device.max25e0]
+; kiss_link = /tmp/max25-bcpr/kiss-bc0
+; max25_bcpr_ini = /etc/max25/max25-bcpr.ini
+; ipv4 = 127.0.0.25/8
+; ipv6 = ::25/128
+; Forks max25e0:bcN inherit ipv4/ipv6 from max25e0 unless overridden.
+; Built by default (MAX25_BUILD_MAX25_BCPR=ON). See share/max25-bcpr/max25-bcpr.ini.example
+
+; --- HyBBX co-host / standalone attach (max25d preps, HyBBX opens KISS) ---
+; [hybbx]
+; release_attach = yes
+
+; --- USB/async BayCom KISS serial ---
+; [serial.baycom-kiss]
+; baud = 9600
+; line = 8n1
+; dtr_rts = no
+
+; --- CRDOP sound-card modem (MAX25-SoftModem) ---
+; [device.soft-crdop]
+; host = 127.0.0.1
+; port = 8515
+; listen = yes
+
+; --- Virtual IP netdev (TUN max25d0 — planned near term) ---
+; Full doc: docs/NETDEV.md · interface name is always max25d0
+; [netdev]
+; enabled = no
+; mode = tun
+; ipv4 = 127.0.0.25/8
+; ipv6 = ::25/128
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com