Skip to the content
2 layers427.9 × 155 mmKayproKeyboard, the printed circuit board in 3D

Mechanical keyboard that fits the originals board layout, uses pi-pico as the controller.

Size
427.9 × 155 mm
Copper layers
2
Thickness
1.6 mm
Parts
163
Nets
131
Pads
674
Tracks, vias
1,258, 79
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
2 Jun 2026
Updated
13 Sep 2026

Overview

KayproKeyboard is an open-source printed circuit board by jasperhax0r, from the jasperhax0r/Kaypro10Keyboard repository on GitHub, published under the MIT licence. It is a 2-layer board of 427.9 × 155 mm with 163 parts on 131 nets, routed with 1,258 tracks and 79 vias.

Its parts include 78 diodes, 70 switches, 3 connectors, 2 capacitors and 2 resistors. It belongs with the keyboards and input boards and the RP2040 boards of this library.

README

README.md

Kaypro 10 Replacement Keyboard

NOTE TO ANYONE USING THE PREVIOUS VERSION/2ND BOARD VERSION (A FEW WERE GIVEN OUT AT VCF MIDWEST) THE LEVEL SHIFTERS LV SIDE IS REVERSED SO IF YOU TRY TO WIRE ONE DIRECTLY TO THE BOARD 3.3V FROM THE PICO WILL BE SHORTED TO GROUND

A modern replacement keyboard for the Kaypro 10 that fits the original case, using Cherry MX-style switches and a Raspberry Pi Pico running MicroPython to emulate the original 300 baud serial keyboard interface.

Kaypro Keyboard PCB

KiCad 3D render of the PCB

Prototype Working

Prototype board installed and working


Overview

The original Kaypro 10 keyboard is increasingly difficult to find in working condition. This project provides a drop-in replacement that:

  • Fits the original Kaypro 10 keyboard case with no modifications
  • Uses modern Cherry MX-style mechanical switches
  • Communicates over the Kaypro's original 300 baud serial keyboard interface
  • Is driven by a Raspberry Pi Pico running MicroPython
  • Includes a 3D printed switch support plate (no metal plate in this design)

Repository Contents

All files are in the root of the repository.

FileDescription
*.kicad_pro, *.kicad_sch, *.kicad_pcb, etc.KiCad 10 schematic and PCB design files
KayproKeyboard.zipGenerated Gerber/manufacturing files, ready to send to a PCB fab
KayproKeyboard.pngKiCad 3D render of the board
keyboard support.stl3D printable switch support plate
main.pyMicroPython firmware for the Raspberry Pi Pico
PXL_20260531_222427528.jpgPhoto of the working prototype

Bill of Materials

QtyComponentNotes
761N4148 diodeOne per switch, for key matrix decoding
76Cherry MX-style switchesOne per key position
—PCB-mount stabilizersRequired for larger keys (spacebar, shift, enter, etc.) — quantity depends on layout
1Waveshare BS138 4-channel bidirectional level shifter module3.3V ↔ 5V logic level conversion
1Passive buzzer/speakerKey click feedback
1LED (single, any color)Status indicator
1330Ω resistorLED current limiting
147kΩ resistorPull-up/pull-down for serial line
1Protection diode5V input protection for the Pico
1Raspberry Pi PicoMain controller (standard Pico, not Pico W)
16-pin horizontal headerSerial interface connector to Kaypro mainboard

Note: Use 1N4148 diodes (or equivalent) for the key matrix. One diode is required per switch to prevent ghosting.


PCB Manufacturing

The file KayproKeyboard.zip contains all Gerber files needed for fabrication. It can be uploaded directly to most PCB manufacturers (JLCPCB, PCBWay, OSHPark, etc.) without modification.

Recommended specs:

  • Layers: 2
  • Thickness: 1.6mm
  • Surface finish: HASL or ENIG

3D Printed Support

Because this design does not use a metal switch plate, a 3D printed support structure (keyboard support.stl) is included to provide rigidity and hold the switches in alignment during soldering and use.

Print in PLA or PETG at 0.2mm layer height with at least 20% infill. No supports should be needed.


Firmware

The Pico runs MicroPython. Copy main.py to the Pico's root filesystem and it will start automatically on boot.

Flashing the Pico

  1. Hold the BOOTSEL button and connect the Pico to your computer via USB.
  2. It will appear as a USB mass storage device (RPI-RP2).
  3. Flash the latest MicroPython UF2 by dragging it onto the drive.
  4. Once rebooted, use a tool like Thonny or mpremote to copy main.py to the Pico:
    text
    mpremote cp main.py :main.py

The firmware reads the key matrix, debounces inputs, and outputs the correct character codes over the serial interface at 300 baud to match the Kaypro's original keyboard protocol.


Connector Pinout

The keyboard connects to the Kaypro 10 mainboard via a 6-pin horizontal header. Pinout, numbered left to right:

PinSignalDescription
15VPower from Kaypro mainboard
2TXSerial data out — keyboard → Kaypro, 300 baud
3GNDGround
4GNDGround
5—Missing/keyed pin (no connection)
6RXSerial data in — Kaypro → keyboard, 300 baud

⚠️ Important: This pinout was determined from an 1983-spec Kaypro 10. It may not be universal across all Kaypro models or revisions. Verify against your own machine before connecting. The protection diode on the 5V input and the BS138 level shifter are strongly recommended to avoid damaging the Pico.

The BS138 level shifter module handles 3.3V Pico ↔ 5V Kaypro logic translation on the TX and RX lines.


Design Files

Schematics and PCB layout were created in KiCad 10. The KiCad project files are in the root directory and can be opened and modified freely.


License

This project is open source. Schematics, PCB files, firmware, and mechanical files are provided as-is for personal and educational use.

Contributions, improvements, and ports to other Kaypro models are welcome — open a PR or issue!

Parts

163
QtyValueFootprintReferences
761N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +60
2C_Polarized_USCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1, C2
2Conn_01x06PCM_SparkFun-Connector:1x06_P2.54mmJ2, J3
1'_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW41
1,_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW43
1-_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW37
1._KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW44
1/_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW45
10_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW36
11N5817Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD77
11_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW27
12_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW28
1330Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR2
13_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW29
14.7KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1
14_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW30
15_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW31
16_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW32
17_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW33
18_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW34
19_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW35
1;_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW40
1=_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW38
1A_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1
1BACKSPACE_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW52
1B_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW2
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1CAPSLEDLED_THT:LED_D1.8mm_W1.8mm_H2.4mm_Horizontal_O1.27mm_Z4.9mmD76
1CAPS_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.75u_PCBSW50
1CTRL_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW49
1C_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW3
1Conn_01x06_PinConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_HorizontalJ1
1DEL_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW51
1DOWN_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW59
1D_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW4
1ESC_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW54
1E_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW5
1F_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW6
1G_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW7
1H_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW8
1I_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW9
1J_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW10
1K_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW11
1LEFT_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW60
1LINEFEED_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW57
1LSHIFT_KeyButton_Switch_Keyboard:SW_Cherry_MX_2.00u_PCBSW46
1L_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW12
1M_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW13
1NUM,_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW75
1NUM-_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW74
1NUM._KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW72
1NUM0_KeyButton_Switch_Keyboard:SW_Cherry_MX_2.00u_PCBSW62
1NUM1_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW63
1NUM2_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW64
1NUM3_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW65
1NUM4_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW66
1NUM5_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW67
1NUM6_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW68
1NUM7_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW69
1NUM8_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW70
1NUM9_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW71
1NUMENTER_KeyButton_Switch_Keyboard:SW_Cherry_MX_2.00u_Vertical_PCBSW73
1N_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW14
1O_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW15
1P_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW16
1PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU1
1Q_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW17
1RETURN_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.50u_PCBSW56
1RIGHT_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW61
1RSHIFT_KeyButton_Switch_Keyboard:SW_Cherry_MX_2.00u_PCBSW47
1R_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW18
1SPACE_KeyButton_Switch_Keyboard:SW_Cherry_MX_6.25u_PCBSW53
1S_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW19
1TAB_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.75u_PCBSW55
1T_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW20
1UP_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW58
1U_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW21
1V_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW22
1W_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW23
1X_KeyButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW24

The 157 most common of 163 parts.

Similar boards

  • 2 layers139.7 × 88.9 mmCharge Controller, the printed circuit board in 3D

    Charge Controller

    jharvey/Charge_Controller

    MPPT hardware which uses FUGU firmware

    163 parts24
  • 2 layers187 × 152 mmKiss masterboard, the printed circuit board in 3D

    Kiss masterboard

    squarewavedot/ledcubeelectronics

    LEDCube battery and masterboard electronics

    163 parts22
  • 2 layers174 × 121.1 mmMainRobotBoardTeensy, the printed circuit board in 3D

    MainRobotBoardTeensy

    01binary/str1ker

    A human-scale mech integrated with Robot Operating System

    163 parts20
  • 2 layers140 × 90 mmPicoIndustrial, the printed circuit board in 3D

    PicoIndustrial

    feecat/PicoIndustrial

    Industrial Control Module Based on RPI PICO

    163 parts14GPL-3.0
  • 2 layers285 × 95.8 mmCcd60, the printed circuit board in 3D

    Ccd60

    westfoxtrot/ccd60

    ccd60 is a generic 60% PCB used for Cable Car Designs keyboard designs.

    163 parts13CC-BY-SA-4.0
  • 2 layers90.2 × 109.9 mmCircuit pcb smd dac, the printed circuit board in 3D

    Circuit pcb smd dac

    Testbild-synth/super-sweet-16

    Deluxe 16-step knob-per-function sequencer Module for eurorack

    163 parts12MIT
  • 2 layers286.4 × 96.1 mmVoidHHKB Solder, the printed circuit board in 3D

    VoidHHKB Solder

    hungrygeek/HSKB

    Open-source HHKB-layout MX custom keyboard — KiCad PCB, case STL, QMK/VIA firmware. Personal iteration of the HSKB (Happy Sabi Keyboard).

    163 parts5

Questions

How big is the KayproKeyboard PCB?

It measures 427.9 × 155 mm and has 2 copper layers, 1.6 mm thick.

What parts does the KayproKeyboard use?

163 parts. 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 KayproKeyboard KiCad files?

From the jasperhax0r/Kaypro10Keyboard repository on GitHub, at the commit this page was made from: the board is KayproKeyboard.kicad_pcb and its schematic KayproKeyboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

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