BB816
A homebrew 16 bit breadboard computer based on WDC's 65C816 processor
Install / Use
/learn @adrienkohlbecker/BB816README
BB816
A homebrew computer based on the 65C816 processor. Watch the series on YouTube:
Goals
The purpose of this project is to build a 65C816 development platform and learn about the CPU. Conceptually, it will be similar to WDC's own development board.
I'm not going for ludicrous speed and features for revision A, here are the goals:
- Runs at 4Mhz
- Prototyped on a breadboard, through-hole ICs only, no programmable logic
- 32KB RAM, 32KB ROM, 512KB extended RAM
- 65C22 for peripheral I/O
- 65C51 for UART
The goals of the YouTube series are to provide a good description of all the design decisions, including going in-depth on timing, to be a more advanced complement to something like Ben Eater's 6502 series, as well as show more love to this cool CPU in the homebrew community.
Schematic
Top-level
CPU breakout
Address Decoding module
Memory module
Debug Clock module
Debug module
Monitor module
GPIO module
Peripherals module
Serial module
Tester module
BOM
Basics
- BusBoard BB830 Breadboards
- Hook-Up Wire: Recommended option
- Male-to-Male Dupont Wires
- Dupont Female Connectors. Use them to replace single connectors and group your cables by 2, 8...
- 10uF Polarized capacitors. Sprinkle one per power rail
- 3mm LEDs with built-in resistors (Yellow, Red, Green)
- LED Bars with 8 LEDs, various colors (Red version), with 9-pin bussed 1k resistors. I use 1k, 1.5k or 3.3k resistors depending on the color.
- ZIF socket for ROM: Aries Electronics 28-526-10 + 28pin Wire-Wrap socket
CPU Breakout board
Component Count: 81
| Refs | Qty | Component | Description | | ----- | --- | ---- | ----------- | | C1 | 1 | 220u | Polarized capacitor, small symbol | | C2, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 | 17 | 100n | Unpolarized capacitor, small symbol | | C3 | 1 | 10u | Polarized capacitor, small symbol | | D1 | 1 | POWER | Light emitting diode, small symbol | | D2 | 1 | 1N5817 | 20V 1A Schottky Barrier Rectifier Diode, DO-41 | | J1 | 1 | Barrel_Jack_Switch | DC Barrel Jack with an internal switch | | J2 | 1 | Conn_02x40_Odd_Even | Generic connector, double row, 02x40, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/) | | J3 | 1 | Conn_02x18_Odd_Even | Generic connector, double row, 02x18, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/) | | R1, R2, R3, R5, R11, R17 | 6 | 3.3k | Resistor, small symbol | | R4, R12, R13, R14, R15 | 5 | 100k | Resistor, small symbol | | R6, R16 | 2 | 1k | Resistor, small symbol | | R7, R8, R9, R10 | 4 | 0R | Resistor, small symbol | | RN1 | 1 | 100k | 8 resistor network, star topology, bussed resistors, small symbol | | RN2, RN3, RN4 | 3 | 100k | 8 resistor network, star topology, bussed resistors, small symbol | | RN5 | 1 | 100k | 8 resistor network, star topology, bussed resistors, small symbol | | SW1 | 1 | RESET | Push button switch, generic, two pins | | U1 | 1 | 74AHC74 | Dual D Flip-flop, Set & Reset | | U2 | 1 | 74AHC00 | quad 2-input NAND gate | | U3 | 1 | 74AC112 | dual JK Flip-Flop, Set & Reset | | U4 | 1 | W65C816SxP | W65C816S 8/16-bit CMOS General Purpose Microprocessor, DIP-40 | | U5, U6, U12 | 3 | 74AHC32 | Quad 2-input OR | | U7 | 1 | 74AHC125 | Quad buffer 3-State outputs | | U8 | 1 | DS1813-5 | | | U9, U14 | 2 | 74HC74 | Dual D Flip-flop, Set & Reset | | U10 | 1 | 74AHCT245 | Octal BUS Transceivers, 3-State outputs | | U11 | 1 | 74AHC573 | 8-bit Latch 3-state outputs | | U13 | 1 | 74AHC02 | quad 2-input NOR gate | | U15 | 1 | 74AC10 | Triple 3-input NAND | | U16 | 1 | DS1035-10 | 3-in-1 High–Speed Silicon Delay Line | | X1 | 1 | 8MHz | Crystal Clock Oscillator, DIP8-style metal package |
Rest of the computer
Component Count: 167
| Refs | Qty | Component | Description | | ----- | --- | ---- | ----------- | | BAR1 | 1 | LED-Array-10-BGYR | BAR GRAPH 10 segment | | BAR2, BAR3, BAR4 | 3 | Yellow | BAR GRAPH 8 segment | | BAR5 | 1 | Green | BAR GRAPH 8 segment | | BAR6, BAR7, BAR8 | 3 | Red | BAR GRAPH 8 segment | | BAR9, BAR10 | 2 | LED-Array-8-GYR | BAR GRAPH 10 segment | | C1, C6, C10, C27 | 4 | 10u | Polarized capacitor, small symbol | | C2, C3, C4, C5, C7, C8, C9, C12, C16, C17, C18, C19, C20, C21, C22, C23, C24, C28, C29, C30, C31, C32, C33, C34, C35, C36, C37, C38, C39, C41, C42, C43, C44 | 33 | 100n | Unpolarized capacitor, small symbol | | C11 | 1 | 22u | Polarized capacitor, small symbol | | C13, C14, C15 | 3 | 2.2u | Polarized capacitor, small symbol | | C25 | 1 | 1u | Polarized capacitor, small symbol | | C26 | 1 | 10n | Unpolarized capacitor, small symbol | | C40 | 1 | 470n | Unpolarized capacitor, small symbol | | D1 | 1 | Clock | Light emitting diode, small symbol | | D2, D7 | 2 | 1N5819 | 40V 1A Schottky Barrier Rectifier Diode, DO-41 | | D8 | 1 | Slow | Light emitting diode, small symbol | | D9 | 1 | Fast | Light emitting diode, small symbol | | D10 | 1 | Pulse | Light emitting diode, small symbol | | DS1 | 1 | HD44780 | LCD 16x2 Alphanumeric , 8 bit parallel bus, 5V VDD | | J1 | 1 | Tester | Generic connector, single row, 01x08, script generated (kicad-library-utils/schlib/autogen/connector/) | | J2 | 1 | USB_B | USB Type B connector | | J3 | 1 | USB_I2C | Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/) | | J4 | 1 | USB Reset | Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/) | | R1, R9, R10, R11, R12, R13, R14, R15, R19, R20, R34, R35, R36 | 13 | 3.3k | Resistor, small symbol | | R2, R4, R6, R8 | 4 | 10k | Resistor, small symbol | | R3, R5, R7 | 3 | 2.2k | Resistor, small symbol | | R16, R18, R25, R26, R27, R31, R32, R37, R38, R39, R41, R42 | 12 | 1k | Resistor, small symbol | | R17 | 1 | 220 | Resistor, small symbol | | R21, R22, R23, R24, R33, R43, R44, R45, R46, R47, R48, R49, R50, R51 | 14 | 6.8k | Resistor, small symbol | | R28, R29, R30, R40 | 4 | 1.5k | Resistor, small symbol | | RN1, RN2, RN3 | 3 | 1k | 8 resistor network, star topology, bussed resistors, small symbol | | RN4, RN7 | 2 | 3.3k | 8 resistor network, star topology, bussed resistors, small symbol | | RN5, RN6, RN8 | 3 | 1.5k | 8 resistor network, star topology, bussed resistors, small symbol | | RV1 | 1 | 500k | Potentiometer | | RV2 | 1 | 10k | Potentiometer | | SW1 | 1 | Pulse | Push button switch, generic, two pins | | SW2 | 1 | Mode | Push button switch, generic, two pins | | SW3 | 1 | Speed | Push button switch, generic, two pins | | SW4 | 1 | SW_DIP_SPDT_x02 | 2x DIP Switch, Single Pole Double Throw (SPDT) switch, small symbol | | SW5 | 1 | SW_DIP_x03 | 3x DIP Switch, Single Pole Single Throw (SPST) switch, small symbol | | SW6 | 1 | SW_DIP_x08 | 8x DIP Switch, Single Pole Single Throw (SPST) switch, small symbol | | U1 | 1 | 65C816-Breakout | See https://github.com/adrienkohlbecker/BB816/tree/main/hardware/breakout | | U2 | 1 | 74HC30 | 8-input NAND | | U3 | 1 | 74AHC00 | quad 2-input NAND gate | | U4 | 1 | 74AHC32 | Quad 2-input OR | | U5 | 1 | 74AHC138 | Decoder 3 to 8 active low outputs | | U6 | 1 | AT28C256-15PC | Paged Parallel EEPROM 256Kb (32K x 8), DIP-28/SOIC-28 | | U7 | 1 | LY62256PL-55LL | 32Kx8 bit Low Power CMOS Static RAM, 55/70ns, DIP-28 | | U8 | 1 | AS6C4008-55PCN | 512K x 8 Low Power CMOS RAM, DIP-32 | | U9 | 1 | 74HC14 | Hex inverter schmitt trigger | | U10, U12, U14 | 3 | 74HC74 | Dual D Flip-flop, Set & Reset | | U11 | 1 | 74HC32 | Quad 2-input OR | | U13 | 1 | 74HCT193 | Synchronous 4-bit Up/Down (2 clk) counter | | U15, U31 | 2 | 74AHC74 | Dual D Flip-flop, Set & Reset | | U16 | 1 | LMC555xN | CMOS Timer, 555 compatible, PDIP-8 | | U17 | 1 | 74HC251 | Multiplexer 8 to 1, 3-state Outputs | | U18 | 1 | 74HC153 | Dual Multiplexer 4 to 1 | | U19 | 1 | 74HC04 | Hex Inverter | | U20 | 1 | 74HC540 | 8-bit Buffer/Line driver Inverter, 3-state outputs | | U21, U22, U23, U24, U27, U28, U32, U33 | 8 | 74HC541 | 8-bit Buffer/Line Driver 3-state outputs | | U25 | 1 | Teensy++2.0 | | | U26 | 1 | W65C22SxP | W
Related Skills
node-connect
354.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。











