Davide Eynard's PicoGopher Puts a '90s Network Protocol on a Raspberry Pi Pico W — and in a Backpack
Packing the height of 1990s network document sharing technology onto a microcontroller, the PicoGopher is retro networking on-the-go.
Maker, developer, and retro network enthusiast Davide Eynard is bringing back the Gopher protocol, hosting a "gopherhole" on a Raspberry Pi Pico W — and packing a battery to make it available over Wi-Fi wherever he goes.
"When I first heard about Gopher, I wondered how small its footprint was," Eynard explains of the protocol, released in 1991 to offer a quickly-implementable system for sharing of documents on a network. "Can you run a Gopher server on a very old computer? Well, of course yes, given the protocol's been around for 30 years. Can you run it on a very small one? Again, yes: gopher.3564020356.org runs on a [Raspberry Pi] 2, and if you wander enough around the gopherspace you will easily end up in a gopherhole served by a Raspberry Pi Zero."
Those, though, proved too powerful for Eynard's fancy. Instead, he turned to something considerably more resource-constrained: The Raspberry Pi Pico W, which has a dual-core Arm Cortex-M0+ microcontroller, 264kB of static RAM (SRAM), and just 2MB of flash storage. Even by the standards of 1991, when a laptop might offer 2MB of memory expandable to 16MB and up to a generous 60MB of hard drive space, that's tight — but not too tight, it transpires.
The resulting "PicoGopher" project implements a functional Gopher server in MicroPython, having started with an HTTP server providing a mock-up of a Gopher server before implementing Gopher properly — complete with the ability to load any file from storage and to translate "gophermaps," for which Eynard uses a "quite simple" approach that "does not really check for correctness of the input file — it just assumes every row returned to the client has to contain four columns as defined in the RFC [Request For Comments]: Item type concatenated with some content, path, domain, and port."
The final step in the project: Making the Gopher server portable. Eynard hooked the Raspberry Pi Pico W to a battery pack and placed it in a backpack. "Now a mirror of my gopherhole follows me," he writes on Mastodon. "If you are in London and see this absolutely legit-looking SSID on the Tube 😅 feel free to join and browse," he adds — referring to the hot-spot delivered by the Raspberry Pi Pico W, called "JOIN ¯\_(ツ)_/¯ ME".
More details on the project are available on Eynard's Gopher site, which is accessible from the modern web using the Floodgap Gopher gateway; the source code for building your own can be found on GitHub under the reciprocal GNU General Public License 3.