C128SX MX Keyboard
sjgray·CBM-MX-Keyboards·C128SX/CSX-V1-R1/C128SX-mx.kicad_pcb
About the C128SX MX Keyboard PCB
C128SX MX Keyboard is an open source AVR/Arduino PCB design by sjgray, published on GitHub. It is a 2-layer board measuring 404.4 × 137.6 mm, with 136 components from 122 distinct parts.
Its main chip is the ATtiny214-SS, from the AVR/Arduino family. Other key parts include the CD4066BM. By type, the board carries 109 switches, 8 connectors, 6 capacitors, 5 diodes, 4 resistors and 3 ICs.
It belongs with the keyboards and retro computing designs in this gallery.
From the project
Replacement and enhanced keyboards for Commodore machines
This is an MX keyboard with multiple possible configurations by snapping off sections or populating keys in different locations and setting jumpers. This design can use standard MX keyswitches, or Gateron Low-Profile switches. I recommend Low-Profile when making C128 or SX64 keyboards.
1) Main section - Letters, numbers, spacebar, cursor etc. 2) The C128 top row keys: ESC, Scroll lock, 40/80, cursor, function keys. 3) Numeric pad. 4) SX64 function keys (embedded in numeric pad).
Main components on the C128SX MX Keyboard
C128SX MX Keyboard bill of materials (BOM)
136 components, 122 distinct parts.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 2 | CD4066BM | SO-14_3.9x8.65mm_P1.27mm | U1, U2 |
| 1 | ATtiny214-SS | SOIC-14_3.9x8.7mm_P1.27mm | U3 |
| 2 | C128-Header | PinHeader_1x25_P2.54mm_Vertical | J1, J12 |
| 1 | FK1 | PinHeader_1x05_P2.54mm_Vertical | J2 |
| 2 | Conn_01x13 | PinHeader_1x13_P2.54mm_Vertical | J3, J7 |
| 1 | DRIVE LED | PinHeader_1x02_P2.54mm_Vertical | J4 |
| 1 | UPDI HEADER | PinHeader_1x03_P2.54mm_Vertical | J5 |
| 1 | POWER | PinHeader_1x02_P2.54mm_Vertical | J6 |
| 1 | K1 SELECT | SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabels | JP1 |
| 2 | "F1" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW1, SW70 |
| 2 | "F3" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW2, SW71 |
| 2 | "F5" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW3, SW72 |
| 2 | "F7" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW4, SW73 |
| 1 | "BACK-ARROW" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW5 |
| 1 | "1" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW6 |
| 1 | "2" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW7 |
| 1 | "3" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW8 |
| 1 | "4" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW9 |
| 1 | "5" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW10 |
| 1 | "6" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW11 |
Show 102 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | "7" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW12 |
| 1 | "8" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW13 |
| 1 | "9" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW14 |
| 1 | "0" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW15 |
| 1 | "+" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW16 |
| 1 | "-" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW17 |
| 1 | "POUND" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW18 |
| 1 | "HOME" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW19 |
| 1 | "DEL" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW20 |
| 1 | "CTRL" | SW_Hybrid_CherryMX_GateronLP_1.50u_PCB | SW21 |
| 1 | "Q" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW22 |
| 1 | "W" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW23 |
| 1 | "E" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW24 |
| 1 | "R" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW25 |
| 1 | "T" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW26 |
| 1 | "Y" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW27 |
| 1 | "U" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW28 |
| 1 | "I" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW29 |
| 1 | "O" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW30 |
| 1 | "P" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW31 |
| 1 | "@" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW32 |
| 1 | "*" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW33 |
| 1 | "UP-ARROW" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW34 |
| 1 | "RESTORE" | SW_Hybrid_CherryMX_GateronLP_1.50u_PCB | SW35 |
| 1 | "STOP" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW36 |
| 1 | "SHIFT LOCK" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW37 |
| 1 | "A" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW38 |
| 1 | "S" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW39 |
| 1 | "D" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW40 |
| 1 | "F" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW41 |
| 1 | "G" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW42 |
| 1 | "H" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW43 |
| 1 | "J" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW44 |
| 1 | "K" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW45 |
| 1 | "L" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW46 |
| 1 | ":" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW47 |
| 1 | ";" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW48 |
| 1 | "=" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW49 |
| 1 | "RETURN" | SW_Hybrid_CherryMX_GateronLP_2.00u_PCB | SW50 |
| 1 | "C=" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW51 |
| 1 | "LEFT SHIFT" | SW_Hybrid_CherryMX_GateronLP_1.50u_PCB | SW52 |
| 1 | "Z" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW53 |
| 1 | "X" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW54 |
| 1 | "C" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW55 |
| 1 | "V" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW56 |
| 1 | "B" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW57 |
| 1 | "N" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW58 |
| 1 | "M" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW59 |
| 1 | "," | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW60 |
| 1 | "." | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW61 |
| 1 | "/" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW62 |
| 1 | RIGHT SHIFT | SW_Hybrid_CherryMX_GateronLP_1.50u_PCB | SW63 |
| 1 | "UP/DN" CONFIG | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW64 |
| 1 | "LFT/RGT" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW65 |
| 1 | "SPACE" | SW_Hybrid_CherryMX_GateronLP_6.0u_Stabs_PCB | SW66 |
| 1 | "LEFT" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW67 |
| 1 | "DOWN" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW68 |
| 1 | "RIGHT" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW69 |
| 1 | C128 F1+ | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW74 |
| 1 | C128 F3+ | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW75 |
| 1 | C128 F5+ | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW76 |
| 1 | C128 F7+ | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW77 |
| 1 | KP "7" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW78 |
| 1 | KP "8" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW79 |
| 1 | KP "9" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW80 |
| 1 | KP "+" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW81 |
| 1 | KP "4" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW82 |
| 1 | KP "5" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW83 |
| 1 | KP "6" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW84 |
| 1 | KP "-" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW85 |
| 1 | KP "1" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW86 |
| 1 | KP "2" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW87 |
| 1 | KP "3" | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW88 |
| 1 | KP "ENTER" | SW_Hybrid_CherryMX_GateronLP_2.00u_Vertical_PCB | SW89 |
| 1 | KP "0" | SW_Hybrid_CherryMX_GateronLP_2.00u_NoStab_PCB | SW90 |
| 1 | KP "." | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW91 |
| 1 | L-SPC | SW_Hybrid_CherryMX_GateronLP_1.50u_PCB | SW92 |
| 1 | R-SPC | SW_Hybrid_CherryMX_GateronLP_1.50u_PCB | SW93 |
| 1 | C128 ESC | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW94 |
| 1 | C128 TAB | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW95 |
| 1 | C128 ALT | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW96 |
| 1 | C128 CAPSLOCK | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW97 |
| 1 | C128 HELP | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW98 |
| 1 | C128 LF | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW99 |
| 1 | C128 40/80 | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW100 |
| 1 | NOSCROLL | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW101 |
| 1 | C128 UP | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW102 |
| 1 | C128 DOWN | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW103 |
| 1 | C128 LEFT | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW104 |
| 1 | C128 RIGHT | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW105 |
| 1 | C128 F1 | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW106 |
| 1 | C128 F3 | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW107 |
| 1 | C128 F5 | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW108 |
| 1 | C128 F7 | SW_Hybrid_CherryMX_GateronLP_1.00u_PCB | SW109 |
| 2 | LED | LED_D3.0mm | D1, D2 |
| 1 | SL-LED | LED_D3.0mm | D3 |
| 1 | CAPS-LED | LED_D3.0mm | D4 |
| 1 | 4080-LED | LED_D3.0mm | D5 |
| 3 | 220pf | C_Disc_D4.7mm_W2.5mm_P5.00mm | C1, C2, C3 |
| 3 | C | C_Disc_D5.0mm_W2.5mm_P5.00mm | C5, C6, C7 |
| 2 | 510 | R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1, R2 |
| 2 | R_Network04 | R_Array_SIP5 | RN1, RN2 |
C128SX MX Keyboard design files
The KiCad project lives in the sjgray/CBM-MX-Keyboards repository on GitHub; these links point at the commit this page was built from.
C128SX MX Keyboard: common questions
What microcontroller does the C128SX MX Keyboard use?
The C128SX MX Keyboard is built around the ATtiny214-SS, from the AVR/Arduino family.
How big is the C128SX MX Keyboard PCB?
The C128SX MX Keyboard measures 404.4 × 137.6 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the C128SX MX Keyboard?
136 components, from 122 distinct parts. The full bill of materials is listed on this page.
Where can I download the C128SX MX Keyboard design files?
From the sjgray/CBM-MX-Keyboards repository on GitHub, which has the KiCad layout and the schematic; the links under Design files point to each one.
Can I use the C128SX MX Keyboard design in my own project?
The repository has no license, so all rights stay with sjgray. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the C128SX MX Keyboard without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug AVR/Arduino firmware against it before you order a PCB.
More boards in CBM-MX-Keyboards
Similar boards
AVR/Arduino
Redox keyboard
mattdibi
162.2 × 126.5 mm77 parts2LMIT2.0kAVR/Arduino
V4
stuartpittaway
30 × 50 mm38 parts2LCC-BY-NC-4.01.1kAVR/Arduino
ModuleV450
stuartpittaway
30 × 61.4 mm39 parts2LCC-BY-NC-4.01.1kAVR/Arduino
Discipline
coseyfannitutti
304.9 × 122.8 mm170 parts2LCC-BY-NC-4.01.0kAVR/Arduino
Megadesk
gcormier
41.7 × 32.2 mm23 parts2LGPL-3.0818AVR/Arduino
Easyduino Atmega
Hanqaqa
68.8 × 53.6 mm35 parts4LCERN-OHL-P-2.0746