; 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:, or crdop: 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