Friday, October 12, 2018

Getting FlashFloppy onto the Gotek SFRC922D

These flash floppy emulators from Gotek are great. But they are even better when they have the FlashFloppy firmware loaded.

The SFRC922D model I have seems to have some extra holes under the serial/boot jumpers.

I chose to use the USB/DFU programming method for which you will need a USB A-A cable.

Here's how I put the Gotek into boot mode for DFU:


Jumpers for boot/DFU mode. Wirelinks above the white connector.


Once in boot mode you can program the device using the dfu-util:

I'm using OSX, and used homebrew to install the dfu-util.

brew install dfu-util

dfu-util --list

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/

Deducing device DFU version from functional descriptor length
Found Runtime: [05ac:8206] ver=1965, devnum=2, cfg=1, intf=2, path="93-2", alt=0, name="UNKNOWN", serial="UNKNOWN"
Found DFU: [0483:df11] ver=2200, devnum=1, cfg=1, intf=0, path="29-2", alt=1, name="@Option Bytes  /0x1FFFF800/01*016 e", serial="STM32"
Found DFU: [0483:df11] ver=2200, devnum=1, cfg=1, intf=0, path="29-2", alt=0, name="@Internal Flash  /0x08000000/128*002Kg", serial="STM32"

dfu-util -a 0 -s :unprotect:force -D FF_Gotek-v0.9.30a.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
Deducing device DFU version from functional descriptor length
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


dfu-util -a 0 -D FF_Gotek-v0.9.30a.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
Deducing device DFU version from functional descriptor length
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 = 89556)
parsing element 1, address = 0x08000000, size = 26092
Download [=========================] 100%        26092 bytes
Download done.
parsing element 2, address = 0x08008000, size = 63448
Download [=========================] 100%        63448 bytes
Download done.

done parsing DfuSe file