Skip to the content
2 layers290.3 × 119.1 mmKeyboard, the printed circuit board in 3D

One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

Size
290.3 × 119.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
162
Nets
97
Pads
575
Tracks, vias
771, 35
Pours
527
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
14 Mar 2026
Updated
3 Nov 2026

Overview

Keyboard is an open-source printed circuit board by crankery, from the crankery/crank68 repository on GitHub, published under the MIT licence. It is a 2-layer board of 290.3 × 119.1 mm with 162 parts on 97 nets, routed with 771 tracks and 35 vias.

It is built around the 74LS165PC. Its parts include 65 diodes, 65 switches, 3 capacitors, 3 ICs and 1 resistor. It belongs with the keyboards and input boards of this library.

Main components

1

README

README.md

C68

One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

It's going to be pretty useless but it's fun to play around with all of this.

Hardware

So, this isn't intended to be historically accurate or anything. It's a 1970s CPU but I'll use modern components where it makes things simpler. So, for whatever reason I thought it'd be nice to use things like the MC6850, MC6821 and other components that would have been available when the M6800 was being used in the industry. But really, I'm just trying to avoid using microcontrollers that would render the actual CPU hopelessly redundant.

One place I used a microcontroller is on the terminal board. It's just being used to produce DVI video and render text. Oh, it also does the keyboard matrix scan. It has its one job and that's to replace a glass terminal. So, since it's busy doing dumb terminal stuff it doesn't really matter that it's anacronistic... right?

The computer is split up across a bunch of 100x100mm boards. This is an attempt to reduce the cost of production as that's the maxiumum size the Chinese fabs will produce at bargain pricing. The one exception (thus far) is the actual keyboard; its dimensions are dictated by the keyboard layout.

I'm currently using some SPLDs as there were analogs of these back in the day. I am using them for decode logic for the most part but I'm trying to replace them with simple 74 series logic slowly.

Boards

As previously mentioned, the computer is built upon a set of cards. These cards are generally single function so there's a lot of them.

Backplane

The backplane is a simple board with a bunch of slots on it. Each board will plug into this board. The boards are setup to be chained together. The slots are 13.5mm apart giving about 12mm of component height for each board. If a board grows taller than this or has multiple layers, it will block the next slot. This is tall enough to allow for most common components though.

The left side of each board is allowed to host connectors. This allows for connecting I/O devices to individual boards such as parallel ports, serial ports, video output or sound output.

Status: C68BP.01 sent to production

Processor

This board hosts the Motorola M6800 CPU and the MC6875 clock generator along with an oscillator running at 4MHz. This will result in a 1MHz system clock.

Status: C68CPU.01 sent to production

Memory

Lower 48KB of RAM (in FRAM), 8KB ROM (EEPROM)

Status: C68MEM.01 sent to production

Banked Memory

1 MB of batery backed SRAM presented in two four KB windows in the main address space.

Status: Finalized design

Math

AMD AM9511 FPU

Status: design in progress

Sound

This is a sound board. I'm still trying to decide which chip(s) to use. The YM2149 OPL2, Philips SAA1099, GI AY-3-8910 SGM

Status: spitballing

IO

2xACIA MC6850, 2xPIA MC6821

Status: design completed

Time

A DS12885 RTC and a MC6850 PTC.

Status: design completed

Front Panel

blinkenlights and switches and buttons.

Status: in progress

Terminal

Using a Raspberry PI Pico with PicoDVI to generate the terminal's video and to perform keyboard scans. Uses an on-board MC6850 for communication to the host system.

Status: sent to production

Software

The software for this project includes some old stuff and some new stuff. The old stuff is being "translated" into a VASM 6800 standard syntax while the new stuff is being written that way.

Emulator

emu is a very basic M6800 emulator and is being used to verify software development. It isn't complete yet and will halt when it encounters an unimplemented instruction.

It is designed to match the actual computer's IO and memory access and will do the minimum to make things appear as they will in reality. So, the ACIA status and control registers set the flags appropriately while the actual rate of transfer isn't worried about.

New Stuff

C68 BIOS

Old Stuff

MIKBUG2
Micro Basic

Tools

Everything is being done using open source tools. This includes, but is not limited to:

  • kicad
  • vasm
  • vlink
  • galasm
  • minipro
  • GCC

Parts

162
QtyValueFootprintReferences
651N41480-Footprints:D_DO-35_SOD27_P7.62mm_HorizontalD2, D10, D11, D12, D13, D14, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25 +49
18MountingHole0-Footprints:MountingHole_2.1mmH1, H2, H3, H4, H5, H6, H7, H10, H11, H12, H13, H14, H15, H16, H17, H18 +2
3100nF0-Footprints:C_Disc_D5.0mm_W2.5mm_P5.00mmC1, C2, C3
34.7KResistor_THT:R_Array_SIP5RN1, RN2, RN3
274LS1650-Footprints:DIP-16_W7.62mmU2, U3
1'/"0-Footprints:SW_Cherry_MX_1.00u_PCBSW41
1,/<0-Footprints:SW_Cherry_MX_1.00u_PCBSW51
1-/_0-Footprints:SW_Cherry_MX_1.00u_PCBSW13
1./>0-Footprints:SW_Cherry_MX_1.00u_PCBSW52
1//?0-Footprints:SW_Cherry_MX_1.00u_PCBSW53
10/)0-Footprints:SW_Cherry_MX_1.00u_PCBSW12
11/!0-Footprints:SW_Cherry_MX_1.00u_PCBSW3
12/@0-Footprints:SW_Cherry_MX_1.00u_PCBSW4
1220ΩResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR12
13/#0-Footprints:SW_Cherry_MX_1.00u_PCBSW5
14/$0-Footprints:SW_Cherry_MX_1.00u_PCBSW6
15/%0-Footprints:SW_Cherry_MX_1.00u_PCBSW7
16/^0-Footprints:SW_Cherry_MX_1.00u_PCBSW8
17/&0-Footprints:SW_Cherry_MX_1.00u_PCBSW9
174LS1380-Footprints:DIP-16_W7.62mmU1
18/*0-Footprints:SW_Cherry_MX_1.00u_PCBSW10
19/(0-Footprints:SW_Cherry_MX_1.00u_PCBSW11
1;/:0-Footprints:SW_Cherry_MX_1.00u_PCBSW40
1=/+0-Footprints:SW_Cherry_MX_1.00u_PCBSW14
1A0-Footprints:SW_Cherry_MX_1.00u_PCBSW31
1B0-Footprints:SW_Cherry_MX_1.00u_PCBSW48
1C0-Footprints:SW_Cherry_MX_1.00u_PCBSW46
1Caps0-Footprints:SW_Cherry_MX_1.75u_PCB_LEDSW30
1D0-Footprints:SW_Cherry_MX_1.00u_PCBSW33
1Delete0-Footprints:SW_Cherry_MX_2.00u_PCBSW15
1Down0-Footprints:SW_Cherry_MX_1.00u_PCBSW63
1E0-Footprints:SW_Cherry_MX_1.00u_PCBSW19
1Escape0-Footprints:SW_Cherry_MX_1.00u_PCBSW1
1F0-Footprints:SW_Cherry_MX_1.00u_PCBSW34
1G0-Footprints:SW_Cherry_MX_1.00u_PCBSW35
1H0-Footprints:SW_Cherry_MX_1.00u_PCBSW36
1I0-Footprints:SW_Cherry_MX_1.00u_PCBSW24
1J0-Footprints:SW_Cherry_MX_1.00u_PCBSW37
1K0-Footprints:SW_Cherry_MX_1.00u_PCBSW38
1Keyboard0-Footprints:PinHeader_1x09_P2.54mm_HorizontalJ1
1L0-Footprints:SW_Cherry_MX_1.00u_PCBSW39
1L Alt0-Footprints:SW_Cherry_MX_1.25u_PCBSW56
1L Command0-Footprints:SW_Cherry_MX_1.25u_PCBSW57
1L Control0-Footprints:SW_Cherry_MX_1.25u_PCBSW55
1L Shift0-Footprints:SW_Cherry_MX_2.25u_PCBSW43
1Left0-Footprints:SW_Cherry_MX_1.00u_PCBSW62
1LogoSymbol:OSHW-Logo2_7.3x6mm_SilkScreenG2
1Logo0-Footprints:crankery_smallG3
1Logo0-Footprints:CrankG1
1M0-Footprints:SW_Cherry_MX_1.00u_PCBSW50
1N0-Footprints:SW_Cherry_MX_1.00u_PCBSW49
1O0-Footprints:SW_Cherry_MX_1.00u_PCBSW25
1P0-Footprints:SW_Cherry_MX_1.00u_PCBSW26
1Q0-Footprints:SW_Cherry_MX_1.00u_PCBSW17
1R0-Footprints:SW_Cherry_MX_1.00u_PCBSW20
1R Alt0-Footprints:SW_Cherry_MX_1.00u_PCBSW60
1R Command0-Footprints:SW_Cherry_MX_1.00u_PCBSW59
1R Control0-Footprints:SW_Cherry_MX_1.00u_PCBSW65
1R Shift0-Footprints:SW_Cherry_MX_2.75u_PCBSW54
1Return0-Footprints:SW_Cherry_MX_2.25u_PCBSW42
1Right0-Footprints:SW_Cherry_MX_1.00u_PCBSW64
1S0-Footprints:SW_Cherry_MX_1.00u_PCBSW32
1Space0-Footprints:SW_Cherry_MX_6.25u_PCBSW58
1T0-Footprints:SW_Cherry_MX_1.00u_PCBSW21
1Tab0-Footprints:SW_Cherry_MX_1.50u_PCBSW16
1U0-Footprints:SW_Cherry_MX_1.00u_PCBSW23
1Up0-Footprints:SW_Cherry_MX_1.00u_PCBSW61
1V0-Footprints:SW_Cherry_MX_1.00u_PCBSW47
1W0-Footprints:SW_Cherry_MX_1.00u_PCBSW18
1X0-Footprints:SW_Cherry_MX_1.00u_PCBSW45
1Y0-Footprints:SW_Cherry_MX_1.00u_PCBSW22
1Z0-Footprints:SW_Cherry_MX_1.00u_PCBSW44
1[/{0-Footprints:SW_Cherry_MX_1.00u_PCBSW27
1\/|0-Footprints:SW_Cherry_MX_1.50u_PCBSW29
1]/}0-Footprints:SW_Cherry_MX_1.00u_PCBSW28
1`/~0-Footprints:SW_Cherry_MX_1.00u_PCBSW2

More from crankery/crank68

12
  • 2 layers100 × 100 mmFront, the printed circuit board in 3D

    Front

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    60 partsMIT
  • 2 layers100 × 100 mmSound, the printed circuit board in 3D

    Sound

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    58 partsMIT
  • 2 layers100 × 100 mmBankedMemory, the printed circuit board in 3D

    BankedMemory

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    44 partsMIT
  • 2 layers100 × 100 mmTerminal, the printed circuit board in 3D

    Terminal

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    38 partsMIT
  • 2 layers100 × 100 mmBusDepot, the printed circuit board in 3D

    BusDepot

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    35 partsMIT
  • 2 layers100 × 100 mmProcessor, the printed circuit board in 3D

    Processor

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    32 partsMIT
  • 2 layers100 × 100 mmCrank68, the printed circuit board in 3D

    Crank68

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    30 partsMIT
  • 2 layers100 × 100 mmCrank68, the printed circuit board in 3D

    Crank68

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    29 partsMIT
  • 2 layers100 × 100 mmRTC, the printed circuit board in 3D

    RTC

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    28 partsMIT
  • 2 layers100 × 100 mmMath, the printed circuit board in 3D

    Math

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    26 partsMIT
  • 2 layers100 × 100 mmTime, the printed circuit board in 3D

    Time

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    25 partsMIT
  • 2 layers100 × 65 mmCrank68, the printed circuit board in 3D

    Crank68

    crankery/crank68

    One day I thought to myself I want to build a computer with the simplest 8 bit CPU I can think of". That CPU is the Motorola M6800 and this is the computer.

    22 partsMIT

Similar boards

  • 2 layers128.3 × 50.8 mmCD32 Controller, the printed circuit board in 3D

    CD32 Controller

    BleuLlama/AmigaSchematics

    Schematics of various Commodore Amiga related items

    33 parts58MIT
  • 2 layers128.6 × 81 mmAfterglow, the printed circuit board in 3D

    Afterglow

    bitfieldlabs/afterglow

    Pinball retro afterglow

    203 parts32
  • 2 layersPanel old, the printed circuit board in 3D

    Panel old

    dankar/altair8800

    What started as a Intel 8080 emulator turned into a Altair 8800 emulator with associated hardware for a front panel.

    103 parts31MIT
  • 2 layers254 × 134.6 mmNew enet, the printed circuit board in 3D

    New enet

    jayacotton/inettools-z80

    Inet tools for z80-rc2014 tcp/ip stack code.

    36 parts22MIT
  • 4 layers180.3 × 211.3 mmFor real 486, the printed circuit board in 3D

    For real 486

    Xeraster/32bit_486_motherboard

    A completely DIY 486 motherboard. Even the chipset is a DIY fpga thing. This version has a 32 bit front side bus and a 16 bit ISA bis

    256 parts18GPL-3.0
  • 2 layers100 × 100 mm1551-III Pico, the printed circuit board in 3D

    1551-III Pico

    ytmytm/1551-rePico

    Commodore 1551 disk-drive replacement for Plus/4, C16 and C116: Pico2 + 6510T + CPLD in a Pi1551-III case, host via tcbm2sd. Firmware/GCR derived from 1541-rePico.

    80 parts16GPL-3.0
  • 2 layers85.1 × 31.8 mmEsp01Expander, the printed circuit board in 3D

    Esp01Expander

    ruenahcmohr/esp_01Expand32

    esp-01 (esp8266) IO expander, 16 output, 16 input = 32

    20 parts15
  • 2 layers75 × 50 mmRemnant, the printed circuit board in 3D

    Remnant

    hsgw/Remnant

    4x2 macro keyboard with attiny85 based digispark

    29 parts14

Questions

How big is the Keyboard PCB?

It measures 290.3 × 119.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Keyboard use?

162 parts, built around the 74LS165PC. 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 Keyboard KiCad files?

From the crankery/crank68 repository on GitHub, at the commit this page was made from: the board is Keyboard/Keyboard.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Keyboard 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).