Skip to the content
2 layers312.4 × 128.7 mmAmelia's Keyboard, the printed circuit board in 3D

Amelia's Keyboard

XinyiC222/Keyboard81X2

A custom 75% pcb keyboard with 81 keys, and a rotary encoder.

Size
312.4 × 128.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
179
Nets
126
Pads
1,025
Tracks, vias
775, 69
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 May 2026
Updated
25 Oct 2026

Overview

Amelia's Keyboard is an open-source printed circuit board by XinyiC222, from the XinyiC222/Keyboard81X repository on GitHub, published under the MIT licence. It is a 2-layer board of 312.4 × 128.7 mm with 179 parts on 126 nets, routed with 775 tracks and 69 vias.

Its parts include 87 switches, 82 diodes, 2 resistors and 1 connector. It belongs with the keyboards and input boards and the RP2040 boards of this library.

README

README.md

Keyboard81X WORK IN PROGRESS

A custom 75% PCB keyboard with a rotary encoder and 81 keys.

Screenshot 2026-08-02 at 5 42 08 PM image image image

Build Notes

  • PCB was designed in KiCad using a keyswitch plugin.
    • If you are trying to find it here are the ones I used:
      • KLE Placer /Organize the keys and diodes automatically based on .json file
      • JLCPCB tools / used for BOM and Placement for JLC pcbs (EDIT: New version does not use JLCPCB assembly so this tool was no longer used in the final version. But this tool really do come in handy!)
  • Case was modeled in Fusion.

Tools I used

How To Build Your Own!

PCB

  1. Build your layout with the layout editor I mentioned in the tools I used.
  2. Download the .json file from there.
  3. In KiCad schematics choose your microcontroller or just use a chip. I used a Raspberry Pi Pico for the final version and placed it under the space bar. Other option: you could use a RP2040 chip and build somewhat of a dev board inside the project. That includes the Flash Memory to store the code, Crystal Oscillator (it's like the conductor), USB for power with a voltage regulator, and some capacitors.
  4. Then add the current amount of MX_SW_HS you need based on the layout you made.
  5. Add the same amount of diodes so each key has one that includes any rotary encoders.
  6. Then after that you can add some MX_Stab for the ones you want to stabilize. Some keys like the spacebar need stabilizers, so you can change them to different footprints from the other keys. If you decided to use plate mounted stabilizers instead, you can leave this part out, otherwise if you're using pcb mounted stabilizers then you should add MX_Stab.
  7. Add footprint to all your components and don't forget to Annotate the entire Schematics
  8. Now when designing the PCB, using the .json file and the KLE Placer plugin, you can easily place them all accordingly.
  9. Remember to add a border around to create the edge of the PCB in the Edge.cut layer.
  10. Organize all the components to your liking and route all of them to each other.
  11. Generate the Gerber Files!
  12. Then if you were to use JLCPCB assembly, you can use the JLCPCB tools to find all the components and create the correct BOM and CPL.
  13. You can then upload those files into JLCPCB and order from there!!

Case

  1. Go into Fusion and create a new project.
  2. Download the 3D view of your keyboard from KiCad and upload it (for reference!)
  3. Then make the case around it any way you like. If you are 3D printing remember that prints can shrink so you need to account for tolerances especially holes
  4. you can add a plate and any type of mounting you want
  5. If you are adding a plate, the plate generator I included above might be helpful
  6. For the plate if you are 3D printing with PLA, having it at 1.5mm thick is usually not strong enough. Set it to 3mm but leave the area around the stabilizers to be 1.5mm. Note that prioritizing stability would cause your switches to not clip on correctly, but will still be tight enough to hold them.

That's pretty much a good summary of how to build your own keyboard! Thanks for reading it and I hope you learned something new. This is my first big project and definitely my first keyboard build so I don't expect everything to be correct. So if you are building this based off of mine, it's not guaranteed to work. Have fun!!

Schematics

Screenshot 2026-09-01 at 12 31 02 PM

PCB

Screenshot 2026-09-01 at 12 35 40 PM Screenshot 2026-09-01 at 12 37 00 PM Screenshot 2026-09-01 at 12 36 49 PM

BOM

Everything under quantity is the amount you need but the links you buy them come in bulk so they give you more than what you need.

ItemPurposePriceQuantitySource
Raspberry Pi PicoMirco-controller$1.991Aliexpress
1N5817 DO-41USB_C VBUS$1.79x1Aliexpress
Keycapsfor the Keys$4.73x80Aliexpress
Plate Mounted Stabilizersstab for space bar etc$2.99has one 6.25u and two 2uAliexpress
SMD turtle switchesReset button$2.19x1Aliexpress
Hot Swap Socketshot swap keys$6.20x80Aliexpress
Silent Axis switchswitches$7.66x80Aliexpress
Type C FemalePCB for power$2.24x1Aliexpress
Soldersoldering$2.14x1Aliexpress
5.1k resistorsfor ground near usb-c$2.48x2Aliexpress
IN4148 DO-35matrix$1.92x81Aliexpress
Heat InsertsTo mount plate$0.002Already Owned
M2.5 x 15mm boltsMount plate$0.002Already Owned
Rotary EncoderVolume knob$0.001Already Owned
PCBConnects everything$39.361JLCPCB
3D Printscase for all the parts$0.00Printing Legion
Sub-Total+Tax$37.48Aliexpress
Total$76.84All Combined

Credits

Hack Club macondo kicad Fusion 360

Parts

179
QtyValueFootprintReferences
81D_SmallScottoKeebs_Components:Diode_DO-35D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +65
67MX_SW_HSPCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1uSW1, SW2, SW10, SW11, SW12, SW13, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24 +51
6LOGOLOGOG***, G***, G***, G***, G***, G***
4MX_SW_HSPCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1.5uSW30, SW43, SW75, SW77
3MX_SW_HSPCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1.25uSW73, SW74, SW78
2MX_SW_HSPCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1.75uSW45, SW70
2MX_SW_HSPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_2.00uSW28, SW57
2MX_stabPCM_marbastlib-mx:STAB_MX_P_2.25uS57, S59
2MX_stabPCM_marbastlib-mx:STAB_MX_P_2uS28, S70
1BOOTSELButton_Switch_SMD:SW_SPST_TS-1088-xR025SW83
1DiodeDiode_THT:D_DO-41_SOD81_P7.62mm_HorizontalD91
1MX_SW_HSPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_6.25uSW76
1MX_SW_HSPCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_2.25uSW59
1R1Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
1R2Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2
1RSTButton_Switch_SMD:SW_SPST_TS-1088-xR025SW82
1RaspberryPi_PicoModule:RaspberryPi_Pico_SMDA1
1RotaryEncoder_SwitchScottoKeebs_Scotto:Encoder_EC11_MXSW14
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HCTL_HC-TYPE-C-16P-01AJ1

Similar boards

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

    Hydromisc

    hydromisc/hydromisc

    Open hardware to measure EC and pH, drive pumps, and otherwise manage a mid-size hydroponic grow over Wi-Fi.

    179 parts526
  • 2 layers95 × 95 mmXY LED, the printed circuit board in 3D

    XY LED

    intechstudio/grid-hardware

    179 parts59GPL-3.0
  • 2 layers80.9 × 108.2 mmVca, the printed circuit board in 3D

    Vca

    spielhuus/elektrophon

    Modular analog electro acoustic noise machine.

    179 parts32
  • 2 layers150 × 50 mmEsp32-led smps, the printed circuit board in 3D

    Esp32-led smps

    lucysrausch/esp32-led-smps

    230V main LED smps. 2x30W Constant Current.

    179 parts30
  • 2 layers178.2 × 110.9 mmLegRobotBoardTeensy, the printed circuit board in 3D

    LegRobotBoardTeensy

    01binary/str1ker

    A human-scale mech integrated with Robot Operating System

    179 parts20
  • 2 layers100 × 100 mmAfm, the printed circuit board in 3D

    Afm

    cubitel/afm

    DIY Atomic Force Microscope

    179 parts16GPL-3.0
  • 2 layers303.8 × 94.2 mmChilineko pcb, the printed circuit board in 3D

    Chilineko pcb

    Cipulot/Chilineko

    Hot-swappable version of the Bakeneko 65 with extra layouts support.

    179 parts12MIT
  • 2 layers66.7 × 61.7 mmVday, the printed circuit board in 3D

    Vday

    niteshkadyan/Hearty-LED-Necklace-Badge

    Kicad project files and Android app for the Hearty LED wearable necklace cum badge

    179 parts10MIT

Questions

How big is the Amelia's Keyboard PCB?

It measures 312.4 × 128.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Amelia's Keyboard use?

179 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 Amelia's Keyboard KiCad files?

From the XinyiC222/Keyboard81X repository on GitHub, at the commit this page was made from: the board is Project Files/Kicad/Amelia's Keyboard.kicad_pcb and its schematic Project Files/Kicad/Amelia's Keyboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Amelia's 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).