summaryrefslogtreecommitdiff
path: root/stacks/max25-bcpr/README.md
blob: bc1039aed561ae652d9bbbbc11e14b9322fd25e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# max25-bcpr — BayCom/based PC-COM SER12 (MAX25 userspace)

**Status: available · usable** — default CMake build ON (`MAX25_BUILD_MAX25_BCPR=ON`).

Public mark: **BayCom/based**. Product path: **max25-bcpr** / daemon **max25-bcprd**. Host device: **`max25e0`** (forks `max25e0:bcN` only).

| Layer | Role |
|-------|------|
| Hardware | BayCom/based TCM3105-class AFSK (bits↔tones + PTT) |
| Host | SER12 bit clock, HDLC, KISS PTY via **max25-bcprd-init** → unprivileged **max25-bcprd** loop |
| KISS release | **`/tmp/max25-bcpr/kiss-bc0`** → HyBBX `baycom` transport |
| Device id | **`max25e0`** only — never `bcpr` / `bcpr-bc0` product ids |
| Not | TNC · digipeater · BBX · kernel BayCom product |

Internal C sources may still use `bcpr_*` symbols — product face is **max25-bcpr** only.

## Build (default)

```bash
cmake -S . -B build
cmake --build build --target max25-bcprd max25-bcprd-init test_hdlc_offline
install sets **setuid** on `max25-bcprd-init` (chmod 4755).
```

Opt-out: `-DMAX25_BUILD_MAX25_BCPR=OFF`.

## Offline smoke

```bash
stacks/max25-bcpr/tools/max25-bcpr-ctl -c stacks/max25-bcpr/share/max25-bcpr.ini.example smoke
```

```bash
# Daemon
sudo stacks/max25-bcpr/tools/max25-bcpr-ctl -c /etc/max25/max25-bcpr.ini start
sudo stacks/max25-bcpr/tools/max25-bcpr-ctl -c /etc/max25/max25-bcpr.ini status
sudo stacks/max25-bcpr/tools/max25-bcpr-ctl -c /etc/max25/max25-bcpr.ini stop

# Interactive diag / force-TX ladder (operator — prove RX first)
sudo -n stacks/max25-bcpr/tools/max25-bcpr-ultimate-diag.sh --menu
```

## max25d + HyBBX cohost

```ini
[daemon]
mode = hybbx-cohost

[features]
max25_bcpr = 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
ipv4 = 127.0.0.25/8
ipv6 = ::25/128
```

max25d starts **max25-bcprd-init** (live) or **max25-bcprd** (dry-run), then **releases** KISS PTY for HyBBX attach. Verified standalone Main co-host 2026-07-31 / 2026-08-01.

Forks `max25e0:bcN` inherit `ipv4` / `ipv6` from `max25e0` unless set on the fork section.

## Related

| Goal | Doc |
|------|-----|
| Operator guide | [../../docs/BAYCOM.md](../../docs/BAYCOM.md) |
| Freeze caveats (dev) | [../../docs/BAYCOM-FREEZES.md](../../docs/BAYCOM-FREEZES.md) |
| HyBBX attach | [../../docs/HYBBX.md](../../docs/HYBBX.md) |

## License

Algorithms from Linux `baycom_ser_fdx` / `hdlcdrv` (GPL) — `NOTICE.md`.
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com