This document describes the TARPN packet radio network design as of October 24, 2017 with some minor corrections added January 2020.
This design is subject to change because the contributor base is growing and we're all learning.
TARPN is a description of nodes, of a network, and of a design philosophy.
TARPN is not a club.
There are no dues.
TARPN creates a network which thrives when fully saturated.
Most packet radio systems require sparsely occupied channels, i.e. the channel is mostly quiet.
In a sparse network, the network suffers failures and disconnections if there are more than two conversations on the channel at a time and the total channel occupancy exceeds 20%.
The TARPN can survive full occupancy indefinitely.
TARPNs specifically stay away from dependency or burden from Internet and other commercial networks.
The whole point of the TARPN is to show what we can do without Internet.
There are a couple of goals which are not contradictory.
- We want a fun project, attractive to young new hams, with a potentially large participation, and which can be started in new areas without prior installed base.
- We want to reinvigorate packet radio such that it builds a installed base and infrastructure which is not overloaded by new users, and which is fun to operate for old users.
- We want to create a large ham radio project which attracts hams of multiple backgrounds and a wide range of technical expertise.
- We want to create a digital communications infrastructure which could be useful by hams to move some functions from Internet back to ham radio.
We want to build the largest Amateur Radio packet network we can. To do that we came up with an optimum of several factors:
- minimum cost
- minimum complexity
- maximum involvement, knowledge-transfer, participation, and growth per member
- maximum operator freedom and transparency
- support-ability -- needs to be something any ham can get started in.
I would not have gotten involved with the project until the system looked like it could be done with a modicum of all of these factors.
- The TARPN is based on G8BPQ nodes running on a Raspberry PI computer with outboard TNCs or TNC emulators.
All participating stations are a part of the network.
There are no transient users.
Each and every radio used for packet to access the network is a full-time-up radio dedicated to talking to a single particular neighbor node.
All links between node sites are point to point, from one node to one other node.
Because there are no competing stations on the frequency of the point to point link, the timers controlling the TNC's access to the frequency are set for maximum performance.
At a single node, all transmitters are asynchronously transmitting, sometimes at the same time, multiplying the bandwidth in and out of each node.
See this Youtube video showing three demonstration nodes, each with two links.
The network can be considered to be a daisy chain of nodes where each node to node connection approximates a wire between the node sites.
A TARPN node can be simultaneously operating on all of its links at the same time.
Messages could be inbound on 3 links, for instance, at once, and the node can asynchronously switch from receive to transmit or transmit to receive on each link independently.
Ideally, and by design, all messages transmitted by a node are received by the neighbor.
There is no expectation, by design, that any messages are lost at all.
The system makes very good use of the limited data capacity available in our low technology radios and modems.
A TARPN network is completely decentralized.
The individual nodes have complete control over their transmit and receive timing, with cooperation from each link neighbor.
A fragment of the network is fully operational within the confines of that fragment.
The G8BPQ node software takes care of monitoring the links to the neighbors, and of keeping a list of nearby neighbors.
Users connect to a command-line prompt at a node, and then tell the node to connect to one of the known neighbors.
Once the user's connection has reached the desired node, they can connect to the owner of the node, or to a resources or application that is part of that node.
The user can also inspect the network connections and network link performance, uptime, counters and statistics.
There is no automated end-to-end routing capability enabling web-browser-like access to resources.
This has advantages in that participants learn the network and have intimate knowledge of the working and non-working equipment along a route.
TARPN node features
The packet station consists of a Raspberry PI running Debian Linux and with one or more TNCs.
The Raspberry PI boots from a slow solid state SD card.
It is totally silent and runs very cool.
The PI supports Ethernet, HDMI output, and has a built in hub providing two or four external USB sockets.
A keyboard and mouse could be attached.
A USB hub could be attached.
WiFi is included if the Raspberry PI 3 is used, else there are many WiFi adapters supported for the older Raspberry PIs.
The software load provided by the TARPN install scripts (see Builders section on this web site) include these features:
- TARPN-HOME provides GUI access to the chat network, BBS mail send and receive, and diagnostic pages.
The web application enables connection from any LAN connected browser for in-home access to the network.
Laptop, cellphone, tablet, or locally on the Raspberry PI can share the connection and all will be updated with the same information.
TARPN-HOME permits moving from device to device with continuous conversation.
- A TARPN node can be operated via SSH links from a PC workstation on the local LAN. This can be via WiFi or Ethernet.
- VNC from any workstation.
- Minicom terminal emulator for taking incoming calls -- with Ring sound effect
- Audio support via the Raspberry PI sound output including a ring sound when Minicom takes a connect, ring when BBS mail arrives, and an optional periodic sound if any link is off-line
- G8BPQ node software called piLinBpq.
The node software permits a network operator to analyze their own station to identify configured links and to test the performance of the links.
In addition, a list of all other participant stations within four hops and the best-route from this node to the distant node are available.
The operator can step to neighbor nodes and do the same analysis at each other location.
- Local applications can connect to the G8BPQ node and then out into the network or to other local applications.
- Supplied scripting and utilities provides a shell terminal for connecting out from local PCs or the Raspberry PI to the network with up to 14 separate outbound sessions and 1 inbound session.
- G8BPQ BBS service permits directly entering and reading messages which may be delivered to or from other network BBS stations.
Messages can be 10s of Kilobytes in length and can include UUencoded attachments.
- Mechanism for diagnosing links to make it easy for a new installation to be aligned, and for existing installations to be monitored, and diagnosed.
This system includes a pair of test functions, one to receive (tarpn listen #), and one to generate test data (tarpn linktest #).
The system includes a background task which generates bi-hourly unsolicited beacons with performance information out every port of the node.
The system includes a background task to monitor for the performance beacons and to accumulate a log of link performance.
- Support for TNC-PI daughter card (shield card) TNC. Tools for scanning I2C bus and configuring the I2C based TNC-PI TNCs
- Tools for enumerating USB connected FTDI serial interfaces used for USB NinoTNCs and other KISS TNCs
- Support for serial port TNCs in KISS mode using USB to serial adapters
- Up to 6 TNC-PI, and a combination of USB-serial or other USB TNCs for a total of 12.
This is expandable up to 31 total ports with some script changes. Note, in early 2020 this is changing. Until that time almost all TNCs used in the TARPNs were TNC-PI. Our new NinoTNC is a USB FTDI device. We'll start using those instead of the now discontinued TNC-PI.
- piTermBpq, a Raspberry PI specific varient of the BPQtermTCP program -- runs in the Raspberry PI GUI -- can also accept connections from the Linux or MSWindows versions
of the BPQtermTCP program.
TNCs and Radios -- Making Links
After installing the OS, utilities, applications and the TARPN scripts on the Raspberry PI, you are ready to start hooking up radios.
Each TNC may be wired to a single radio which can establish a link to some other TARPN node.
When establishing frequencies and bands you must make sure that one of your radios in transmit will not block the reception of a packet by another of your radios.
A suggested TARPN node site would have 3 radios, one each on 51, 145, and 440Mhz.
You can acquire an antenna like the Comet GP-15, and three commercial radios, like the Vertex FTL-1011, Kenwood TK760H, and Kenwood TK805D, three TNC cards, and a Diamond MX-2000 Triplexer.
With 100' of LMR400 coax cable and several connectors you can build an entire three port node for about $700, not including cabinetry, antenna mounts, lightning protection, power supplies and batteries.
Using the 3 port TARPN node described above you can now make links to neighbor nodes and begin building a network.
Your 51Mhz Vertex can talk 20 miles through forest to another same kind of radio.
440Mhz radios have much shorter range.
If you are lucky enough to have a tall structure or view-home to work from, you can get much longer range out of 440Mhz.