Keyboard

BerkeleyHCI·PolymorphicBlocks·examples/Keyboard/Keyboard.kicad_pcb

Keyboard PCB layout, top view — open source board by BerkeleyHCI
Simulate this board

About the Keyboard PCB

Keyboard is an open source PCB design by BerkeleyHCI, published on GitHub under the BSD-3-Clause license. It is a 2-layer board measuring 64.1 × 103.2 mm, with 80 components from 80 distinct parts.

Other key parts include the reg.ic, mcu.ic, usb_esd, oled.lcd and npx_shift.ic. By type, the board carries 27 capacitors, 25 diodes, 13 switches, 6 resistors, 5 ICs and 3 connectors.

It belongs with the keyboards and displays & leds designs in this gallery.

From the project

A Python-based hardware description language for PCBs for higher-level (block-diagram / system-architecture level) PCB design through libraries of directly reusable subcircuit generators.

subcircuit generator library based hardware description language for circuit board design

Polymorphic Blocks is an open-source, Python-based hardware description language (HDL) for schematic-equivalent design of printed circuit boards (PCBs). Its library of components provide a high-level abstraction for circuit design while subcircuit generators automate the calculation of fine details. Abstract component interfaces enable these libraries to be general across applications and component vendors.

Keyboard, from the project README
From the project README

Main components on the Keyboard

Keyboard bill of materials (BOM)

80 components, 80 distinct parts.

QtyPartRefs
1
reg.ic
U1
1
mcu.ic
U2
1
usb_esd
U3
1
oled.lcd
U4
1
npx_shift.ic
U5
1
mcu.crystal.package
X1
1
usb.conn
J1
1
mcu.sdi
J2
1
oled.device
J3
1
sw.sw[0,0].sw
SW1
1
sw.sw[1,0].sw
SW2
1
sw.sw[2,0].sw
SW3
1
sw.sw[0,1].sw
SW4
1
sw.sw[1,1].sw
SW5
1
sw.sw[2,1].sw
SW6
1
sw.sw[0,2].sw
SW7
1
sw.sw[1,2].sw
SW8
1
sw.sw[2,2].sw
SW9
1
sw.sw[0,3].sw
SW10
1
sw.sw[1,3].sw
SW11
Show 60 more
QtyPartRefs
1
sw.sw[2,3].sw
SW12
1
enc
SW13
1
ledr.package
D1
1
sw.sw[0,0].d
D2
1
sw.sw[0,0].npx.device
D3
1
sw.sw[1,0].d
D4
1
sw.sw[1,0].npx.device
D5
1
sw.sw[2,0].d
D6
1
sw.sw[2,0].npx.device
D7
1
sw.sw[0,1].d
D8
1
sw.sw[0,1].npx.device
D9
1
sw.sw[1,1].d
D10
1
sw.sw[1,1].npx.device
D11
1
sw.sw[2,1].d
D12
1
sw.sw[2,1].npx.device
D13
1
sw.sw[0,2].d
D14
1
sw.sw[0,2].npx.device
D15
1
sw.sw[1,2].d
D16
1
sw.sw[1,2].npx.device
D17
1
sw.sw[2,2].d
D18
1
sw.sw[2,2].npx.device
D19
1
sw.sw[0,3].d
D20
1
sw.sw[0,3].npx.device
D21
1
sw.sw[1,3].d
D22
1
sw.sw[1,3].npx.device
D23
1
sw.sw[2,3].d
D24
1
sw.sw[2,3].npx.device
D25
1
reg.in_cap
C1
1
reg.out_cap
C2
1
mcu.crystal.cap_a
C3
1
mcu.crystal.cap_b
C4
1
mcu.vdd_cap[0]
C5
1
mcu.vdd_cap[1]
C6
1
mcu.vdda_cap
C7
1
mcu.reset_cap
C8
1
sw.sw[0,0].npx.cap
C9
1
sw.sw[1,0].npx.cap
C10
1
sw.sw[2,0].npx.cap
C11
1
sw.sw[0,1].npx.cap
C12
1
sw.sw[1,1].npx.cap
C13
1
sw.sw[2,1].npx.cap
C14
1
sw.sw[0,2].npx.cap
C15
1
sw.sw[1,2].npx.cap
C16
1
sw.sw[2,2].npx.cap
C17
1
sw.sw[0,3].npx.cap
C18
1
sw.sw[1,3].npx.cap
C19
1
sw.sw[2,3].npx.cap
C20
1
oled.c1_cap
C21
1
oled.c2_cap
C22
1
oled.vcomh_cap
C23
1
oled.vdd_cap1
C24
1
oled.vbat_cap
C25
1
oled.vcc_cap
C26
1
npx_shift.vdd_cap
C27
1
usb.cc_pull.cc1
R1
1
usb.cc_pull.cc2
R2
1
ledr.res
R3
1
oled.iref_res
R4
1
i2c_pull.scl_res
R5
1
i2c_pull.sda_res
R6

Keyboard design files

The KiCad project lives in the BerkeleyHCI/PolymorphicBlocks repository on GitHub; these links point at the commit this page was built from.

Keyboard: common questions

How big is the Keyboard PCB?

The Keyboard measures 64.1 × 103.2 mm, has 2 copper layers and is 1.6 mm thick.

How many components are on the Keyboard?

80 components, from 80 distinct parts. The full bill of materials is listed on this page.

Where can I download the Keyboard design files?

From the BerkeleyHCI/PolymorphicBlocks repository on GitHub, which has the KiCad layout; the links under Design files point to each one.

Can I use the Keyboard design in my own project?

Yes, under the terms of its BSD-3-Clause license, which BerkeleyHCI chose for the repository.

More boards in PolymorphicBlocks

Similar boards