Semi-anonymous product manager and maker Tristam R. has penned a guide to building a travel router out of a Raspberry Pi single-board computer running OpenWrt — complete with a custom 3D-printed case.
Designed for taking out-and-about, a travel router isolates your personal hardware from relatively untrusted networks in hotels, cafes, and the like while also providing connection sharing services for hotspots that charge per-device. Better still, they can also create a secure tunnel to your home network or a commercial virtual private network (VPN) server, and can even block adverts, trackers, and known malicious sites.
Rather than buying an off-the-shelf device, though, Tristam set about making his own using a Raspberry Pi single-board computer. The first step: giving the machine a second Wi-Fi radio. "OpenWrt only supports a few USB Wi-Fi card chipsets so you don't have many options here," Tristam admits. "I picked up a generic AR9271-based USB Wi-Fi card which works, but the throughput is terrible so I will try a few more in the future."
The build is, as the above suggests, based around the OpenWrt Linux distribution — which is designed specifically for routers and other network appliances. Once installed, OpenWrt can be configured from a browser for use as a simple router. Then come the bonus features — starting with AdGuard, a DNS-based advert and tracking blocking system. Then, Tristam set about configuring the router to send all traffic via an OpenVPN-compatible virtual private network for improved privacy and security.
"All testing was done using a [Raspberry] Pi 3B+ as my OpenWRT router which connected to my Ubiquiti AC LR access point using the Pi's internal Wi-Fi. All tests were done over a VPN to my Oracle cloud server which can sustain 100Mbps upload and download," Tristam explains of his performance testing — which revealed a peak throughput of 38.2Mbps via Ethernet and 20Mbps over Wi-Fi.
Finally, Tristam's build gained a physical shutdown button to avoid SD card corruption, a custom-designed 3D-printed case, and even a compact OLED display for stats — though this, the maker admits, isn't quite working yet.
"I wasn't able to get the SSD1306 based 0.91" OLED to work with OpenWrt because the Adafruit library for the display depends on the RPi.GPIO Python library," he explains. "I reached out to Ben [Croston] who maintains the RPi.GPIO library on PyPI but we haven't been able to get it to compile on OpenWrt."