A few years ago, I have bought a Roland MC-50 (a midi sequencer released in 1990) on a flea market.
It was only 15 Euros (without PSU) but no guarantee that it was going to operate properly. Unfortunately, it was booting but I was not able to use the floppy drive which is very annoying. This was making it useless (impossible to save songs or settings).
After some years and a quick research, I decided that it was time to get this baby back to life. I bought a SFR1M44-U100K Gotek floppy emulator. Why ? Because it was not expensive, black and listed as being compatible with FlashFloppy. I was really happy to discover this alternate open-source firmware ! As you will see later, It was definitely a good move !
This page was written as a documentation for myself but could, maybe, be useful for others. Especially Linux users that are fighting with such a piece of hardware. I particularly like the DIY concept, especially when it comes to saving old iconic gear.
Once the Gotek was received, I decided to keep it simple and try the beast with the stock firmware. It was delivered without documentation or software… Very handy !
- I was able to format the USB stick by pressing the 2 buttons on the Gotek at the same time
- The MC-50 was then outputting an error message : “Attn ! NO DISK Press STOP”
- I then tried to copy an empty MF2-DD (720K) virtual floppy on the USB stick. The MC-50 was complaining differently : “Error22 DISK I/O See owner’s manual”. This model is the SFR1M44-U100K and does not seem to be able to read 720K floppies (the picture below is a capture from the owner’s manual).
Let’s go the open-source way ! This limitation seems to be irrelevant with the FlashFloppy firmware ! Yummy !
The Gotek seems to be often delivered without some of the required pins, so you might have to remove the board from its shell and had some. For information, the reference SFRC922D is printed on the board.
What is needed :
- Some basic soldering skills or some fun/luck with paperclips
- A female/female Dupont cable and some jumpers
- A USB-A to USB-A cable
- A USB stick (4GB or less)
Once, the extra pins have been added, you will have to set them up :
- Put a jumper on J3 (like the yellow one) and a Dupont female-female (like the orange one). These 2 connections will have to be removed once the firmware has been flashed.
- Put a jumper on S0 on the other group of jumper over the floppy connector. This one will have to stay in place once the firmware has been flashed.
Remove the temporary pinout and can connect the Gotek to your PC with the USB-A to USB-A cable.
Some logs when the gotek is plugged to the PC host : usb 1-1: new full-speed USB device number 66 using xhci_hcd usb 1-1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice=22.00 usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1: Product: STM32 0x418 DFU Bootloader usb 1-1: Manufacturer: STMicroelectronics usb 1-1: SerialNumber: STM32 lsusb | grep STM Bus 001 Device 066: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
You will then have to :
- download the latest release of the FlashFloppy, unzip it and locate the dfu file (FF_Gotek-v3.22.dfu at the time of writing).
- install dfu-util (“apt-get install dfu-util” if you are using Debian or derivative distribution). This utility will upload the FlashFloppy firmware to the Gotek (follow the 2 steps below)
This command will unprotect the Gotek device :
# dfu-util -a 0 -s :unprotect:force -D FF_Gotek-v3.22.dfu dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Match vendor ID from file: 0483 Match product ID from file: df11 Opening DFU capable USB device... ID 0483:df11 Run-time device DFU version 011a Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuERROR, status = 10 dfuERROR, clearing status Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 011a Device returned transfer size 2048 DfuSe interface name: "Internal Flash " Device disconnects, erases flash and resets now
This command will upload the FlashFloppy firmware to the Gotek device :
# dfu-util -a 0 -D FF_Gotek-v3.22.dfu dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Match vendor ID from file: 0483 Match product ID from file: df11 Opening DFU capable USB device... ID 0483:df11 Run-time device DFU version 011a Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuERROR, status = 10 dfuERROR, clearing status Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 011a Device returned transfer size 2048 DfuSe interface name: "Internal Flash " file contains 1 DFU images parsing DFU image 1 image for alternate setting 0, (2 elements, total size = 112612) parsing element 1, address = 0x08000000, size = 30328 Download [=========================] 100% 30328 bytes Download done. parsing element 2, address = 0x08008000, size = 82268 Download [=========================] 100% 82268 bytes Download done. done parsing DfuSe file
Now, it’s time to put the Gotek inside the MC-50 (but you should definitely test that things are working properly before screwing everything back in place).
The next step is to deal with the USB stick that could contain a HUGE amount of floppies ! You will have to create and format a fat32 partition (this can easily done with Gparted).
Once the USB stick has been formatted, you need to put some empty MF2-DD (720K) floppies on it.
# /sbin/mkdosfs -C floppy_0.img 720 # file floppy_0.img empty.img: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 2, root entries 112, sectors 1440 (volumes 32 MB), Media descriptor 0xf9, sectors/FAT 3, sectors/track 9, serial number 0x5cb06074, unlabeled, FAT (12 bit), followed by FAT
You can then duplicate this file (“cp floppy_0.img floppy_1.img”) and copy the *.img to the USB stick. Each file will become a floppy that can be selected with the Gotek buttons and operated from the MC-50 (ex: INITIALIZE [DISK], SAVE [SONG FILE] and so on).
You can even loop mount the floppy image and have a look at what has been done by the MC-50 !
# mount -o loop floppy_0.img /media/floppy # cd /media/floppy/ # ls CONFIG2.MRP CONFIG.TNB DUMMY MC500DIR.TNB TNB00000.SNG # cd ~ # umount /media/floppy/
The show must go on !
Thanks and further readings :
- Keir Fraser for FlashFloppy
- Diceman63 for the useful informations in this gearslutz thread
- Llamamusic is also providing helpful information on this page
- Some interesting technical information about the Gotek SFR1M44-U100K are available on this blog
- An interesting PDF with technical instructions on how to upgrade a Roland MC-50 to a MC-50mkII
- Marceau from https://www.atarinside.com/ for the test floppy. I can give it back to you, now 🙂