Skip to the content
2 layers107.5 × 80.3 mmD32 disk controller, the printed circuit board in 3D

Recreation of DragonDos disc controller cartridge

Size
107.5 × 80.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
29
Nets
106
Pads
284
Tracks, vias
1,011, 279
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
5 Jul 2023
Updated
23 Mar 2026

Overview

D32 disk controller is an open-source printed circuit board by jimbro1000, from the jimbro1000/DragonDiscController repository on GitHub, published under the MIT licence. It is a 2-layer board of 107.5 × 80.3 mm with 29 parts on 106 nets, routed with 1,011 tracks and 279 vias.

It is built around the 74HCT00D, 74HCT04D and 74HCT139D, with the 74HCT174D and 74HCT74D among its other parts. Its parts include 9 ICs, 6 resistors, 4 capacitors, 4 connectors and 1 diode.

Main components

5

README

README.md

Dragon 32/64 Disk Controller Card

This project contains the design and build documents for a recreation of the DragonDos disc controller render of controller pdb

Design

The schematics use a WDC WD2797 disc controller IC as the core of the board, this is consistent with the original DragonData design. Other 2797 ICs from different manufacturers should still work

Other than the rom and controller the discrete logic chips are surface mount to help with the availability of components. In all cases the surface mount parts are of the largest versions available to try and make the assembly of the board feasible for hand soldering

Progress

In the current state the board is untested

The PCB layout is (very) generous on dimensions and needs work to shrink it down. Iterating on this won't change the functionality and should significantly reduce the size of the board, and hence the cost of fabrication

Assembly and BoM

Until the board progresses to a point where it can be tested the assembly instructions and the proven bill of materials are left unpublished

Calibration

  1. Adjust the RPW timing - measure the pulse width of the TG43 signal from pin 29 on U2. Use R10 to fix the pulse at 600ns

  2. Adjust the WPW timing - measure the pulse width of the signal from pin 3 of U6, pin 31 of U2, or pin 22 of the IDC connector (the IDC pin is inverted). Use R9 to fix the pulse at 300ns

  3. Adjust VC0 timing - measure the frequency of the DIRC signal from pin 1 of U6, pin 16 of U2, or pin 18 of the IDC connector (the IDC pin is inverted). Use C3 to set the signal at 250KHz

Complete Adjustment Procedure

The official documentation identifies a more complex and thorough adjustment procedure. Where !TEST is referenced you can use the test point on the board at J1. Pin 1 is connected to !TEST on U2 (pin 22)

Write Precompensation
  1. Set !TEST to high (1)
  2. Strobe !MR on U2 Pin 19
  3. Set !TEST to low (0)
  4. Measure pulse width on U2 Pin 31
  5. Adjust R9 until pulse width is 300ns
  6. Set !TEST to high (1)
Data Separator
  1. Set !Test to high (1)
  2. Strobe !MR on U2 pin 19
  3. Check that !5/8 and !DDEN are set properly. U2 pin 17 and 37
  4. Set !TEST to low (0)
  5. Measure pulse width on U2 Pin 29
  6. Adjust R10 until pulse width is 600ns
  7. Measure frequency on U2 pin 16
  8. Adjust C3 until frequency is 250KHz
  9. Set !TEST to high (1)

Parts

29
QtyValueFootprintReferences
41KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R3, R8
210KPotentiometer_THT:Potentiometer_Bourns_3296Y_VerticalR9, R10
110nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC8
11N4148Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1
1220RResistor_THT:R_Array_SIP6RN1
1220nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2
122pFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1
127C64Package_DIP:DIP-28_W15.24mmU1
14MHzCrystal:Crystal_HC18-U_VerticalY1
15.5-65pfd32_cart:Trimmer-10mmC3
174HCT00Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU5
174HCT04Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU9
174HCT139Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU4
174HCT174Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU3
174HCT74Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU8
174LS06Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU6
174LS07Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU7
1EDGEd32_cart:D32_EdgeJ3
1IDC_FloppyConnector_IDC:IDC-Header_2x17_P2.54mm_Latch_HorizontalJ2
1TestPoint_ProbeTestPoint:TestPoint_Loop_D2.50mm_Drill1.0mmTP3
1TestPoint_TG43TestPoint:TestPoint_Loop_D2.50mm_Drill1.0mmTP2
1TestPoint_WDTestPoint:TestPoint_Loop_D2.50mm_Drill1.0mmTP1
1WD2797Package_DIP:DIP-40_W15.24mmU2
1~{MR}TestPoint:TestPoint_2Pads_Pitch2.54mm_Drill0.8mmJ4
1~{TEST}TestPoint:TestPoint_2Pads_Pitch2.54mm_Drill0.8mmJ1

Similar boards

  • 2 layers368.3 × 215.9 mmTTL 6510 Computer fab, the printed circuit board in 3D

    TTL 6510 Computer fab

    StefansAI/TTL-6510-Computer

    Yet another CPU made from TTL chips

    330 parts1
  • 2 layers200 × 150 mmMSX ONE, the printed circuit board in 3D

    MSX ONE

    jdgabbard/MSX-ONE-Computer

    MSX 1 Computer from discrete parts

    114 parts28GPL-3.0
  • 2 layers133.3 × 85.2 mmUart, the printed circuit board in 3D

    Uart

    nojan1/project-wrass

    The purpose of Project Wrass is to develop the Wrass 1.

    54 parts
  • 2 layersLM80C R6, the printed circuit board in 3D

    LM80C R6

    leomil72/LM80C

    A Z80-based homebrew computer withTMS9918, AY-3-8910, Z80 CTC, Z80 PIO, and Z80 SIO

    153 parts123GPL-3.0
  • 4 layers296 × 220 mmInterposer, the printed circuit board in 3D

    Interposer

    AlexColello/discrete-nes

    A discrete logic implementation of the Nintendo Entertainment System where EVERY single gate output and EVERY memory bit is visible via LED. Watch a complete NES flip every bit in real-time.

    107 parts
  • 2 layers100 × 100 mmNESPICO RevB, the printed circuit board in 3D

    NESPICO RevB

    spaghetti-computer/lasagna

    Status: schematic ERC 0 violations. PCB 100x100 mm, 2 layers, parts placed, NOT ROUTED (499 unconnected items). Freerouting 2.1.0 left about 271 nets unrouted after 4 passes. Do not order from fab/ yet.

    106 parts
  • 2 layers297.2 × 180.3 mm8bit computer, the printed circuit board in 3D

    8bit computer

    vascofazza/8bit-cpu

    Schematics & code for my 74LS-based 8-bit MK1 CPU

    377 parts317MIT
  • 4 layers244.5 × 393.4 mm8-bit cpu, the printed circuit board in 3D

    8-bit cpu

    nurk/8-bit-cpu

    8-bit CPU

    458 parts

Questions

How big is the D32 disk controller PCB?

It measures 107.5 × 80.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the D32 disk controller use?

29 parts, built around the 74HCT00D, 74HCT04D, 74HCT139D and 74HCT174D. 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 D32 disk controller KiCad files?

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

Can I use the D32 disk controller design in my own project?

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