Skip to the content
PCBKitNew board
2 layers88.9 × 59.7 mmFloppyBird, the printed circuit board in 3D

Disk interface to adapt an PC floppy drive to an IBM 31SD/51TD controller

Size
88.9 × 59.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
33
Nets
69
Pads
232
Tracks, vias
645, 34
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
10 Jul 2026
Updated
2 Oct 2026

Overview

FloppyBird is an open-source printed circuit board by inmbolmie, from the inmbolmie/FloppyBird repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 88.9 × 59.7 mm with 33 parts on 69 nets, routed with 645 tracks and 34 vias.

It is built around the 74LS04PC, 74LS32SC and 74LS86. Its parts include 8 capacitors, 7 resistors, 6 ICs, 4 switches and 3 connectors. It belongs with the interfaces and adapters boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

FloppyBird

Disk interface to adapt a Gotek floppy emulator to an IBM 31SD/51TD controller

Floppybird

Introduction

This adapter will allow to connect a regular PC Floppy or Gotek emulator to an IBM 8" host like those big-iron machines that use the IBM 31SD and 51TD diskette drives.

Diskette S38 Datamaster Displaywriter

The target device is a Gotek emulator running FlashFloppy, but in theory it should be possible to use a real 5,25 1.2MB floppy drive, as they have 80 tracks (only 77 are needed to emulate an IBM Diskette) and they rotate at 360 RPM like the regular IBM 8" diskettes.

Note that a newer Gotek with the AT32F435 controller is required as older devices with the STM32F105 and AT32F415 controllers are not powerful enough to emulate IBM diskettes reliably. The adapter has only been tested with the FlashFloppy firmware and HFE disk images generated with the HxC software.

The current version is capable of reading, writing and formatting Diskette 1 (SSSD), Diskette 2 (DSSD) and Diskette 2D (DSDD) types on a AT32F435 Gotek.

If you like it or want to make your unit drop me a message to inmbolmie [AT] gmail.com

Here it is the adapter installed alongside a custom Gotek in my IBM 4701-2 controller, installed on the place where the IBM 51TD Diskette drive uses to be:

PCB Diskette

Note that this project is still work in progress, it only has been tested on my own hardware.

Video

Video showing my IBM 4701-2 controller formating a 2D Diskette on a HFE disk image with FloppyBird and a AT32F435 Gotek: https://www.youtube.com/watch?v=8-GUEEburHQ

Usage

  • Assemble your board and flash the promicro with the provided firmware
  • Update the AT32F435 Gotek to FlashFloppy version >= 3.44
  • Configure these parameters on your FF.CFG file:
text
interface = ibmpc
host = unspecified
max-cyl = 77
side-select-glitch-filter = 0
track-change = realtime
write-drain = realtime
index-suppression = no
head-settle-ms = 10
motor-delay = ignore
chgrst = step
  • Generate your HFE file from the HxC application, for example from a source IMD file.

HxC

  • Connect the 36-pin IBM host IDC connector to the adapter on the side labelled as "IBM Host diskette connector". The connector is usually keyed with a missing B2 pin, but take a look for the correct orientation of pin B1. This connector provides +5V power to the adapter on pin B1 so no external power is needed.
  • Connect the 34-pin PC Floppy connector to the adapter on the side labelled as "PC Floppy drive connector". The connector is sometimes keyed with a missing pin 3, but take a look for the correct orientation of pin 1.
  • If you are using a Gotek, you can get power for it from the "Gotek power" connector using an appropriate cable, like a PC Flopply to PC Flopply power adapter cable. Do not use this connector to power other devices like real floppy drives. Also do not use it to power the adapter, the power will come from the 36-pin IBM host IDC connector.

Board installed in the system, IBM diskette interface connector on the left (pin B1 is facing to the bottom), Gotek floppy cable on the right (pin 1 is also facing to the bottom), floppy power connector to power the Gotek on the top (+5V pin facing to the left).

Installed

  • Put the diskette mode switch to the correct mode depending on your diskette type to be emulated (Diskette 1 for one side, Diskette 2 for two sides). This has to be managed manually when changing between different types of Diskette images.
  • Put the drive selection switch to the correct value depending on your floppy drive letter, A or B
  • You normally want to put the motor control switch on the "motor always on" position to better emulate a real 8" drive (note that the Gotek usually ignores this signal and will always "spin" the disk when the drive is selected).

Now your floppy emulator is ready to be used.

Note that the adapter will honor the PC floppy disk protection signal, so if the disk is write protected it will prevent it to be written by the IBM host. The IBM host does not have any provision to manage "write protected" diskettes though, so in that case it will generate an error if it tries to write to the diskette.

Apart from HFE images, IMG disk images also work partially. They have the problem that if a sector is marked as "control field" there is no way to store the correct Address Mark on a IMG disk image, so the Gotek will fail to write that data properly and will result in a write error.

Hardware

Adapter Board

Power consumption

The adapter board providing supply to a Gotek AT32F435 drags around 350 milliamps from the IBM host through the +5V rail.

Schematics

Schematics for the 1.3 version.

schematic schematic PDF

PCB

Sample image of the PCB from Kicad.

PCB

Real board partially assembled (v1.1) as it comes from the PCB fabricator. It came with all the SMT components already installed:

PCB

Board totally assembled with the Pro-micro, pin headers and floppy power connector installed. Note that pin B2 (key pin) is missing from the IBM host connector, and pin 3 (key pin) is also missing from the PC Floppy connector:

PCB

Software

You can get the Arduino source code for the ProMicro in the FloppyBird directory. You can compile it and program on the ProMicro using the regular Arduino IDE.

KiCad Project

You can get the current project files in the KiCad directory.

Fabrication files

You can order directly your boards from a PCB fabricator, just the board or partially assembled with the files on the pcb directory (gerber, bom and component placement files in jlcpcb format).

In any case you will have to add:

  • The ProMicro controller
  • The pin headers
  • Optionally a floppy drive power connector if you want to power the gotek from the board (never use this connector to power a real floppy disk drive)

Before ordering anything note that this project is still work in progress, it only has been tested on my own hardware.

How it works

These are the main points that need to be carried out for conversion:

Logic levels

The PC floppy signals are open collector low-level active, while the IBM signals are push-pull high-active. The 74 series chips provide most of the conversion.

Track addressing

The PC floppy adresses tracks by a direction and step signal, and gets a track_0 signal when the head is placed at such track. The IBM interface lacks a track_0 signal and you control direcly the stepper motor signals access_0 and access_1. The ProMicro initializes the head position at track 0 at startup. From there it gets track of where the head is actually positioned and translates the required signals on both sides.

Read data signal.

The read_data_signal is gated by the head_engage signal. It is essentially the same signal for both systems but with reversed polarity.

Write data signal.

The PC floppy write data signal generates a full pulse (falling and rising edge) for each magnetic flux transition that needs to be recorded on the disk surface, while in the IBM interface the write_data signal records a magnetic flux transition for each signal level change (rising or falling edge). The conversion is made via a homemade edge detector (74LS04 + 74LS86) followed by a pulse generator (TLC555). The TLC555 is used over other 555 variants due to its superior speed and stability.

The write_gate and erase_gate signals are terminated with 90 ohm resistors like in the original IBM drives to prevent phantom writes. Those signals control the write_data signal going to the PC floppy and they are feed back to the IBM controller on the write_erase_sense signal

Drive selection signals.

Contrary to the PC Floppy, an 8" drive is permanently turning, so the PC drive should be by default always rotating to emulate this and generate the index signal continously. Optionally a swith is provided to make the drive rotation conditional to the head_engage signal.

3D-printed case

I provide the STL file to create the case shown in the pictures and video in the case directory. It allows to install a Gotek with an oled display and rotary switch in the slot designed for the IBM 51TD drive on my 4701 controller.

Note that the case is a very simple design, it is a tight fit, it is quite difficult to install, may not be adequate for other systems and also has no provision to secure it using screws or other mounting methods, it stays in place just by itself.

Case

Parts

33
QtyValueFootprintReferences
6100nFCapacitor_SMD:C_0603_1608MetricC3, C4, C5, C6, C7, C8
41KResistor_SMD:R_0603_1608MetricR10, R11, R12, R13
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
291Resistor_SMD:R_1206_3216MetricR1, R15
110nFCapacitor_SMD:C_0603_1608MetricC1
1150pFCapacitor_SMD:C_0603_1608MetricC2
12KResistor_SMD:R_0603_1608MetricR2
174LS04Package_SO:SO-14_3.9x8.65mm_P1.27mmU5
174LS06Package_SO:SO-14_3.9x8.65mm_P1.27mmU3
174LS08Package_SO:SO-14_3.9x8.65mm_P1.27mmU1
174LS32Package_SO:SO-14_3.9x8.65mm_P1.27mmU6
174LS86Package_SO:SO-14_3.9x8.65mm_P1.27mmU4
1Diskette Type Selectiondpdt_2:SW-SMD_SS-3235S-L3.00SW3
1Drive Selectiondpdt_2:SW-SMD_SS-3235S-L3.00SW4
1Floppy powerConnector_Molex:Molex_SL_171971-0004_1x04_P2.54mm_VerticalJ2
1IBM 51TD HostConnector_PinHeader_2.54mm:PinHeader_2x18_P2.54mm_VerticalJ3
1Motor always ondpdt_2:SW-SMD_SS-3235S-L3.00SW5
1PC floppy interfaceConnector_PinHeader_2.54mm:PinHeader_2x17_P2.54mm_VerticalJ1
1PROMICROpromicro:SPARKFUN_PRO_MICROB1
1ResetButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW1
1TLC555xDPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2

Questions

How big is the FloppyBird PCB?

It measures 88.9 × 59.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the FloppyBird use?

33 parts, built around the 74LS04PC, 74LS32SC and 74LS86. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the FloppyBird KiCad files?

From the inmbolmie/FloppyBird repository on GitHub, at the commit this page was made from: the board is KiCad/FloppyBird.kicad_pcb and its schematic KiCad/FloppyBird.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the FloppyBird design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers370.8 × 298.5 mm8 Bit Computer, the printed circuit board in 3D

    8 Bit Computer

    The-Invent0r/8-bit-Computer-PCB

    These are the KiCAD files for my 8-Bit Computer.

    323 parts142
  • 4 layers337.6 × 105.7 mmISA CGA, the printed circuit board in 3D

    ISA CGA

    hkzlab/CGA_Redux

    The Color Graphics Adapter Redux board is a more or less faithful clone of the original IBM CGA, based on the original schematics

    170 parts56
  • 2 layersSap be, the printed circuit board in 3D

    Sap be

    kyllikki/eda-designs

    EDA designs

    148 parts32MIT
  • 4 layers194.5 × 188.6 mmMyCpu, the printed circuit board in 3D

    MyCpu

    fortinsylvain/MyCpu

    Home brew CPU Hardware with 1-bit ALU implementation using 74LSxx, a micro-code and assembler coded in C#.

    162 parts18MIT
  • 2 layers236.8 × 169.8 mmTK2000, the printed circuit board in 3D

    TK2000

    clemarfolly/Microdigital-TK2000

    Reprodução da PCB do TK-2000 da Microdigital, clone do Micro-Professor MPF-II

    212 parts17
  • 2 layers200 × 150 mmAlu base, the printed circuit board in 3D

    Alu base

    lorenzonotaro/lncpu

    LNCPU is a design for a hobby 8-bit processor.

    45 parts8
  • 2 layersNewBrain Original, the printed circuit board in 3D

    NewBrain Original

    flypie/NewBrain

    Newbury/Grundy NewBrain schematics

    209 parts5GPL-3.0
  • 2 layers221.5 × 149.5 mmZX1, the printed circuit board in 3D

    ZX1

    misterblack1/zenith_zt1

    Information gathered on the Zenith ZT-1 / ZT-10 / ZT-11 and ZTX/ZT-x-A variants

    140 parts5