Setting up PPP Networking
The most versatile arrangement for an RPi900 radio network is to furnish the remotes with a full internet service over the radio link. Having a full TCP/IP connection to your remote Raspberry Pi can make in-situ maintenance and modification much simpler. You can login via SSH to change settings and add functionality, without needing physical access to the remote site. Finally, you can run any network protocols and services you desire–web, SSH, file sharing, even media streaming.
Networking is achieved by establishing a Point-to-Point Protocol (PPP) connection over the radio link. The base then forwards that connection to the local network and thence the internet.
This tutorial describes a situation in which the base Raspberry Pi is connected to a local area network with subnet
10.1.1.0/24 in CIDR notation. (Yours may be different; e.g.
192.168.1.0/24 is also common.) Connection can be via
eth0 ethernet or
wlan0 wireless. Static IP addresses are used for simplicity; you may need to reserve some static IP address space on your router.
Installing PPP Software
When installing the package you will be reminded about the
/etc/rpi900-ppp.conf configuration file. Edit this file to set the local IP address. If the RPi900 is to act as a base station, you should also specify the name of its internet-facing network interface:
eth0 for ethernet or
wlan0 for wifi.
Finally, configure PPP authentication by adding a password to
Alternatively, use the authentication abilities of the DNT900 itself and disable PPP authentication:
Operation of the PPP service is automatic once the software is installed and the system rebooted. The
DeviceMode register of the local radio is interrogated to determine whether the RPi900 is acting as a base station. When a linked radio is detected, a PPP service for that radio is launched automatically. If the RPi900 is a base station, the requisite address proxying and IP forwarding is also enabled.
On your base station, you can observe a successful PPP connection to a remote RPi900 by checking the systemd journal:
Confirm the connection with a ping:
You should now be able to log in to the remote RPi900 over the radio link using SSH. Not bad!
If you’re operating multiple remotes, the base RPi900 will launch a separate PPP instance for each of them. It’s possible to selectively allow or deny PPP to specific radios; see the package documentation for more details.
Operation in Transparent Mode
The rpi900-ppp package supports operation on remote radios without using the rpi900 line discipline service installed or in use. This involves operating the radio in transparent mode, with the PPP service attached directly to the
ttyAMA0 serial port. With this arrangement the remote RPi900 cannot access its radio’s registers, but this may not be necessary since they can still be accessed via the base RPi900 when linked.
As described in the documentation, you must ensure some DNT900 register values have the correct values for transparent-mode operation on the remote RPi900:
TxTimeout register values may also need adjustment to maximise throughput.) Then, to set up transparent-mode operation for PPP:
The main benefit of transparent-mode operation is a reduced workload on the remote Raspberry Pi, since the DNT900 line discipline is not running. It is also required if you’re running your radios in dynamic TDMA mode, since the DNT900 line discipline does not work well in this mode.
Behind the Scenes
The rpi900-ppp package lets you set up PPP networking on the RPi900 very quickly. Nonetheless, it’s helpful to understand how these services are provided. I recommend a quick look at the contents of the package, in particular the systemd
.service files which manage the PPP connection for base and remotes, and the udev
.rules file which selectively launches the services when linked radios are detected.
The best place to start learning more about PPP is on the Raspberry Pi itself: