Skip to the content
PCBKitNew board
4 layers106.7 × 83.8 mmOctoCom, the printed circuit board in 3D

Homebrew 68030 computer

Size
106.7 × 83.8 mm
Copper layers
4
Thickness
1.6 mm
Parts
138
Nets
383
Pads
961
Tracks, vias
2,999, 318
Pours
10
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
31 May 2021
Updated
13 Aug 2026

Overview

OctoCom is an open-source printed circuit board by techav-homebrew, from the techav-homebrew/Wrap030 repository on GitHub. It is a 4-layer board of 106.7 × 83.8 mm with 138 parts on 383 nets, routed with 2,999 tracks and 318 vias.

It is built around the SP3243EEY-L, 74HC240D and 74AHCT125D, with the 74F138D among its other parts. Its parts include 50 capacitors, 34 connectors, 24 resistors, 16 ICs and 8 diodes. It belongs with the FPGA and CPLD boards of this library.

Main components

4

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

138
QtyValueFootprintReferences
4833nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +32
24180Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +8
24Conn_02x02_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_VerticalJ10, J11, J12, J13, J15, J16, J17, J18, J19, J20, J22, J23, J24, J25, J26, J27 +8
8LEDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1, D2, D3, D4, D5, D6, D7, D8
8SP3243EEYPackage_SO:TSSOP-28_4.4x9.7mm_P0.65mmU4, U5, U6, U7, U8, U10, U11, U14
4M3MountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4
374HC240Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU12, U15, U16
3Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ34, J35, J36
28P8C_LED_Shielded_x4OctoCom:CRJ047-L3-THJ3, J4
2ST16C554DPackage_QFP:LQFP-64_10x10mm_P0.5mmU1, U9
11.8432MOscillator:Oscillator_DIP-8ALT-X1
11.8432MOscillator:Oscillator_SMD_Abracon_ASV-4Pin_7.0x5.1mmX1
1100uFCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC41
110uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC42
14-171826-4OctoCom:TE_4-171826-4J33
174AHCT125Package_SO:SO-14_3.9x8.65mm_P1.27mmU13
174F138Package_DIP:DIP-16_W7.62mmU3
1ATF22V10Package_DIP:DIP-24_W7.62mmU2
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ32
1Conn_02x04_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ37
1Conn_02x10_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_HorizontalJ1
1Conn_02x20_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_HorizontalJ2

Questions

How big is the OctoCom PCB?

It measures 106.7 × 83.8 mm and has 4 copper layers, 1.6 mm thick.

What parts does the OctoCom use?

138 parts, built around the SP3243EEY-L, 74HC240D, 74AHCT125D and 74F138D. 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 OctoCom KiCad files?

From the techav-homebrew/Wrap030 repository on GitHub, at the commit this page was made from: the board is ExpansionBoards/OctoCom/OctoCom.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 OctoCom 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
  • 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 × 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

  • 4 layers184.9 × 243.8 mmProject NuXT, the printed circuit board in 3D

    Project NuXT

    monotech/NuXT

    MicroATX Turbo XT Motherboard, with VGA, Floppy, CF, Serial

    223 parts121GPL-3.0
  • 2 layers94 × 88.9 mmEXP, the printed circuit board in 3D

    EXP

    ajhewitt/novasaur

    Retrocomputer built from late-70's TTL logic chips

    23 parts35GPL-3.0
  • 4 layers254 × 134.6 mmZ280-S100, the printed circuit board in 3D

    Z280-S100

    cm68/Z280-S100

    16-bit Zilog Z280 CPU card for the IEEE-696 S-100 backplane; glue logic in two ATF1508AS CPLDs

    61 parts1CERN-OHL-P-2.0
  • 6 layers304.8 × 243.8 mmHydra-16, the printed circuit board in 3D

    Hydra-16

    danstruthers/hydra-16

    6502-based multi-tasking hardware and software project

    210 parts1
  • 6 layers285 × 236 mmRa9704, the printed circuit board in 3D

    Ra9704

    Coin-OpCollection/Development-Documentation

    This repository contains technical information, documentation, and reverse-engineering details for the base platform systems of FPGA implementations released by Coin-Op Collection.

    228 parts11
  • 2 layers170 × 170 mmCPC464-2MINIITX, the printed circuit board in 3D

    CPC464-2MINIITX

    Board-Folk/CPC464-2MINI

    Mini CPC464

    243 parts10
  • 2 layers120 × 80 mmProtection driver, the printed circuit board in 3D

    Protection driver

    cnpem-emi/qps-prototype-hw

    Quench protection driver for initial tests

    52 parts2
  • 2 layers100 × 160 mmSteuerwerk, the printed circuit board in 3D

    Steuerwerk

    michAtEl/Bonsai-Modellcomputer

    Es gibt auch eine Simulation des Lerncomputers (https://bonsai.pinyto.de/), die im digitalen Informatik-Schulbuch http://inf-schule.de verwendet wird.

    332 parts2GPL-3.0