

N8 bit special
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
4CH340C
SOP-16-20℃~+70℃ 2Mbps 3.3V、5V 50uA 7mA Transceiver USB 2.0 SOP-16 USB Converters ROHSWCH (Nanjing Qinheng Microelectronics)USB Converters74HC00D
SOP-14-40℃~+125℃ 1.5V、3.15V、4.2V 1.9V、3.7V、5.9V 100mV、400mV、400mV 2 2V~6V 4 40uA 5.2mA 5.2mA 500mV~1.8V 74HC Series 7ns@6V,50pF NAND Gate SOIC-14 Logic Gates ROHSNexperiaLogic Gates74LS21PC
DIP-140℃~+70℃ 18ns@5V,50pF 2 2.7V~3.4V 2V 4 4.75V~5.25V 400uA 500mV 74LS 800mV 8mA AND Gate DIP-14 Logic Gates ROHSonsemiLogic GatesDS1813-5+
TO-92-3-40℃~+85℃@(Ta) 1 1.2V~5.5V 150ms 4.75V Active Low No Open Drain Voltage Monitor Yes TO-92-3 Supervisor and Reset ICs ROHSAnalog DevicesSupervisor And Reset ICs
README
README.mdn8 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.
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
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
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:
| Device | Address 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.
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.
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 13 | 100nf | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C1, C3, C4, C5, C6, C7, C8, C11, C12, C13, C14, C15, C16 |
| 4 | 100nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C9, C10, C17, C18 |
| 3 | 220 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R3, R5 |
| 3 | LED_ALT | LED_THT:LED_D3.0mm | D1, D2, D3 |
| 2 | CY62256-70PC | Package_DIP:DIP-28_W15.24mm_Socket | U2, U3 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4 |
| 1 | 22V10C | Package_DIP:DIP-24_W7.62mm_Socket | U6 |
| 1 | 28C256 | Package_DIP:DIP-28_W15.24mm_Socket | U4 |
| 1 | 2N3904 | Package_TO_SOT_THT:TO-92 | Q1 |
| 1 | 3.6864Mhz | Oscillator:Oscillator_DIP-8 | X1 |
| 1 | 3K3 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2 |
| 1 | 3K3 | Resistor_THT:R_Array_SIP9 | RN1 |
| 1 | 470uF | Capacitor_THT:CP_Radial_D8.0mm_P3.80mm | C2 |
| 1 | 74HC00 | Package_DIP:DIP-14_W7.62mm_Socket | U10 |
| 1 | 74LS21 | Package_DIP:DIP-14_W7.62mm_Socket | U9 |
| 1 | CH340C | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U8 |
| 1 | Conn_02x08_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_Vertical | J6 |
| 1 | DS1813 | Package_TO_SOT_THT:TO-92 | U7 |
| 1 | LOGO | graphics:MadeInAMS | G2 |
| 1 | LOGO | graphics:Shaka | G1 |
| 1 | PORT0 | Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_Vertical | J2 |
| 1 | PORT1 | Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_Vertical | J3 |
| 1 | PORT2 | Connector_PinSocket_2.54mm:PinSocket_2x16_P2.54mm_Vertical | J4 |
| 1 | SC28L92_PLC44 | Package_LCC:PLCC-44_THT-Socket | U5 |
| 1 | SW_Push_Dual | Button_Switch_THT:SW_PUSH_6mm | SW1 |
| 1 | USB_B_Micro | Connector_USB:USB_Micro-B_Wuerth_629105150521 | J1 |
| 1 | W65C02SxP | Package_LCC:PLCC-44_THT-Socket | U1 |
The 47 most common of 50 parts.
More from nrivard/n8-Bit
5- 2 layers70.1 × 47.1 mm

- 2 layers48.3 × 65.5 mm

- 2 layers76.2 × 43.2 mm

- 2 layers76.2 × 43.2 mm

- 2 layers76.2 × 43.2 mm

Similar boards
- 4 layers304.5 × 217.2 mm

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
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 mm

- 2 layers254 × 160 mm

- 2 layers160 × 100 mm

- 4 layers306 × 244 mm

- 2 layers100 × 100 mm

- 2 layers167.6 × 134.6 mm

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).