Using a Raspberry PI Zero W to hold disk images for the BBC Micro

At Christmas I treated myself to a new machine, a BBC Master 128. It’s that new that it was manufactured somewhere between 1986 and 1993 – if you are into retro-computing you know what this is like.

Anyhow, this machine is in very good condition. It’s been refurbished with new capacitors in the power supply (something you must check on the BBC’s as they can go bang if you aren’t careful).

BBC Master 128 with GoTek drive to the left & another project sitting on top of it so ignore that 😉

It also came with a GoTek USB floppy emulator. This is a device that connects to the BBC (and others like the Amiga) as if they were a real floppy drive but instead of a disk it uses a standard USB stick which can contain images of the original disks. So many you could probably have a copy of every bit of software for the BBC micro ever produced on floppy on one stick!

Now this is perfectly fine if you have your software collection on it & rarely add anything but if you are doing any development and need to regularly add or update disks it’s a pain as you have to unplug the USB stick, put it in to your main development box, mount it, copy a 200K file (thats the capacity of a standard BBC DFS 40 track disk!), unmount it then plug it back into the drive.

You can tell it’s tedious and if regularly done could cause additional wear & tear to the contacts!

So to make this far easier I took a Raspberry PI Zero W and used it as the flash drive. In the above picture you can see a white USB cable in the GoTek, thats got the Zero on the other end of it.

If I needed to add or update a disk I can simply use SCP to copy the file to the pi and the GoTek then sees the new disk, I select it & the BBC can read it. From upload to opening it on the BBC can literally be a few seconds.

So, how to set it up? Well the MagPi has an article from about 2 years ago which tells you how https://magpi.raspberrypi.org/articles/pi-zero-w-smart-usb-flash-drive

This is a good article so I’m not going to repeat it here except you don’t need to do all of them & there’s a few errors in that article which I will repeat here:

  • Step 4 is not needed if you used a minimal Raspbian image – i.e. no need to use the full desktop one, use the lite image as the base.
  • For step 6 use the GoTek as the power source not the TV as used in the article & yes for now it is being powered solely by the drive it’s being used on.
  • You can ignore Step 9 as we won’t be using multimedia – you could use a bbc disk image here instead
  • Step 10 has the errors. Here it mentions gmassstorage this is wrong & I think it’s the formatting on the site that’s broken it. Replace all references to that with g_mass_storage not the _’s, some CMS’s use _ to say underline which you can see on that page.
  • Steps 11 & 12 are optional – I did them but don’t use them

That’s effectively it, except a comment about powering the PI (which is in step 6 of that article).

Now I am using the GoTek to power the Pi – so there’s just a single USB cable from the GoTek to the usb port on the PI (not the PWR IN). This is fine as my GoTek has it’s own power supply.

However if you were to use an external supply for the PI, then you must cut the red wire inside the micro USB cable else you’ll feed additional power from the PI to the GoTek as well as the PI suddenly having two 5V supplies feeding it – which will cause damage to both devices!

Author: petermount1

Prolific Open Source developer who also works in the online gaming industry during the day. Develops in Java, Go, Python & any other language as necessary. Still develops on retro machines like BBC Micro & Amiga A1200

4 thoughts on “Using a Raspberry PI Zero W to hold disk images for the BBC Micro”

  1. Hi, I’m the FlashFloppy developer: I really must set this up myself, it will make testing so much easier. Actually I could make a fully-automated test rig!

    I’m Maidstone based as well by the way. Perhaps we should meet for a beer (or other beverage) after lockdown. 🙂

    Cheers,
    Keir

    1. I’m currently refurbing an Amiga A1200 which has a GoTek for the internal floppy. That’s currently on hold but I’m intending to do the same for it – on the PI side it should be identical to the BBC.

      As for a beer, we should do once things have calmed down.

      1. Internal Gotek mods are great.

        The issue with Amiga internal Goteks is traditionally the need for external surfaces: display, buttons, Flash drive. The Pi is a nice solution for the Flash drive, and the UI can be dealt with via the FF_OSD project: An STM32 Blue Pill connected in place of display on the Gotek I2C bus, puts FlashFloppy display onto the analogue RGB, and can intercept hotkey presses on the keyboard for Gotek control. No case cutting required!

        What would be even more awesome would be to coexist with original drive, and have Gotek=DF0 at reset unless the original drive has a disk inserted. That is a bit more hacking. 🙂 Slightly easier (but still needing some circuitry) is to control DF0/DF1 switching via FF_OSD via a keyboard hotkey… that’s implemented in at least one clone (https://www.sellmyretro.com/offer/details/amigotek-ff-osd-39893)

      2. The A1200 already had the gotek installed when I got it with the rotary switch on the back & the screen glued to the top.

        My plan is to remount it further inside with a PI0W in a new 3D printed mount. The display then where the floppy would have been (ok not ideal but ok for my purposes) & the rotary where the eject button would have been.

        I’ve got an external drive for it so for the Amiga can still read floppies.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s