

Keyboard pcb
Hex/Binary/Decimal calculator inspired by HP-16C
- Size
- 86.4 × 177.8 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 72
- Nets
- 60
- Pads
- 286
- Tracks, vias
- 443, 49
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 4 Apr 2023
- Updated
- 30 May 2025
Overview
Keyboard pcb is an open-source printed circuit board by eshazen, from the eshazen/hex-calc repository on GitHub. It is a 2-layer board of 86.4 × 177.8 mm with 72 parts on 60 nets, routed with 443 tracks and 49 vias.
It is built around the ATMEGA328-PU. Its parts include 30 diodes, 28 switches, 5 resistors, 3 capacitors and 3 ICs. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
1README
README.mdhex-calc
Simple Hex/Binary/Decimal calculator inspired by HP-16C and TI Programmer.
Features:
- Hex / Decimal / Binary display in signed or unsigned mode
- Entire stack for 8/16 bits, two levels for 32 bits
- four-function two-compliment or unsigned arithmetic
- 8 / 16 / 32 / 64 bit word size
- four-level RPN stack with roll / swap
Runs on ATMeg328 at 8MHz. Power is 4xAA batteries regulated to 5V. Industry-standard 16x2 backlit LCD. Three LEDs:
- Power
- f key (function/shift) active
- signed display mode
Code in src/calc_hw.
KiCAD design in keyboard-pcb.
Schematic: keyboard-pcb.pdf
See https://github.com/eshazen/calc-demo-xwin for an X-windows app written in C which illustrates the general idea.
Enhancements
Thinking about some added features to support fractional arithmetic for woodworking. Display options to round to nearest fraction (1/4, 1/8, 1/16, 1/32, 1/64) and switch between decimal inch, fraction inch and decimal mm. Ft/inches another useful display option.
This would involve either floating point or scaled integer math. For this application the range is pretty limited, maybe 8 ft (~100 in) max.
Base units could be 2.54e-6 in (1um). 100 inches would require ~25 bits.

Parts
72| Qty | Value | Footprint | References |
|---|---|---|---|
| 27 | 1N914 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D10, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26 +11 |
| 26 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +10 |
| 4 | 470 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2, R3, R5 |
| 3 | LED | LED_THT:LED_D3.0mm | D1, D2, D11 |
| 2 | 0.1uF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C1, C3 |
| 1 | 10k | Potentiometer_THT:Potentiometer_Bourns_3266P_Horizontal | RV1 |
| 1 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4 |
| 1 | 10uF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C2 |
| 1 | 4xAAA | AAA_batt_holder:Keystone_4xAAA_2481 | BT1 |
| 1 | ATmega328-P | Package_DIP:DIP-28_W7.62mm | U2 |
| 1 | Conn_02x03_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J1 |
| 1 | R1500H | Package_TO_SOT_SMD:SOT-89-5_Handsoldering | U1 |
| 1 | RC1602A | Display:WC1602A | U3 |
| 1 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_2.00u_PCB | SW28 |
| 1 | SW_SPST | my_switch:ANT11TFHQE_switch | SW5 |
Questions
How big is the Keyboard pcb PCB?
It measures 86.4 × 177.8 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Keyboard pcb use?
72 parts, built around the ATMEGA328-PU. 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 pcb KiCad files?
From the eshazen/hex-calc repository on GitHub, at the commit this page was made from: the board is keyboard-pcb/keyboard-pcb.kicad_pcb and its schematic keyboard-pcb/keyboard-pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Keyboard pcb design in my own project?
Its repository states no licence, so its author keeps all rights: ask eshazen before reusing the design.
Similar boards
- 2 layers104.9 × 75.2 mm

- 2 layers228 × 98 mm

- 2 layers94.6 × 46.1 mm

- 2 layers50 × 50 mm

- 2 layers284.7 × 94.2 mm

Lumberjack
peej/lumberjack-keyboard
5x12 ortholinear through-hole component keyboard PCB for standard 60% cases
165 parts403MIT - 2 layers132.1 × 45.7 mm

IPoS
peterheinrich/InternetOverSpaghetti
Transmitting IP packages over a pair of spaghetti thus demonstrating how media independent IP really is.
42 parts342 - 2 layers63.3 × 57.2 mm

- 2 layers285 × 117 mm
