Roland Mc-50 & Gotek floppy Emulator

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 first FlashFloppy installation has to be done either by serial or USB link to a PC host (as explain on this wiki page). As I don’t have an USB-TTL adapter, I had do do it over USB.

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).

the 4GB USB stick and the fat32 FS

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 :

2 Comments

  1. Ivar Römer
    December 26, 2020
    Reply

    Hi,
    Thanks for this manual! It was very helpfull to implement my Gotek drive in my roland Mc-50!
    Thanks again!
    Ivar

    • erwan
      December 26, 2020
      Reply

      Hello ! Really happy to hear that it was useful for someone 😁 cheers !

Leave a Reply

Your email address will not be published. Required fields are marked *