Raspberry Pi Floppy Console

At the end of May 2019 I started really wanting a Raspberry Pi portable for playing PICO-8 carts. Since PICO-8 carts are so small and I wanted that physical cartridge feeling, I figured maybe a floppy drive would do the trick! For a portable, this would mean ending up with something that looked ilke a 90s era floppy drive camera.

Apparently Arne of androidarts.com was thinking along the same lines right around the same time! I think it was independent, but there’s always the chance I saw his tweet and it was bouncing around in my subconsciousness.

However, since I have no soldering skills and didn’t want to give up on having a floppy drive by springing for something like the GameShell, at the end of June I opted to instead build a PICO-8 console. No portability, but it would prove the concept before I committed too much money or real effort into a Pi portable. And the floppy drive would still provide that vinyl-like feeling of intentional, non-browsing consumption.

The parts

The Setup

To make the Pi behave as console-like as possible, I installed Raspbian on the Pi and set up an LXDE autostart file to run PICO-8 on startup when it finds a cart on the floppy drive. (Note that the user autostart file runs instead of the default.) My custom autostart file and startup script can be found here on GitHub.

Then, to access the floppy drive from within PICO-8, I set up the floppy drive at /media/floppy within fstab and added a link to it from within the carts folder. Note that I turned off automount since automount stops the bootup process if the USB floppy drive is empty. Instead, I attempt to mount it in my startup script above.

  echo '/dev/sda /media/floppy vfat owner,group,umask=000,noauto,sync 0 0' | sudo tee -a /etc/fstab
  ln -s ~/.lexaloffle/pico-8/carts/floppy /media/floppy

To customize the boot process, I just followed this guide and made a new Plymouth theme with the PICO-8 logo as a startup image.

The Launcher

PICO-8’s SPLORE doesn't handle navigating the floppy well because it blocks on loading the cart contents for the preview images. This makes navigating the carts on the floppy an exercise in frustration.

To get around the SPLORE limitations, I built a custom launcher to list the carts on the floppy. Using PICO-8’s ability to load one cart from another, you can then load a cart or navigate between carts.

By saving this cart on the SD card and loading it from boot, the console eperience is now complete.

The Build

For the full console effect I got the Retro Brick NES-inspired case. It’s larger than most other Lego-style Pi cases, with barely enough room for the floppy drive after a bit of reconfiguration. Luckily, it includes a lot of support bricks that weren’t strickly necessary, which made changing it up pretty easy.

The Retro Brick build

Modified to fit the floppy

Ditching the hinge

This page last updated August 9th, 2019.