On a whim, I picked up a GoTek 3.5" 1.44M floppy emulator from eBay for just under USD$29 shipped.

It arrived in a padded mailing envelope with a "China Post" shipping label. Inside, inside of a plastic bag was a "mini" CD and the GoTek unit with a couple of mounting screws.

Here's a top view of the GoTek next to a traditional (NEC) 3.5" 1.44M drive:

Here's what the front looks like:

There is a two-digit LED 7-segment display that shows which disk image that you're working with. There's a USB "A" female connector for the USB flash pen drive and then two buttons and LEDs. One button increments the tens' digit of the image number; the other, the units' digit. There is no carryover--each button cycles 0 through 9.

Here's the odd thing--there's a green LED that shows when the drive is selected; there's another hole in the panel for a red LED that shows when the USB stick is being written to, but the LED leads were not bent into place, as a subsequent photo of the innards shows. I bent it into position and it works fine.

Chinese craftsmanship.

Note the 3 recessed holes on the top in the first photo--inside of each is a Phillips-head screw. Unscrew all three and the plastic case comes apart. The cable attachments match those of a standard 3.5" drive:

Note that there's also two headers in addition to the usual power connector and cable interface. The larger header appears to handle things such as drive select number. The smaller 10-pin header that I thought at first was a JTAG programming header turns out to be a connection for an external 7 segment display and selection butttons that parallels the internal one.

Okay, so what's in this thing?

Not much, is there? The 64 pin TQFP in the middle of the PCB is an ST Micro ST32F105RBT6 ARM MCU, complete with 32KB SRAM and USB OTG. The small crystal can is an 8MHz job and the SOIC is a plain-Jane 74HC04 hex inverter. The voltage regulator is a AMS1117 3.3V 1A LDO unit and there are various discretes.

One interesting aspect was the 4-wire interface to the 7-segment displays consisted of power and 2 I/O lines from the MCU. On the display board itself, there are a bunch of current-limiting resistors for each LED display segment and two 74HC164 8-bit shift registers. So the MCU just shifts in the conents of the display. No decoders or anything fancy.

This could have been done with three wires (one MCU I/O by placing a 100K resistor in series with the shift register data input. A short pulse then strobes in a "0"; a long one, a "1". But apparently that's too clever by half.

Let's take a look at how the thing operates (as intended next)...