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."

Written in MicroPython, this Gopher server for the Raspberry Pi Pico W is a blast from the past. (📷: Davide Eynard)

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 portable Gopher server offers interested parties a Wi-Fi hotspot to join. (📷: Davide Eynard)

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.

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles