

QuadCom 8b
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
3MAX232N
PDIP-160℃~+70℃ 120Kbps 2 2 4.5V~5.5V Transceiver PDIP-16 RS232 ICs ROHSTexas InstrumentsRS232 ICs74LS04PC
PDIP-140℃~+70℃ 4.75V~5.25V 6 6.6mA 74LS PDIP-14 InvertersonsemiInverters74LS139PC
PDIP-1622ns 74LS 8mA Decoder Single Supply PDIP-16 Signal Switches, Multiplexers, DecodersonsemiSignal Switches, Multiplexers, Decoders
README
README.mdWrap030
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
| Address | Device | Size/Stride | IRQ | Description |
|---|---|---|---|---|
| 0x00000000 | RAM | 16MB | Main memory, all of lower 2GB reserved for RAM | |
| 0x80000000 | ROM | 128kB | Boot ROM, up to 512kB supported. Overlays 0x0 on reset | |
| 0x80080000 | ACIA | stride 4 | 1 | M6850 ACIA for bootloader & MultiBASIC supervisor |
| 0x80180000 | Overlay | N/A | Write-only register for disabling startup overlay | |
| 0x80200000 | IDE Cmd | stride 2 | 3 | IDE Command registers |
| 0x80202000 | IDE Ctrl | stride 2 | 3 | IDE Control registers |
| 0x80300000 | Com 0 | stride 1 | 5 | 16550-compatible UART |
| 0x80300008 | Com 1 | stride 1 | 5 | 16550-compatible UART |
| 0x80300010 | Com 2 | stride 1 | 5 | 16550-compatible UART |
| 0x80300018 | Com 3 | stride 1 | 5 | 16550-compatible UART |
| 0x80300020 | Com 4 | stride 1 | 5 | 16550-compatible UART |
| 0x80300028 | Com 5 | stride 1 | 5 | 16550-compatible UART |
| 0x80300030 | Com 6 | stride 1 | 5 | 16550-compatible UART |
| 0x80300038 | Com 7 | stride 1 | 5 | 16550-compatible UART |
| 0x80f00000 | Timer | 64kB* | 6 | Write-only timer interval; see below |
| N/A | NMI | N/A | 7 |
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 16 | 1uF | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 |
| 8 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | JP12, JP13, JP22, JP23, JP32, JP33, JP42, JP43 |
| 8 | Conn_02x02_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_Vertical | JP11, JP14, JP21, JP24, JP31, JP34, JP41, JP44 |
| 7 | 100nF | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C3, C4, C5, C6, C7, C24, C25 |
| 6 | 4k7 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1, R2, R3, R4, R5, R6 |
| 6 | LED | LED_THT:LED_D3.0mm_Horizontal_O1.27mm_Z2.0mm | D1, D2, D3, D4, D5, D6 |
| 4 | DE9_Plug | Connector_Dsub:DSUB-9_Male_EdgeMount_P2.77mm | COM1, COM2, COM3, COM4 |
| 4 | M3 | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H4 |
| 4 | MAX232 | Package_DIP:DIP-16_W7.62mm | U3, U4, U5, U6 |
| 1 | 100uF | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C1 |
| 1 | 10uF | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C2 |
| 1 | 4-171826-4 | QuadCom_8b:TE_4-171826-4 | J5 |
| 1 | 74LS04 | Package_DIP:DIP-14_W7.62mm | U7 |
| 1 | 74LS139 | Package_DIP:DIP-16_W7.62mm | U2 |
| 1 | CXO_DIP8 | Oscillator:Oscillator_DIP-8 | X1 |
| 1 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1 |
| 1 | Conn_02x04_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical | JP2 |
| 1 | Conn_02x05_Odd_Even | Connector_IDC:IDC-Header_2x05_P2.54mm_Vertical | J6 |
| 1 | Conn_02x08_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_Vertical | JP1 |
| 1 | Conn_02x20_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_Horizontal | J4 |
| 1 | ST16C554D | Package_QFP:LQFP-64_10x10mm_P0.5mm | U1 |
More from techav-homebrew/Wrap030
7- 4 layers106.7 × 83.8 mm

- 2 layers99.1 × 99.1 mm

- 2 layers106.7 × 83.8 mm

- 2 layers106.7 × 99.1 mm

- 2 layers106.7 × 83.8 mm

- 4 layers106.7 × 88.9 mm

- 2 layers106.7 × 83.8 mm

Similar boards
- 2 layers279.4 × 203.2 mm

Z180GDC
lynchaj/rhyophyre
Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller
249 parts12 - 2 layers220 × 173.3 mm

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 mm

- 4 layers254 × 254 mm

- 2 layers300 × 200 mm

Model 150
Julesc013/project-carbon
Hardware and software for custom CPUs, FPUs, and computer systems.
377 parts - 2 layers218 × 125 mm

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 mm

Nabu rs232
hanshuebner/nabu-rs232
MOVED to code.netzhansa.com/hanshuebner/nabu-rs232. This GitHub mirror is archived.
31 parts5 - 2 layers221 × 179 mm

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.