Gotek+D=Virtual Spectrum Floppy Disk

In the not too distant past, I was made aware of the Gotek Floppy Drive Emulator. This device, very cleverly, stands in as a real hardware floppy drive. I’ve been using a 3.5in floppy drive with my Datel +D Interface for a while but I have found that floppy disks can be a little tempremental due to their age, and I’m not surprised. I bought a batch from eBay and they range from usable to completely useless. Until I was given a box of new-old stock DS/DD disks by my good friend Russell, I wouldn’t have relied on any of them.

Enter the Gotek, the ideal solution. Instead of floppy disks, you use a USB memory Stick that can hold up to 1000 (000-999) virtual disk images. Great! I had to have one. I did a bit of research and, guided by Keir Fraser, I bought the cheapest Gotek drive I could on my favorite online auction site (eBay).

Whilst I waited for the Gotek, I did some research on how to enhance it. I already knew you could add a nice OLED Display, a Rotary Encoder and even a speaker if you wanted authentic disk drive sounds! Another mod was to make a hole for the unused power LED concealed in the case.

I found a post on an Amiga Forum page by Fook42 (Rene) that had details of the Rotary Encoder wiring. Rene kindly gave me permission to repost it here.

Rotary Encoder on Gotek Drive

Rotary Encoder on Gotek Drive

This seemed pretty easy and uses an easy to obtain module. I ordered one, again from eBay (Search for KY-040 Module), and got on with other research. Kier Fraser has written some really nice firmware for the Gotek drives. I understood that the Cortex firmware was no longer supported and HxC had a charge associated with it. I also knew that Kier’s firmware supported the OLED display modification which was a feature I particularly wanted.

Programming the Gotek drive can be done in two ways. You can either use a non-standard USB ‘A’ to USB ‘A’ cable, which I didn’t have, or use a Serial to USB adaptor. Zeb Elwood on Facebook said “(it is easy) to make one by cutting up two USB cables and joining the color-coded wires together, simple as there’s only four. So many products come with USB cables as they’re so cheap.” However, I plumbed for the second option since I had a few Serial to USB adaptors from programming Arduinos etc.

The Gotek arrived in a few days and I had already watched several YouTube videos on how to flash the new firmware by that time. There are plenty to choose from. The one I concentrated on showed flashing the Gotek with Kier’s ‘FlashFloppy’ firmware. I have flashed firmware in devices before so I (thought) it would be plain sailing. However, I did have a few issues. Perhaps one of my connections wasn’t quite making the cut but the connection to the ST Flash Demo software was very flaky and took several attempts to upload Keir’s firmware. However, it did work eventually in exactly the way the YouTube video shows. Additionally, the same video also shows how to fit the OLED Display.

Having flashed the new firmware, and since you have to open the case to solder headers in, I connected the OLED display according to the details in the video and connected power from an adaptor that came with an external hard drive cable. I added a dual floppy drive power splitter to enable this. I was very pleased to see the display reporting ‘FlashFloppy v0.8.7a’ I went on to use the guide image and connect the rotary encoder module. This also worked first time! I was on a roll.

I now compiled a memory stick with files I had obtained on the HxC site. There is a page which holds a set of quick install disk images. Luckily for me, there are versions for the Spectrum. The file I used was ‘EMPTY80D.hfe’ which I took to mean 80 Tracks Double Sided. I copied the file over to the memory stick and plugged it into the Gotek. After a few seconds, the filename EMPTY80D.hfe was displayed. The next part required a little cable and jumper swapping.

First, I configured the Gotek as drive two with the jumper in the rear, and the real floppy drive as drive one by plugging it into the last plug on the floppy cable. I powered up and booted the +D operating files as normal. I then formatted the virtual disk image in the Gotek. I knew I would need some more disk images so I pressed the rotary encoder to activate the EJECT (a feature I found by accident) and removed the USB stick and placed it in my PC. This allowed me to make several copies of the freshly formatted disk image. I made ten in total.

Gotek drive with first disk image

Gotek drive with first disk image

I then renamed the first image ’00-PlusD-SYS.hfe’. and then, after ejecting the USB stick from my PC, I placed it in the Gotek drive and once again, pressed the rotary encoder to enable the stick. It read the filenames in. I then used the rotary encoder to run through the files until I found the image I had renamed. I then copied over the +D system files. It was then time to power down and make the Gotek disk one and the floppy drive disk two. This entailed changing the Gotek jumper again and swap the plugs on the rear of both drives. Powering up I could then boot the +D files from the Gotek virtual drive. A rather long winded process whch is easier to do than to describe!

Now, I copied a couple more disks from actual disks to virtual disk image and renamed them using my PC. When I plugged the memory stick back in the Gotek, I found that the system file disk seemed to have become corrupted, and the Spectrum reported a ‘Sector error’ upon booting or doing a catalogue for the image. It was easily fixed by re-copying the files across after formatting the image but it happened again. I swapped to an SD-Card and USB adaptor which seemed to fix the issue. I suspect that the memory stick I started with is either faulty or imcompatible with the Gotek. I have had no issues with either the SD-Card and adaptor or the new low-profile memory stick I have now got.

Having now set up the drive and disk images, it was time to modify the drive physically. I had recieved the slimmer OLED display by then and I swapped the larger one out. I had noticed that the display had an auto-off procedure enabled. I prefer a constant display. I posted my progress in the FlashFloppy Facebook group and Keir pointed me in the direction of the usage/config file section of the FlashFloppy Github Wiki. The config file can hold lots of options, one of which is for the display time-out. If you set this to 255, it is constant. I also found an option to use a smaller typeface which, since I was going to use the slim display, I also added to my config file.

Next, it was time for some drilling. First of all, I wanted to utilise the red power LED, usually hidden inside the case. I lightly scratched a line across from the middle of the existing LED hole and then upwards from the middle of the left button hole. This gave me the position to drill a suitable hole for the LED. For the rotary encoder, there was already a spot marked on the front of the case. I’m not sure if this was a coincidence but it seemed to be in the perfect place. What was clear though is that the fixing nut of the rotary encoder would partially obscure the Gotek logo in the top right hand corner of the front panel. So I took a craft knife and very carefully shaved the logo off. I then successfully drilled a hole suitable for the rotary encoder.

I then prepared the rotary encoder module. The version I purchased had the resistors mentioned in the guide image. For this reason I wanted to maintain the module as much as I could.

Rotary Encoder Mod

Rotary Encoder Mod

For speed, I simply disconnected the two far pins on the rotary encoder and bent it forward. This was required because the Gotek case wouldn’t allow it to fit as was. I connected two flying wires to the connections. In hindsight, I should have insulated them but I was eager to finish by this time. I will make sure to do so in future.

Rotary Encoder Module Installed

Rotary Encoder Module Installed

Next step was to install the OLED Display. Again, I wanted a quick solution so I chose to use hot-glue to affix the display to the front of the case. I found that the previous seven segment display was fixed in place by two mouldings on the rear of the front panel. I carefully shaved these off with a chisel. This allowed the display to get close to the front of the case. I did find that the residual solder on the header was preventing the display from getting completely flush but this was solved by using cutters to shorten them down. To make sure the display sat at the right level, I cut a small piece of balsa wood to fit in under the display.

OLED Display Installed

OLED Display Installed

Now I had carried out all the mods, I realised that the case lid would need some further work. Because I was going for speed, I was going to leave the DuPont cables I’d used for testing in-situ. I have marked two places where I have cut the case and removed material in the next image.

Gotek Lid Modifications

Gotek Lid Modifications

At the back, I required a large slot to allow the DuPont plugs to sit in the jumper positions and at the front, the display holder required removal. However, after this was done, the lid fits back where it should do.

Completed Gotek Drive with 3.5in Floppy

Completed Gotek Drive with 3.5in Floppy

Using the +D interface, it is usual for the disk light to be on after having been accessed. A finishing touch will be a knob for the rotary encoder. I have ordered a suitable one. now the fun begins trying to find a case for both these drives, although I have been told that Farnell do a suitable model.

Finished Gotek Drive and Low Profile USB Memory Stick

Finished Gotek Drive and Low Profile USB Memory Stick

FlashFloppy 0.9.2a Firmware flashed and knob fitted

FlashFloppy 0.9.2a Firmware flashed and knob fitted

Both drives work well with the Sinclair Spectrum Plus and +D Interface. Many thanks to all the people who helped out with advice and encouragement. A special thanks to Keir Fraser for his great firmware and Kris Cochrane for the informative YouTube video.

This entry was posted in Modding and tagged , , , , , , , , , , , . Bookmark the permalink.