Skip to the content
2 layers99.1 × 99.1 mmQuadCom 8b, the printed circuit board in 3D

Homebrew 68030 computer

Size
99.1 × 99.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
75
Nets
182
Pads
444
Tracks, vias
939, 289
Pours
13
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
31 May 2021
Updated
13 Aug 2026

Overview

QuadCom 8b is an open-source printed circuit board by techav-homebrew, from the techav-homebrew/Wrap030 repository on GitHub. It is a 2-layer board of 99.1 × 99.1 mm with 75 parts on 182 nets, routed with 939 tracks and 289 vias.

It is built around the MAX232N, 74LS04PC and 74LS139PC. Its parts include 25 capacitors, 7 ICs, 6 resistors, 6 diodes and 4 connectors.

Main components

3

README

README.md

Wrap030

An ever-evolving homebrew 68030 computer.

Wrap030 got its name from its beginnings. It started as a wire-wrapped single board computer built largely from parts on-hand and what could be acquired locally. It was incredibly unstable.

Since then, it has gone through several major stages, adding new hardware and updating its memory map along the way. It currently exists as a stack of PCBs with a three ribbon cable main bus linking them. Many odd decisions and design constraints carry forward from that initial wire-wrap prototype.

The primary goal of the project is to learn how to build a 32-bit computer from the ground up, and at that it has been incredibly successful. A secondary long-term goal was to build something capable of running a Unix-like operating system, and has had some success there as well.

A rough log of development is tagged wrap030 on techav.net.

Software

Bootloader

ROM bootloader will read & execute BOOT.BIN from a FAT16-formatted CompactFlash card.

MultiBASIC

MultiBASIC is a minimal just-enough-OS kernel for running 8 simultaneous instances of EhBASIC. It uses the 68030 MMU to implement memory protection and supports pre-emptive multitasking.

NetBSD

In early 2025, the project had finally reached a state where it was stable enough and had all of the critical hardware components to try to port a proper operating system. NetBSD was chosen because of its active m68k development and relative ease of understanding. One month was devoted to attempting to port NetBSD to Wrap030 with the result being a functional single-user root shell. Full multi-user booting was not successful. The results of that work are in a separate repo, netbsd-wrap030.

Hardware

Memory Map

AddressDeviceSize/StrideIRQDescription
0x00000000RAM16MBMain memory, all of lower 2GB reserved for RAM
0x80000000ROM128kBBoot ROM, up to 512kB supported. Overlays 0x0 on reset
0x80080000ACIAstride 41M6850 ACIA for bootloader & MultiBASIC supervisor
0x80180000OverlayN/AWrite-only register for disabling startup overlay
0x80200000IDE Cmdstride 23IDE Command registers
0x80202000IDE Ctrlstride 23IDE Control registers
0x80300000Com 0stride 1516550-compatible UART
0x80300008Com 1stride 1516550-compatible UART
0x80300010Com 2stride 1516550-compatible UART
0x80300018Com 3stride 1516550-compatible UART
0x80300020Com 4stride 1516550-compatible UART
0x80300028Com 5stride 1516550-compatible UART
0x80300030Com 6stride 1516550-compatible UART
0x80300038Com 7stride 1516550-compatible UART
0x80f00000Timer64kB*6Write-only timer interval; see below
N/ANMIN/A7

Startup Overlay

On reset, ROM is overlaid on top of RAM at address 0x00000000. All reads from the lowest 512k addresses will be passed to ROM instead of RAM. Writes are passed through to RAM.

Writing 0 to the overlay register will disable the startup overlay. Attempting to write to the overlay port again should not be attempted.

IDE Controller

The IDE controller is little more than some buffers on the main bus, with a little glue logic for timing. Data bytes are swapped in hardware. This means byte commands can be sent to the interface unmodified, but 16-bit read/write data needs to be swapped in software.

Custom Interval Timer

The interval timer is a minimal custom design implemented using spare macrocells in the DRAM controller CPLD. Writing to the timer register will start the timer count. It will continue counting until it reaches 0, where it will hold until the count register is written to again. Timer interrupt request is asserted when the count reaches 1 and remains asserted until the count register is written to again. Writing 0 to the count register will disable the timer.

Since the timer is part of the DRAM control logic, it latches the least-significant 16 address bits as the count value. The value on the data bus is ignored.

The countdown runs at main bus frequency, 25MHz, so a count of 25,000 would be roughly a 1ms interval (plus interrupt servicing overhead). The maximum count is 65,535, which would be a little over 2.5ms.

Parts

75
QtyValueFootprintReferences
161uFCapacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mmC8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23
8Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP12, JP13, JP22, JP23, JP32, JP33, JP42, JP43
8Conn_02x02_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_VerticalJP11, JP14, JP21, JP24, JP31, JP34, JP41, JP44
7100nFCapacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mmC3, C4, C5, C6, C7, C24, C25
64k7Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R2, R3, R4, R5, R6
6LEDLED_THT:LED_D3.0mm_Horizontal_O1.27mm_Z2.0mmD1, D2, D3, D4, D5, D6
4DE9_PlugConnector_Dsub:DSUB-9_Male_EdgeMount_P2.77mmCOM1, COM2, COM3, COM4
4M3MountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4
4MAX232Package_DIP:DIP-16_W7.62mmU3, U4, U5, U6
1100uFCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC1
110uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC2
14-171826-4QuadCom_8b:TE_4-171826-4J5
174LS04Package_DIP:DIP-14_W7.62mmU7
174LS139Package_DIP:DIP-16_W7.62mmU2
1CXO_DIP8Oscillator:Oscillator_DIP-8X1
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1Conn_02x04_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJP2
1Conn_02x05_Odd_EvenConnector_IDC:IDC-Header_2x05_P2.54mm_VerticalJ6
1Conn_02x08_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_VerticalJP1
1Conn_02x20_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_HorizontalJ4
1ST16C554DPackage_QFP:LQFP-64_10x10mm_P0.5mmU1

More from techav-homebrew/Wrap030

7
  • 4 layers106.7 × 83.8 mmOctoCom, the printed circuit board in 3D

    OctoCom

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    138 parts5
  • 2 layers99.1 × 99.1 mmATX PSU 8b, the printed circuit board in 3D

    ATX PSU 8b

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    48 parts5
  • 2 layers106.7 × 83.8 mmWrap030 DRAM, the printed circuit board in 3D

    Wrap030 DRAM

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    46 parts5
  • 2 layers106.7 × 99.1 mmExp8b, the printed circuit board in 3D

    Exp8b

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    43 parts5
  • 2 layers106.7 × 83.8 mmWrap030 Video, the printed circuit board in 3D

    Wrap030 Video

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    43 parts5
  • 4 layers106.7 × 88.9 mmWrap030 Mainboard, the printed circuit board in 3D

    Wrap030 Mainboard

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    36 parts5
  • 2 layers106.7 × 83.8 mmWrap030 Mezzanine, the printed circuit board in 3D

    Wrap030 Mezzanine

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    36 parts5

Similar boards

  • 2 layers279.4 × 203.2 mmZ180GDC, the printed circuit board in 3D

    Z180GDC

    lynchaj/rhyophyre

    Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller

    249 parts12
  • 2 layers220 × 173.3 mmSF-7017, the printed circuit board in 3D

    SF-7017

    fabiodl/sf7000

    Most of the work was done by Andrea Ottaviani https://github.com/aotta

    68 parts10GPL-3.0
  • 2 layers232.8 × 204.2 mmTIM-011B, the printed circuit board in 3D

    TIM-011B

    Board-Folk/TIM011B

    TIM-011 B Replica Board

    162 parts8
  • 4 layers254 × 254 mmProto1, the printed circuit board in 3D

    Proto1

    ehbc-project/ehbc-proto1-board

    KiCad board designs for EHBC

    174 parts
  • 2 layers300 × 200 mmModel 150, the printed circuit board in 3D

    Model 150

    Julesc013/project-carbon

    Hardware and software for custom CPUs, FPUs, and computer systems.

    377 parts
  • 2 layers218 × 125 mmEVA1 production, the printed circuit board in 3D

    EVA1 production

    roberto314/EVA-1_Reproduction

    Recreation of the very rare K-K Systems EVA-1 Display Adapter for the Epson HX-20 Computer

    116 parts
  • 2 layers119.4 × 58.4 mmNabu rs232, the printed circuit board in 3D

    Nabu rs232

    hanshuebner/nabu-rs232

    MOVED to code.netzhansa.com/hanshuebner/nabu-rs232. This GitHub mirror is archived.

    31 parts5
  • 2 layers221 × 179 mmSun6502, the printed circuit board in 3D

    Sun6502

    Aktr0s/Sun6502

    My 6502 Hobby Computer

    53 parts1

Questions

How big is the QuadCom 8b PCB?

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

What parts does the QuadCom 8b use?

75 parts, built around the MAX232N, 74LS04PC and 74LS139PC. 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 QuadCom 8b KiCad files?

From the techav-homebrew/Wrap030 repository on GitHub, at the commit this page was made from: the board is ExpansionBoards/QuadCom_8b/QuadCom_8b.kicad_pcb and its schematic ExpansionBoards/ATX-PSU_8b/ATX-PSU_8b.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the QuadCom 8b design in my own project?

Its repository states no licence, so its author keeps all rights: ask techav-homebrew before reusing the design.