Packet Radio Node
Planned, and a while off. The board's side is coming in firmware 1.3.0 at the earliest. This page describes the design as it stands; nothing on it can be installed yet.
Status: not yet on air. The parts are identified. The first step is passive listening on 145.01 and 145.05 with an RTL-SDR and Direwolf, checking MHEARD for a few days before picking a frequency or a peer.
By KE9CXN.
Goal
Put the µnleashed BBS on the amateur packet network, so RF callers reach it with a callsign instead of a telnet client.
Why not RTTY
RTTY has no addressing, no acknowledgements and no sessions. It is a broadcast teletype mode. AX.25 gives connected-mode sessions with sequence numbers, retries and routing, which is what a BBS needs.
The chain
Radio, Digirig, an Orange Pi running Direwolf, linbpq and a small gateway, an ESP32 docking radio on the Pi's USB, and ESP-NOW to the µnleashed board. The Pi is only the radio's modem: everything BBS stays on the board.
A caller connects
A station on the air connects to the node with its callsign, and the node acknowledges it.
The callsign is handed over
Direwolf turns the tones into AX.25 frames; linbpq and the gateway pass the caller to the docking radio, which carries it to the board over ESP-NOW, callsign first.
Two stations key at once
Both frames arrive garbled, the CRC fails, and neither gets an ACK.
A retry, then an ACK
After a random backoff the first station sends again, and this time it is acknowledged.
It does not have to be the radio I have. Any 2 m FM radio with a mic or data jack, and audio out from its speaker or data socket, will do. Mine is a TYT TH-9800, the worked example below.
- Direwolf is the software TNC: audio tones to AX.25 frames, plus PTT.
- linbpq (G8BPQ) owns the AX.25 sessions, NET/ROM routing and the internet links.
- linbpq's applications interface hands a caller off over TCP to localhost and passes the callsign as the first line.
- A small gateway service on the Pi takes that connection and passes it to the docking radio.
- The docking radio, an ESP32 on the Pi's USB, carries it to the board over ESP-NOW.
- The ESP32 board never touches the radio. The Pi owns everything fragile, and holds nothing of the BBS.
How callers get in
The board's side is coming in firmware 1.3.0. How a ham logs in over the air, and what any other callsign gets, is on the ham radio page. Accounts are made only over telnet or SSH. No main password is ever sent over the air.
Cabling, no soldering
On the TH-9800:
- An RJ-12 male screw-terminal pigtail to the mic jack: pin 6 PTT to the Digirig's TRRS Ring 2, pin 5 MIC to Ring 1, pin 4 GND to Sleeve, pins 1, 2 and 3 open.
- A cut mono patch cable from the rear speaker jack: the centre conductor to the TRRS Tip, the shield open.
- Everything converges on one TRRS male screw-terminal plug into the Digirig's AUDIO socket.
- USB-C from the Digirig to the Pi.
- Known gotcha: newer TH-9800 units have reported reversed RJ-12 pin wiring, so jumper pin 6 to pin 4 first to confirm PTT before committing.
Another radio has its own mic and data pinout: take it from the radio's manual, and confirm PTT the same way before wiring the rest.
Joining the network
- Over RF: NET/ROM broadcasts between neighbouring nodes. Automatic, no sysop involved.
- Over the internet: AXIP/AXUDP peering, by mutual agreement with another sysop, the way AllStar links repeaters in FM38.
Sharing the channel
Simplex, half duplex. Direwolf uses CSMA, with DCD sensing and a persistence roll before keying. A collision produces a bad CRC, no ACK, and a retry after backoff. Hidden terminals, two stations that cannot hear each other, are the known weakness.
Regulatory
US Part 97.221 governs automatically controlled digital stations and permits automatic control on 6 m and shorter wavelengths. Portugal falls under ANACOM, so the Part 97 framing is a reference model only. Telnet callers posting to RF under my callsign is third-party traffic, and my responsibility.
Software
- Armbian on the Orange Pi 3B, not the vendor image.
- Direwolf from the Armbian repository.
- linbpq from G8BPQ's 64-bit ARM binaries, or from source.
The RK3566 is heavy overkill for 1200 baud.