Skip to the content
PCBKitNew board
2 layers106.7 × 99.1 mmExp8b, the printed circuit board in 3D

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

5

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

43
QtyValueFootprintReferences
104k7Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR2, R3, R4, R5, R6, R7, R8, R9, R10, R11
7100nFCapacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mmC3, C4, C5, C6, C7, C8, C9
7M3MountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4, H5, H6, H7
3Conn_02x20_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_HorizontalJ1, J3, J4
274LS244Package_DIP:DIP-20_W7.62mm_SocketU2, U8
1100RResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1
1100uFCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC1
110uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC2
14-171826-4Exp8b:TE_4-171826-4J5
174HCT164Package_DIP:DIP-14_W7.62mm_SocketU6
174LS04Package_DIP:DIP-14_W7.62mm_SocketU7
174LS138Package_DIP:DIP-16_W7.62mm_SocketU3
174LS139Package_DIP:DIP-16_W7.62mm_SocketU5
174LS245Package_DIP:DIP-20_W7.62mm_SocketU1
174LS688Package_DIP:DIP-20_W7.62mm_SocketU4
1Conn_02x09_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x09_P2.54mm_VerticalJP1
1Conn_02x10_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_HorizontalJ2
1PN2222APackage_TO_SOT_THT:TO-92_InlineQ1
1SW_DIP_x08Button_Switch_THT:SW_DIP_SPSTx08_Slide_9.78x22.5mm_W7.62mm_P2.54mmSW1

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 mmOctoCom, the printed circuit board in 3D

    OctoCom

    techav-homebrew/Wrap030

    Homebrew 68030 computer

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

    QuadCom 8b

    techav-homebrew/Wrap030

    Homebrew 68030 computer

    75 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 × 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 layers160 × 100 mmExordisk v1, the printed circuit board in 3D

    Exordisk v1

    roberto314/kees1948_Boards

    kees 1948 Uniflex Remake

    119 parts1
  • 2 layers365.1 × 203.2 mmDIAG, the printed circuit board in 3D

    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 mmRAM, the printed circuit board in 3D

    RAM

    rraider/Seminarkurs2021

    Entwicklung eines turingvollständigen, primitiven Microcontroller in der Software Digital

    44 parts7MIT
  • 2 layers182.9 × 172.7 mmMulti, the printed circuit board in 3D

    Multi

    homebrew8088/8088-PC-Compatible

    8088 PC XT Compatible

    120 parts238GPL-3.0
  • 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
  • 2 layers155.2 × 78.6 mm80ColumnCard, the printed circuit board in 3D

    80ColumnCard

    btb/80ColumnCard

    An Apple II 80-Column Card. Based on the Videx Videoterm

    47 parts43Apache-2.0
  • 2 layersSap be, the printed circuit board in 3D

    Sap be

    kyllikki/eda-designs

    EDA designs

    148 parts32MIT
  • 4 layers340 × 210 mmYddraig, the printed circuit board in 3D

    Yddraig

    ddraig68k/hardware

    Schematic and CAD files for my 68K based computer

    224 parts29MIT