Skip to the content
2 layers316.7 × 133.4 mmKeybored, the printed circuit board in 3D

A 65% keyboard with 3D printed case

Size
316.7 × 133.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
202
Nets
127
Pads
969
Tracks, vias
2,850, 106
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
15 Sep 2020
Updated
5 Dec 2020

Overview

Keybored is an open-source printed circuit board by N0S-Party, from the N0S-Party/Staccato65 repository on GitHub. It is a 2-layer board of 316.7 × 133.4 mm with 202 parts on 127 nets, routed with 2,850 tracks and 106 vias.

It is built around the ATMEGA32U4 and WS2812B. Its parts include 83 diodes, 68 switches, 12 capacitors, 11 resistors and 4 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

Staccato65

CC BY-NC-SA 4.0

A 65% board with OLED, rotary encoder support, and a 3D printed case.

Keyboard_black

Keyboard_black_white

Keyboard

Specs:

  • 3D printed case (top mounted)
  • rotary encoder support
  • OLED screen
  • ATMega32u4 as microcontroller
  • USB C connector (with USB 2.0)
  • choice of a stepped caps lock
  • hot-swappable (if I don't end up cutting costs!)

Design goals:

  • separated arrow keys
  • 1.5u alt & ctrl keys with 1.75u shift
  • aesthetically pleasing through-hole diode layout on the front layer

Basically the layout will be similar to the Satisfaction75 and ID80, but without the function row. I also really like the look of the Discipline keyboards, so the layout of the diodes will somewhat try to reflect that.

One of my current concerns is that the firmware size might end up too big, since I'll have to use QMK's I2C and roatry encoder libraries in addition to multiple keyboard layouts -- but I guess we'll see once we get there.

Update 8/1

I started building the key matrix in the schematic. I originally wanted the schematic matrix to have a 1-to-1 mapping to the keyboard layout. It's actually done that way for the schematic of the Discipline, making it easy to route the traces for the PCB, and organize the layout even pre-PCB design. Unfortunately, it ended up being 15 columns by 6 rows for me. This was far too many pins to support for the ATmega32u4 since I need to save some pins to support the rotary encoder and OLED. I'm also planning to save the SCK, MOSI and MISO pins for ISP usage, in case I ever want to set fuse bits (though I'm willing to give these pins up if desperate measures need to be in play).

Update 8/4

Modified the matrix to now use 10 columns and 7 rows. This allows for a maximum of 69 switches and 1 rotary encoder switch. With the rotary encoder and OLED screen added, this oleaves the microcontroller with only one GPIO pin available (which means I could turn this into a 75% keyboard). I did come across mr.keeb's PCB generator, but for some reason there is a bug that messes up the layout if you use a non-standard matrix; Can't say I'm not happy, since this means that my previous work wasn't all for nothing. I'm planning on using Kailh hot-swap sockets, but I might undo this if I find that it's too costly.

Update 8/6

Got to making the key layout on the PCB. I'm thankful I have a spare top plate and a caliper to help me confirm my switch placement. A modification I made from my initial plan is that I'm now using the "columns" in the schematics as rows. I need about 14 keys per row, and have 7 keys per column in the schematic makes that transform easy. I'll now have two disjoint traces per row on the PCB. Also, I can't get that damn encoder footprint to be centered... I'll leave that for next time.

Update 8/12

I haven't updated here in a while, but that doesn't mean I haven't been working hard! I've finally managed to finish routing the PCB to a degree that I'm satisfied with. I might have to work a bit more on making the top right routing better, but I'd say the key routing was not too shabby. Fun fact, using Kicad 5.0.2 makes routing a pain. Traces never consistently "stuck" to each other the way I wanted it to. Thankfully, Kicad 5.1.6 was way more route-friendly. Unfortunately I couldn't really group the traces into fours that were aligned with the diode groups since some of the rows contained five switches instead of four. Nevertheless, clean routing was still possible and it still looks good as long as you don't look at it too hard. See below for pictures (you can see what I was talking about with the schematic matrix not being entirely 1-to-1 in dimension to the keyboard).

PCB and Schematics pictured are outdated. Please see the repo files for the updated versions PCB

Schematic

Update 12/5

Okay, I don't know if anyone was following this project, but while it did seem like I had a long hiatus, I was actually working quite a bit behind the scenes. With the help of Sagar, and another friend of ours, we managed to get the first few prototypes out. Many revisions had to be done with the case due to 3D printing tolerances and the limitations of a 3D printer. Another issue that was caught was that the PCB plate cutout for the spacebar stabilizer was actually facing the wrong way. Unfortunately I only found this out after I got the first batch delivered, so I just had to file down the troublesome cutout by a few milimeters. Ordering from JLC PCB, the cumulative costs of PCB + plate + parts is about 70 dollars, assuming you order a batch of 10. Surprisingly, we managed to get a small groupbuy going and will be making 10 keyboards for us and a few other friends. In terms of regrets, I maybe should have opted to pay for assembly costs from the fab as well, since soldering a keyboard takes about 4 hours total. But hey, I'm really good at drag soldering now at least. As for actual release, I'm not too confident in my PCB design skills yet to release a product to members of the community. If I ever had to refine this design for a round 2, I'd probably add ESD protection, fix the plate and also make some of the footprint placements nicer. Overall, I plan to make a macropad as my next project. The reasoning is so I could try out more experimental features that I've had in mind while keeping the risk low. We also hope to make a case out of metal, which may be a challenge in itself.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

CC BY-NC-SA 4.0

Parts

202
QtyValueFootprintReferences
67Dkeybored:DO-35_SOD27_5.08mmD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +51
66KEYSWkeyswitches:Kailh_socket_MX_optionalK1, K2, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23 +50
16WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD68, D69, D70, D71, D72, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83
60.1uCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC1, C2, C3, C4, C5, C7
2100nCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC11, C12
210kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR5, R6
222Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR3, R4
222pCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC6, C8
227kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR8, R9
24.7kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR10, R11
25.1kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR1, R2
2Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3, J4
11uCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC9
1330Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR7
14.7uCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC10
1ATMEGA32U4Package_QFP:TQFP-44_10x10mm_P0.8mmU1
1CrystalCrystal:Crystal_SMD_SeikoEpson_FA238-4Pin_3.2x2.5mm_HandSolderingY1
1ISPConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ2
1LOGOkeybored:sadge_decalG***
1Rot_Enc_SwRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW2
1SSD1306-Display_Graphickeybored:SSD1306_OLED_128x32_0.91_inchU2
1SW_PUSHButton_Switch_SMD:SW_SPST_TL3342SW1
1USB_C_Receptacle_USB2.0Type-C:USB_C_GCT_USB4085J1

The 182 most common of 202 parts.

Similar boards

  • 2 layers89 × 100 mmHub16, the printed circuit board in 3D

    Hub16

    joshajohnson/Hub16

    A macro pad with 16 keys, two rotary encoders, a four port USB hub, and plenty of LEDs!

    132 parts388
  • 2 layers232.2 × 76.7 mmCpm43, the printed circuit board in 3D

    Cpm43

    Gtrx0/cpm43

    40% mechanical keyboard with rgb underglow and single color backlight

    188 parts59
  • 2 layers230.5 × 82 mmVitamins included, the printed circuit board in 3D

    Vitamins included

    Duckle29/Vitamins-included

    This repo holds a variation of the lets split. This board requires no soldering

    214 parts49BSD-3-Clause
  • 2 layers229.6 × 77.2 mmKeyboard, the printed circuit board in 3D

    Keyboard

    ktec-hq/Daisy

    348 parts22
  • 2 layers61.9 × 65.9 mmTutelPad, the printed circuit board in 3D

    TutelPad

    0xCB-dev/0xCB-TutelPad

    An 8-key macropad

    40 parts6
  • 4 layers25 × 29.6 mmMicro, the printed circuit board in 3D

    Micro

    0xCB-dev/0xCB-micro

    1% - 65% keyboard controller with RGB underglow and a backlight driver

    45 parts5
  • 2 layers285 × 116 mmDK60TP, the printed circuit board in 3D

    DK60TP

    Dbroqua/DK60TP

    [MOVED] Another 60% keyboard with integrated trackpoint

    319 parts3GPL-3.0
  • 2 layers2,312.3 × 174.8 mmKeyboard, the printed circuit board in 3D

    Keyboard

    Dygmalab/Shortcut-Kicad-Schematic

    Shortcut v4 schematic and board layout

    164 parts2

Questions

How big is the Keybored PCB?

It measures 316.7 × 133.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Keybored use?

202 parts, built around the ATMEGA32U4 and WS2812B. 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 Keybored KiCad files?

From the N0S-Party/Staccato65 repository on GitHub, at the commit this page was made from: the board is keybored.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Keybored design in my own project?

Its repository states no licence, so its author keeps all rights: ask N0S-Party before reusing the design.