

OctoCom
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
4SP3243EEY-L
TSSOP-28-40℃~+85℃ 120Kbps 3 3V~5.5V 5 Transceiver TSSOP-28 RS232 ICs ROHSMaxLinearRS232 ICs74HC240D
SO-20-300mil-40℃~+125℃ 1 11ns@4.5V,50pF 160uA 2V~6V 7.8mA 7.8mA 74HC 8 Tri-State Unidirectional SOIC-20-300mil Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/Transceiver74AHCT125D
SOP-14-40℃~+125℃ 1 4 4.3ns@5V,50pF 4.5V~5.5V 40uA 74AHCT 8mA 8mA Schmitt trigger Tri-State Unidirectional SOP-14 Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/Transceiver74F138D
SOIC-16SOIC-16 Signal Switches, Multiplexers, Decoders ROHSNXP SemiconductorsSignal 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
138| Qty | Value | Footprint | References |
|---|---|---|---|
| 48 | 33n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +32 |
| 24 | 180 | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +8 |
| 24 | Conn_02x02_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_Vertical | J10, J11, J12, J13, J15, J16, J17, J18, J19, J20, J22, J23, J24, J25, J26, J27 +8 |
| 8 | LED | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D1, D2, D3, D4, D5, D6, D7, D8 |
| 8 | SP3243EEY | Package_SO:TSSOP-28_4.4x9.7mm_P0.65mm | U4, U5, U6, U7, U8, U10, U11, U14 |
| 4 | M3 | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H4 |
| 3 | 74HC240 | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U12, U15, U16 |
| 3 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J34, J35, J36 |
| 2 | 8P8C_LED_Shielded_x4 | OctoCom:CRJ047-L3-TH | J3, J4 |
| 2 | ST16C554D | Package_QFP:LQFP-64_10x10mm_P0.5mm | U1, U9 |
| 1 | 1.8432M | Oscillator:Oscillator_DIP-8 | ALT-X1 |
| 1 | 1.8432M | Oscillator:Oscillator_SMD_Abracon_ASV-4Pin_7.0x5.1mm | X1 |
| 1 | 100uF | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C41 |
| 1 | 10uF | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C42 |
| 1 | 4-171826-4 | OctoCom:TE_4-171826-4 | J33 |
| 1 | 74AHCT125 | Package_SO:SO-14_3.9x8.65mm_P1.27mm | U13 |
| 1 | 74F138 | Package_DIP:DIP-16_W7.62mm | U3 |
| 1 | ATF22V10 | Package_DIP:DIP-24_W7.62mm | U2 |
| 1 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J32 |
| 1 | Conn_02x04_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical | J37 |
| 1 | Conn_02x10_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_Horizontal | J1 |
| 1 | Conn_02x20_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_Horizontal | J2 |
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 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
- 4 layers184.9 × 243.8 mm

Project NuXT
monotech/NuXT
MicroATX Turbo XT Motherboard, with VGA, Floppy, CF, Serial
223 parts121GPL-3.0 - 2 layers94 × 88.9 mm

- 4 layers254 × 134.6 mm

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 mm

- 6 layers285 × 236 mm

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 mm

- 2 layers120 × 80 mm

- 2 layers100 × 160 mm

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