

Homebrew 68030 computer
- Size
- 106.7 × 99.1 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 43
- Nets
- 154
- Pads
- 424
- Tracks, vias
- 941, 332
- Pours
- 13
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 31 May 2021
- Updated
- 13 Aug 2026
Overview
Exp8b 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 106.7 × 99.1 mm with 43 parts on 154 nets, routed with 941 tracks and 332 vias.
It is built around the 74LS245SC, 74HCT164D and 74LS04PC, with the 74LS139PC and PN2222A among its other parts. Its parts include 11 resistors, 9 capacitors, 8 ICs, 5 connectors and 1 transistor.
Main components
574LS245SC
-0℃~+70℃ 12ns@5V,45pF 15mA 24mA 4.75V~5.25V 74LS 8 Bidirectional Output enable Schmitt trigger Tri-State - Buffers, Drivers, Receivers, Transceivers ROHSTexas InstrumentsBuffers, Drivers, Receivers, Transceivers74HCT164D
SO-14-40℃~+125℃ 1 14ns@5V,15pF 4.5V~5.5V 500mW 61MHz 74HCT 8 Serial-to-Parallel SO-14 Shift Registers ROHSNexperiaShift Registers74LS04PC
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, DecodersPN2222A
TO-92-3-55℃~+150℃ 1 NPN 1A 300MHz 300mV 40V 625mW NPN TO-92-3 Bipolar (BJT) ROHSNTE ElectronicsBipolar (BJT)
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
43| Qty | Value | Footprint | References |
|---|---|---|---|
| 10 | 4k7 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R2, R3, R4, R5, R6, R7, R8, R9, R10, R11 |
| 7 | 100nF | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C3, C4, C5, C6, C7, C8, C9 |
| 7 | M3 | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H4, H5, H6, H7 |
| 3 | Conn_02x20_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_Horizontal | J1, J3, J4 |
| 2 | 74LS244 | Package_DIP:DIP-20_W7.62mm_Socket | U2, U8 |
| 1 | 100R | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1 |
| 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 | Exp8b:TE_4-171826-4 | J5 |
| 1 | 74HCT164 | Package_DIP:DIP-14_W7.62mm_Socket | U6 |
| 1 | 74LS04 | Package_DIP:DIP-14_W7.62mm_Socket | U7 |
| 1 | 74LS138 | Package_DIP:DIP-16_W7.62mm_Socket | U3 |
| 1 | 74LS139 | Package_DIP:DIP-16_W7.62mm_Socket | U5 |
| 1 | 74LS245 | Package_DIP:DIP-20_W7.62mm_Socket | U1 |
| 1 | 74LS688 | Package_DIP:DIP-20_W7.62mm_Socket | U4 |
| 1 | Conn_02x09_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x09_P2.54mm_Vertical | JP1 |
| 1 | Conn_02x10_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_Horizontal | J2 |
| 1 | PN2222A | Package_TO_SOT_THT:TO-92_Inline | Q1 |
| 1 | SW_DIP_x08 | Button_Switch_THT:SW_DIP_SPSTx08_Slide_9.78x22.5mm_W7.62mm_P2.54mm | SW1 |
Questions
How big is the Exp8b PCB?
It measures 106.7 × 99.1 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Exp8b use?
43 parts, built around the 74LS245SC, 74HCT164D, 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 Exp8b KiCad files?
From the techav-homebrew/Wrap030 repository on GitHub, at the commit this page was made from: the board is ExpansionBoards/Exp8b/Exp8b.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 Exp8b design in my own project?
Its repository states no licence, so its author keeps all rights: ask techav-homebrew before reusing the design.
More from techav-homebrew/Wrap030
7- 4 layers106.7 × 83.8 mm

- 2 layers99.1 × 99.1 mm

- 2 layers99.1 × 99.1 mm

- 2 layers106.7 × 83.8 mm

- 2 layers106.7 × 83.8 mm

- 4 layers106.7 × 88.9 mm

- 2 layers106.7 × 83.8 mm

Similar boards
- 2 layers160 × 100 mm

- 2 layers365.1 × 203.2 mm

DIAG
Nakazoto/CenturionComputer
This is just a simple backup of all the files related to the Centurion that I have stored on my HD. The Wiki itself has far more in-depth information about the Centurion and it's individual cards.
150 parts172 - 4 layers142 × 62 mm

RAM
rraider/Seminarkurs2021
Entwicklung eines turingvollständigen, primitiven Microcontroller in der Software Digital
44 parts7MIT - 2 layers182.9 × 172.7 mm

- 2 layers370.8 × 298.5 mm

8 Bit Computer
The-Invent0r/8-bit-Computer-PCB
These are the KiCAD files for my 8-Bit Computer.
323 parts142 - 2 layers155.2 × 78.6 mm

80ColumnCard
btb/80ColumnCard
An Apple II 80-Column Card. Based on the Videx Videoterm
47 parts43Apache-2.0 - 2 layers

- 4 layers340 × 210 mm
