Skip to the content
4 layers99.9 × 100 mmN8 bit special, the printed circuit board in 3D

N8 bit special

nrivard/n8-Bit10

65C02 Microcomputer

Size
99.9 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
50
Nets
108
Pads
437
Tracks, vias
1,486, 18
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
1 Sep 2021
Updated
29 Aug 2025

Overview

N8 bit special is an open-source printed circuit board by nrivard, from the nrivard/n8-Bit repository on GitHub, published under the MIT licence. It is a 4-layer board of 99.9 × 100 mm with 50 parts on 108 nets, routed with 1,486 tracks and 18 vias.

It is built around the CH340C, 74HC00D and 74LS21PC, with the DS1813-5+ among its other parts. Its parts include 18 capacitors, 10 ICs, 5 resistors, 5 connectors and 3 diodes.

Main components

4

README

README.md

n8 Bit Microcomputer

The n8 Bit Microcomputer is a homebrew breadboard computer built around a WDC65C02 8-bit CPU. If you are looking for the software that runs on this computer, check out LmaOS.

History

The n8 Bit was originally a breadboard computer based on the Ben Eater series of 6502 videos but with some added capabilities including ACIA support, GAL-based address decoding logic, and a power chip for more reliable reset and power-on. Since then, PCBs have been printed and development around the computer is based on these.

nate bit microcomputer on a breadboard

Physical Design

Large PCBs are expensive and I am not a rich person. For this reason, the main goal of the physical design of this computer and the expansion cards is to fit on the $5 boards at the cheap PCB houses. This gives a maximum area of 100mm x 100mm, which this board attempts to utilize to the utmost.

Main Board

The v2 main board is built around a WDC65C02 CPU operating at 3.6864Mhz and is meant to be as minimally viable as possible. It consists of:

  • 3 memory sockets (AT28C256/CY62256 footprint) for a configurable mix of RAM and/or ROM
  • SC28L92 DUART for serial communication and built-in timer(s)
  • CH340 USB-to-serial chip
  • Micro USB port for power (D+/D- are connected to the CH340)
  • GAL22V10 for flexible address decoding
  • Crystal oscillator can for stable clock generation
  • 74HC21 for multi-device IRQ and handling (supports older open-collector devices with jumpers on built-in pull-up resistors)
  • DS1813 for reset and power-on circuitry
  • 3 n8 Bus ports for I/O
nate bit microcomputer, version 1

Changes from v1

  • Moved from 4 n8 Bus ports down to 3. This was mainly for space reasons and one of the previous ports was always dedicated to serial communication and a VIA for a timer. By moving both of these onto the board, we can give some more breathing room to 3 expansion ports instead
  • Moved to half-size oscillator can and increased speed to 3.6864 MHz. The DUART runs at this frequency so I made this the main clock as well.
  • Moved to PLCC-44 packaging for CPU and DUART. This not only looks cooler but it has a smaller footprint and allowed me more room to lay out additional components.
  • Added transistor stage to the "running" light so it shows when it's actually running, not just when there is power to the board. Pressing and holding RESET will drive this LED off while RESET is low.
  • Added qualified (ANDed with CLK) read and write signals to the board and to the n8 Bus ports, replacing D+/D-.
  • Ran CLK into the GAL in case I want to use its signal to qualify future signals.
  • Moved from 2 layer to 4 layer board. So many signals! Also, this is auto-routed, I don't care, I'm not a purist in this (one) sense
nate bit microcomputer, version 1

Address space

By default, the n8 Bit is intended to have the following memory hardware:

  • 1 Atmel AT28C256 in the ROM1 socket
  • 2 Cypress CY62256NL in the RAM1 and RAM2 sockets

Default Memory Layout

If you are using the default hardware and the included GAL code, it has the following memory layout:

DeviceAddress Range
Zero Page$0000...$00FF
Stack$0100...$01FF
RAM$0200...$BEFF
Port 0$BF00...$BF3F
Port 1$BF40...$BF7F
Port 2$BF80...$BFBF
DUART$BFC0...$BFFF
ROM$C000...$FFFF

This configuration has 16K of ROM, 48k (less one page) of RAM, and 1 page of memory ($BF00...$BFFF) dedicated to 3 I/O ports and the DUART, each of which has 64 addressable memory locations.

Customizing the Address Space

Because address decoding is entirely GAL based, you have a lot of room to customize the address space. The GAL itself has physical connections to each port and to each memory socket for CS signals. How you utilize these (or even if you utilize them) is entirely up to you. If you wanted a simpler computer (like the Ben Eater computer) you may opt to leave one memory socket open and only use a single RAM and a single ROM chip. If you go this route, you will have to update your own GAL code to match your hardware configuration.

n8 Bus

The biggest advancement with the n8 Bit when it moved from breadboards to custom PCBs is the introduction of the n8 Bus spec.

nate bus schematic, version 1

The spec mandates that the following signals will be available on a standard 2x16 board-to-board female header:

Bidirectional signals:

  • all 8 bits of the data bus

Read-only signals:

  • bottom 6 bits of the address bus
  • per-port dedicated CS signal
  • CPU's R/W signal
  • READ signal qualified with high part of the CLK
  • WRITE signal qualified with high part of the CLK
  • CLK
  • RESET

Write-only signals:

  • per-port NMI
  • per-port IRQ

Expansion signals:

The n8 Bus spec includes 2 lines (FUTURE0 and FUTURE1) that don't currently have a purpose. These are hooked up to 2 I/O pins of the GAL and are intended for you to customize them. For example, if you have a VDP that outputs a colorburst clock that you want to use to drive a sound adapter, you can route that signal through one of these pins.

Power Rails:

The n8 Bus spec provides power rails (+5V and ground) on both the top and bottom of the header for shorter, more convenient power routing on your expansions cards.

I/O Expansion Cards

The main board for this computer is intentionally minimal. This means that all of your I/O functionality beyond a DUART (VIA, display, sound, etc.) has to come in the form of an expansion card that sits in a n8 Bus port.

Reference Cards

Two highly utilized devices that many hobbyists want to include on a homebrew computer are a UART (this is unnecessary now on the v2 board but is kept for reference purposes) and a GPIO device. In this repo, 2 such reference designs are included:

  • a UART card based on the Rockwell 65C51, called Kids Serial
  • a GPIO (and other functions) card based on the WDC65C22S, called Viaduct

Custom Cards

If you want to create your own cards, it's best to copy one of the existing reference designs first. This is because they will already have:

  • the n8 Bus port with proper pin directionality for the card in the schematic
  • a standardized PCB footprint
  • some device footprints (like the 2x16 right-angle male pin header) set

This will ensure you have consistent and correct card designs from the start.

Kids Serial, a UART card, version 1

Interrupts

NMI and IRQ are supported for all 3 n8 Bus ports. This board uses a WDC65C02 which uses a totem-pole design (the NMOS 6502 used an open-drain design) and so the board also includes optional jumpers for pull-up resistors. In general:

  • if your device is open-drain (older 6551s) or your device does not support interrupts at all, you will need to add jumpers across the interrupt lines for that port
  • if your device is totem-pole (WDC65C22S), you will want to remove the jumpers as the pull-up resistor will slow down signal change

See this article from Garth Wilson for more information.

Known Bugs

There are no known hardware bugs with the v2 board. If you find one (or more) please raise an issue.

Parts

50
QtyValueFootprintReferences
13100nfCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC1, C3, C4, C5, C6, C7, C8, C11, C12, C13, C14, C15, C16
4100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC9, C10, C17, C18
3220Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R3, R5
3LED_ALTLED_THT:LED_D3.0mmD1, D2, D3
2CY62256-70PCPackage_DIP:DIP-28_W15.24mm_SocketU2, U3
110KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4
122V10CPackage_DIP:DIP-24_W7.62mm_SocketU6
128C256Package_DIP:DIP-28_W15.24mm_SocketU4
12N3904Package_TO_SOT_THT:TO-92Q1
13.6864MhzOscillator:Oscillator_DIP-8X1
13K3Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2
13K3Resistor_THT:R_Array_SIP9RN1
1470uFCapacitor_THT:CP_Radial_D8.0mm_P3.80mmC2
174HC00Package_DIP:DIP-14_W7.62mm_SocketU10
174LS21Package_DIP:DIP-14_W7.62mm_SocketU9
1CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU8
1Conn_02x08_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ6
1DS1813Package_TO_SOT_THT:TO-92U7
1LOGOgraphics:MadeInAMSG2
1LOGOgraphics:ShakaG1
1PORT0Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_VerticalJ2
1PORT1Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_VerticalJ3
1PORT2Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_VerticalJ4
1SC28L92_PLC44Package_LCC:PLCC-44_THT-SocketU5
1SW_Push_DualButton_Switch_THT:SW_PUSH_6mmSW1
1USB_B_MicroConnector_USB:USB_Micro-B_Wuerth_629105150521J1
1W65C02SxPPackage_LCC:PLCC-44_THT-SocketU1

The 47 most common of 50 parts.

More from nrivard/n8-Bit

5
  • 2 layers70.1 × 47.1 mmBouncer, the printed circuit board in 3D

    Bouncer

    nrivard/n8-Bit

    65C02 Microcomputer

    19 parts10MIT
  • 2 layers48.3 × 65.5 mmBus driver, the printed circuit board in 3D

    Bus driver

    nrivard/n8-Bit

    65C02 Microcomputer

    15 parts10MIT
  • 2 layers76.2 × 43.2 mmSpi master, the printed circuit board in 3D

    Spi master

    nrivard/n8-Bit

    65C02 Microcomputer

    13 parts10MIT
  • 2 layers76.2 × 43.2 mmViaduct, the printed circuit board in 3D

    Viaduct

    nrivard/n8-Bit

    65C02 Microcomputer

    8 parts10MIT
  • 2 layers76.2 × 43.2 mmKids serial, the printed circuit board in 3D

    Kids serial

    nrivard/n8-Bit

    65C02 Microcomputer

    6 parts10MIT

Similar boards

  • 4 layers304.5 × 217.2 mmLatest Full Backplane, the printed circuit board in 3D

    Latest Full Backplane

    Trilobyte-CPU/8-bit-computer

    A DIY 8-bit computer built mostly with discrete logic chips

    478 parts2
  • 2 layers182 × 138.8 mm-816-board, the printed circuit board in 3D

    -816-board

    snippyrow/-816-board

    A retro computer motherboard for the W65C816S CPU. Dual-core expandable, 16mb extended memory, four expansion ports.

    141 partsMIT
  • 2 layers99.7 × 99.7 mmIO board, the printed circuit board in 3D

    IO board

    cherry-takuan/nlp

    NLP(Nand Logic Processor)のリポジトリ

    41 parts45CC-BY-SA-4.0
  • 2 layers254 × 160 mmDeck65, the printed circuit board in 3D

    Deck65

    and3rson/deck65

    Simple SBC based on 65c02s

    183 parts16GPL-3.0
  • 2 layers160 × 100 mmMOUSE 1, the printed circuit board in 3D

    MOUSE 1

    mkeller0815/MOUSE

    8bit 65C02 based microcomputer

    23 parts14MIT
  • 4 layers306 × 244 mmPg09-system, the printed circuit board in 3D

    Pg09-system

    thorpej/pg09-system

    6809 Playground - main system

    167 parts13BSD-2-Clause
  • 2 layers100 × 100 mmCaveboard, the printed circuit board in 3D

    Caveboard

    and3rson/caveboard

    https://youtu.be/Klj2Q3trmW8

    44 parts12MIT
  • 2 layers167.6 × 134.6 mmMotherboard, the printed circuit board in 3D

    Motherboard

    rjhelms/compe6502

    Homebrew 6502 system

    110 parts2

Questions

How big is the N8 bit special PCB?

It measures 99.9 × 100 mm and has 4 copper layers, 1.6 mm thick.

What parts does the N8 bit special use?

50 parts, built around the CH340C, 74HC00D, 74LS21PC and DS1813-5+. 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 N8 bit special KiCad files?

From the nrivard/n8-Bit repository on GitHub, at the commit this page was made from: the board is PCB/n8 bit special/n8 bit special.kicad_pcb and its schematic PCB/bouncer/bouncer.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the N8 bit special design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).