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.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles