

Vakeyboard
Custom made TKL RGB HotSwap keyboard.
- Size
- 349 × 128 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 310
- Nets
- 416
- Pads
- 1,577
- Tracks, vias
- 5,656, 894
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 1 Aug 2020
- Updated
- 10 Nov 2023
Overview
Vakeyboard is an open-source printed circuit board by vladimir-aubrecht, from the vladimir-aubrecht/Keyboard repository on GitHub. It is a 2-layer board of 349 × 128 mm with 310 parts on 416 nets, routed with 5,656 tracks and 894 vias.
It is built around the MAX7301ATL+. Its parts include 20 resistors, 16 capacitors, 10 ICs and 2 connectors. It belongs with the keyboards and input and lEDs and displays boards of this library.
Main components
1README
readme.mdKeyboard overview
As usual, I started with this project because I couldn't find keyboard I'd like to use.
This project is trying to build following:
- :white_check_mark: TKL hotswap keyboard for Cherry MX switches.
- :white_check_mark: RGB LEDs under each switch (individually controllable from connected device).
- :white_check_mark: Bluetooth 5.0.
- :white_check_mark: Charging through USB-C.
- :construction: Anodized aluminium frame of Filco Majestouch 2 design.
- :white_check_mark: Part of case with connector is removable & replacable (to replace either connector or whole microcontroller for any other).
Side features:
- :white_check_mark: Except of sockets & connectors for connecting to MCU everything is on front side for soldering on JCLPCB side.
- :white_check_mark: Modularity - All logic chips are on separate modules. Main PCB contains just RGB LEDs, sockets and IO expanders with LED drivers.
❤️ I have some spare PCBs based on Revision 1 & 2.
I will donate 1 piece of PCB per person (develiry paid by you). Be aware, that it's just PCB, components must be soldered by you.
Current status
Revision 2 PCB is working, check details about the rev 2 build and manual!
I am finishing validation of adjusted casing and planning aluminium manufacturing soon.
If you are interested in more granular updates, I created this Discord channel where I'll be posting status, photos, ideas, etc.
Achievements
- :zap: It's fast. In Joltfly test I got 0 ms latency. My internal measurements are 500 microseconds.
- :high_brightness: It's bright. RGB LED lights are well visible even during the daylight.
Next steps
Polishing firmware is main focus. It's working, but there is a lot of technical debt there due to support of multiple microcontrollers for testing. I started to work on QMK support.
For more details on long term plans you can check this document.

Check more photos! :)
Credits
- Jakub for printing case for me on Prusa XL so I can have it in single piece :)
Parts
310| Qty | Value | Footprint | References |
|---|---|---|---|
| 87 | D | Diode_SMD:D_SOD-523 | D_;1, D_.1, D_'1, D_/1, D_1, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9, D_10, D_A1, D_B1 +71 |
| 87 | LED | Footprints:19-237 | RGB_;1, RGB_.1, RGB_'1, RGB_/1, RGB_A1, RGB_B1, RGB_BCKSP1, RGB_C1, RGB_CAPSL1, RGB_COMA1, RGB_D1, RGB_DEL1, RGB_DOWN1, RGB_E1, RGB_EIGHT1, RGB_END1 +71 |
| 19 | R 10 kOhm | Footprints:R_0402_1005Metric | R1, R3, R4, R5, R6, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20 +3 |
| 9 | C_100nF | Footprints:C_0402_1005Metric | C2, C4, C8, C10, C13, C15, C17, C19, C21 |
| 9 | IS31FL3743-QF | Footprints:QFN-40-1EP_5x5mm_P0.4mm_EP3.4x3.4mm | U3, U4, U5, U6, U8, U9, U10, U11, U12 |
| 6 | C 1uF | Footprints:C_0402_1005Metric | C1, C3, C11, C14, C16, C20 |
| 2 | Alt | Footprints:CherryMX_PlateMount_HotSwap_1.25u | K_LWIN1, K_RWIN1 |
| 2 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1, J2 |
| 2 | Control | Footprints:CherryMX_PlateMount_HotSwap_1.25u | K_LCTRL1, K_RCTRL1 |
| 2 | Win | Footprints:CherryMX_PlateMount_HotSwap_1.25u | K_LALT1, K_RALT1 |
| 1 | ' | Footprints:CherryMX_PlateMount_HotSwap_1u | K_'1 |
| 1 | , | Footprints:CherryMX_PlateMount_HotSwap_1u | K_COMA1 |
| 1 | - | Footprints:CherryMX_PlateMount_HotSwap_1u | K_MINUS1 |
| 1 | . | Footprints:CherryMX_PlateMount_HotSwap_1u | K_.1 |
| 1 | / | Footprints:CherryMX_PlateMount_HotSwap_1u | K_/1 |
| 1 | 0 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_0 |
| 1 | 1 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_1 |
| 1 | 2 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_2 |
| 1 | 3 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_3 |
| 1 | 4 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_4 |
| 1 | 5 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_5 |
| 1 | 6 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_6 |
| 1 | 7 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_7 |
| 1 | 8 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_8 |
| 1 | 9 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_9 |
| 1 | ; | Footprints:CherryMX_PlateMount_HotSwap_1u | K_;1 |
| 1 | = | Footprints:CherryMX_PlateMount_HotSwap_1u | K_EQUAL1 |
| 1 | A | Footprints:CherryMX_PlateMount_HotSwap_1u | K_A1 |
| 1 | B | Footprints:CherryMX_PlateMount_HotSwap_1u | K_B1 |
| 1 | BackSpace | Footprints:CherryMX_PlateMount_HotSwap_2u | K_BCKSP1 |
| 1 | C | Footprints:CherryMX_PlateMount_HotSwap_1u | K_C1 |
| 1 | C_47nF | Footprints:C_0402_1005Metric | C5 |
| 1 | Caps Lock | Footprints:CherryMX_PlateMount_HotSwap_1.75u | K_CAPSL1 |
| 1 | D | Footprints:CherryMX_PlateMount_HotSwap_1u | K_D1 |
| 1 | Delete | Footprints:CherryMX_PlateMount_HotSwap_1u | K_DEL1 |
| 1 | Down | Footprints:CherryMX_PlateMount_HotSwap_1u | K_DOWN1 |
| 1 | E | Footprints:CherryMX_PlateMount_HotSwap_1u | K_E1 |
| 1 | End | Footprints:CherryMX_PlateMount_HotSwap_1u | K_END1 |
| 1 | Enter | Footprints:CherryMX_PlateMount_HotSwap_2.25u | K_ENTER1 |
| 1 | Esc | Footprints:CherryMX_PlateMount_HotSwap_1u | K_ESC1 |
| 1 | F | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F_1 |
| 1 | F1 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F1 |
| 1 | F10 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F10 |
| 1 | F11 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F11 |
| 1 | F12 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F12 |
| 1 | F2 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F2 |
| 1 | F3 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F3 |
| 1 | F4 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F4 |
| 1 | F5 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F5 |
| 1 | F6 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F6 |
| 1 | F7 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F7 |
| 1 | F8 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F8 |
| 1 | F9 | Footprints:CherryMX_PlateMount_HotSwap_1u | K_F9 |
| 1 | G | Footprints:CherryMX_PlateMount_HotSwap_1u | K_G1 |
| 1 | H | Footprints:CherryMX_PlateMount_HotSwap_1u | K_H1 |
| 1 | Home | Footprints:CherryMX_PlateMount_HotSwap_1u | K_HOME1 |
| 1 | I | Footprints:CherryMX_PlateMount_HotSwap_1u | K_I1 |
| 1 | Insert | Footprints:CherryMX_PlateMount_HotSwap_1u | K_INS1 |
| 1 | J | Footprints:CherryMX_PlateMount_HotSwap_1u | K_J1 |
| 1 | K | Footprints:CherryMX_PlateMount_HotSwap_1u | K_K1 |
| 1 | L | Footprints:CherryMX_PlateMount_HotSwap_1u | K_L1 |
| 1 | Left | Footprints:CherryMX_PlateMount_HotSwap_1u | K_LEFT1 |
| 1 | M | Footprints:CherryMX_PlateMount_HotSwap_1u | K_M1 |
| 1 | MAX7301ATL+ | Footprints:QFN50P600X600X80-41N | U1 |
| 1 | Menu | Footprints:CherryMX_PlateMount_HotSwap_1.25u | K_FN1 |
| 1 | N | Footprints:CherryMX_PlateMount_HotSwap_1u | K_N1 |
| 1 | O | Footprints:CherryMX_PlateMount_HotSwap_1u | K_O1 |
| 1 | P | Footprints:CherryMX_PlateMount_HotSwap_1u | K_P1 |
| 1 | Page Down | Footprints:CherryMX_PlateMount_HotSwap_1u | K_PGDOWN1 |
| 1 | Page Up | Footprints:CherryMX_PlateMount_HotSwap_1u | K_PGUP1 |
| 1 | Pause | Footprints:CherryMX_PlateMount_HotSwap_1u | K_PAUSE1 |
| 1 | Print Screen | Footprints:CherryMX_PlateMount_HotSwap_1u | K_PRNT1 |
| 1 | Q | Footprints:CherryMX_PlateMount_HotSwap_1u | K_Q1 |
| 1 | R | Footprints:CherryMX_PlateMount_HotSwap_1u | K_R1 |
| 1 | R_39_kOhm | Footprints:R_0402_1005Metric | R2 |
| 1 | Right | Footprints:CherryMX_PlateMount_HotSwap_1u | K_RIGHT1 |
| 1 | S | Footprints:CherryMX_PlateMount_HotSwap_1u | K_S1 |
| 1 | Scroll Lock | Footprints:CherryMX_PlateMount_HotSwap_1u | K_SCRL1 |
| 1 | Shift | Footprints:CherryMX_PlateMount_HotSwap_2.25u | K_LSHIFT1 |
| 1 | Shift | Footprints:CherryMX_PlateMount_HotSwap_2.75u | K_RSHIFT1 |
The 295 most common of 310 parts.
More from vladimir-aubrecht/Keyboard
1- 2 layers82.4 × 128 mm

Similar boards
- 2 layers329.2 × 131.1 mm

- 2 layers352.5 × 120 mm

PyKey87
jpconstantineau/PyKey60
The PyKey60 is a custom programmable mechanical keyboard with a standard ANSI 60% keyboard layout compatible with any cases made for the GH60. The PyKey60 uses mechanical switches (Cherry MX type).
310 parts57 - 2 layers250 × 250 mm

- 2 layers200 × 115 mm

BMSJ
Arrow-air/project-longshot
Project Longshot documentation, designs, and project artifacts.
310 parts4CERN-OHL-S-2.0 - 2 layers168 × 150 mm

- 2 layers330 × 106 mm

- 2 layers406.8 × 119 mm

Polished Amethyst
AGB556/Polished-Amethyst
a second iteration of my amethyst keyboard that is better designed, adds more features, and is the result of my experience with the first version of Amethyst
310 partsMIT - 2 layers200 × 200 mm

Questions
How big is the Vakeyboard PCB?
It measures 349 × 128 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Vakeyboard use?
310 parts, built around the MAX7301ATL+. 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 Vakeyboard KiCad files?
From the vladimir-aubrecht/Keyboard repository on GitHub, at the commit this page was made from: the board is pcb/TKL Keyboard/vakeyboard.kicad_pcb and its schematic pcb/Numpad Keyboard/Numpad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Vakeyboard design in my own project?
Its repository states no licence, so its author keeps all rights: ask vladimir-aubrecht before reusing the design.