SkillAgentSearch skills...

BB816

A homebrew 16 bit breadboard computer based on WDC's 65C816 processor

Install / Use

/learn @adrienkohlbecker/BB816
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

BB816

A homebrew computer based on the 65C816 processor. Watch the series on YouTube:

Watch 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

Top-level schematic

CPU breakout

CPU breakout

Address Decoding module

Address Decoding module

Memory module

Memory module

Debug Clock module

Debug Clock module

Debug module

Debug module

Monitor module

Monitor module

GPIO module

GPIO module

Peripherals module

Peripherals module

Serial module

Serial module

Tester module

Tester module

BOM

Basics

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

View on GitHub
GitHub Stars40
CategoryDevelopment
Updated1mo ago
Forks8

Languages

Assembly

Security Score

75/100

Audited on Mar 3, 2026

No findings