Erkbd

FCSTD · 3MF0 downloads
Auto-generated render — exports/case_left.3mf
1 / 7

Erkbd

3D printed, handwired, 44 key split mechanical keyboard

Overview

erkbd - Eriks Keyboard

Erkbd is a 3D printed, handwired 44 key split keyboard powered by qmk.

It features two encoders, two 1.3" 128x64 oled displays, and uses the waveshare rp2040zero development board.

It is inspired primarily by crkbd together with the layout of the void ergo s

The keyboard was designed using FreeCAD and printed using a Creality Ender 3v3 ke 3D printer using creality CR PLA filament.

The name ERiks KeyBoarD is ment to honor corne (crkbd), which pulled me down this money burning rabbit hole combined with the fact that my name is Erik.

Images

The knife was a short but intense meme on reddit.com/r/ErgoMechKeyboards they are not included.

Issues and things to be aware of before building

If you decide to build this be aware that this was my first 3D modeling project with no previous CAD experience. It is not perfect and there are a few issues listed here.

Case dimensions

For aesthic reasons I wanted the caps to be as close as possible to the case edge, it took some trial and error before getting it right. Printing with another printer or using other keycaps may cause the caps to hit the edge.

Before soldering, assemble the case and plate with switches and keycaps along the border and make sure the keycaps stay clear of the case.

You might be able to just sand the edges a little but let me know if it doesnt fit properly, and i will try to fix a new version with a larger gap.

Controller mount

The edges of the controller mount was too low in the first revision and i ended up having to use more hot glue than i would have liked to secure them. I have raised them a little and now the controllers should fit better and stay in place with just friction but i have not tried this this out since i have no more controllers.

Switch holes

The plate is 3mm thick but has pockets for the switches to click in. They fit well enough for regular use but if you plan to change keycaps i recomend putting some hot glue on each switch to secure them or be very careful when pulling the caps to not damage the matrix

Bumpers

To keep the profile low and avoid the screws from hitting each other in the middle of the spacers there are no pockets for the screws on the bottom of the case. Without bumpons they will scratch your desk.

Different OLED PCBs

There are different pcb versions of the sh1106 OLED modules where the pin headers are in slightly different places.

The frame is modeled for the right one in the picture. If you use left (which i did because i wanted white text) you will have to desolder the pin headers and solder wire directly to the pcb from below. The firmware can stay the same.

If you dont want to desolder the headers make sure to get the one to the right in the picture (blue text) then the headers will fit.

Also note that these they have ground and vcc pins reversed.

Spacer positions

The screws for two of the spacers holding the plate up are hidden behind the oled modules. This makes it important to mount these first. Care should also be taken if removing the case so they don't fall out to avoid having to remove the oled frame.

BOM

plate

  • ~18g x2 PLA Filament
  • 46 pcs mx compatible switches and keycaps
  • 2 pcs waveshare rp2040 zero development boards link
  • 2 pcs EC11 Rotary encoders link
  • 2 pcs DIP PJ320A trrs jacks link
  • 44 pcs 1N4148 diodes (or similar) link
  • 1 pcs 4.7K resistor link
  • Wire for the matrix. I tried using 26 AWG solid core wire i had lying around for everything but found it to thick and ended up wiring the matrix separatly with solid core wire and connect to the controller with thin stranded wire i teared of a ribbon cable.

Case

  • ~40g x2 PLA Filament
  • 18 pcs 5mm M2 brass female/female spacers and 36 matching screws (18 is a little overkill so some could be skipped) link
  • Silicone Bumpons link

Oleds

  • ~3g x2 PLA Filament
  • 2 pcs 1.3" SH1107 oleds (see note on different versions above) link
  • 8 pcs M3*12mm bolts (for mounting the oleds) link
  • 8 pcs M3*bolts

Regarding the m3 bolts you can use whichever you want as long as the dimensions match but don't get ugly ones.

Firmware

The keyboard source along with a default and debug keymap can be found in the official qmk_firmware repo here.

The prebuilt firmware in this repository is only intended for testing.

When creating your own keymap you can copy the keymaps/default directory for data driven keymap.json configuration or keymaps/debug if you want to use a regular keymap.c

The only difference is that the debug version logs matrix events to the console and prints handedness instead of mod/layer status to the oleds.

Build steps

Printing

The keyboard consists of 3 parts. The switch plate (printed face down), the case (printed face up) and the oled frame (printed face down). In addition to this you need to print 8 washers that sits between the oled pcb and plate to make the components stay clear of the plate and align the top of the frame with the bottom of the keycaps.

Since the oled frame and plate are printed upside down. The structure of your print plate and z-offset calibration will have a big impact on the result

Flash the controllers.

Before starting, flash the controllers with the debug version of the firmware. The default way to enter bootloader is to hold down boot and tap reset on the board.

After flashing, bootloader can be entered by

  • Double tapping reset on the controller
  • Bootmagic (Holding down key 0, 0 (left side) or 4, 5 (right side) when powering on
  • Adding QK_BOOT to your keymap.

Mount the switch plate and case.

Screw all the spacers to the switch plate and mount switches.

See Issues for note about keycap clearance and access to spacers

Handedness pin. LEFT side only

To identify which half is left and which half is right a ~4.7K Pull up resistor needs to be soldered between pin GP1 and 3.3V on the left half of the keyboard.

This is not a great position but wrapping the legs with electrical tape and bending it behind the usb port works decently

Solder and mount the OLEDS

Solder wire to the oled modules (see the note in the first section about different oled versions) make sure to note down which pin is which, you will not be able to see the text on the pcb once the frame is mounted.

Feed the wire through the hole in the plate and and screw everything in place using the M3 screws. The order from the top is

  • Oled frame
  • Oled module
  • Printed washers
  • Switch plate

Solder the the wires to the controllers.

Oled pinController pin
VDD3.3v
GNDGND
SDAGP2
SCLGP3

Remember to add the resistor.

Verify that the controler and oled works. When plugged right or left should be printed on the oled depending on wich side is connected.

Wire the matrix

There are many handwiring guides around. this is a good starting place.

Pins

The matrix pins are different on the right and left side.

Left side

RowPIN
0GP4
1GP5
2GP6
3GP7
ColumnPIN
0GP8
1GP9
2GP10
3GP11
4GP12
5GP13

Right side

RowPIN
0GP28
1GP27
2GP26
3GP15
ColumnPIN
0GP9
1GP10
2GP11
3GP12
4GP13
5GP14

Encoders When looked at from the bottom with the two pins pointing left and three pins to the right the order follows the table.

PadPin
AGP7
GNDGND
BGP8

The two pins on the other side are soldered to the matrix as a regular switch

TRRS

Push the trs jack into the slot on the plate with the three pins on one side pointing out sideways on the top

The jack will be held in place by the case so hot glue is optional but recommenced

ttrscontroller
1 legGP0
1 legGND
1 leg5v

Make sure you use the same legs on both halves. Double check with a multimeter before powering on.

Test, glue if needed, and assemble

Test everything before assembling the case, especially that you are able to enter the bootloader using bootmagic on both sides. Check the qmk console that all keys are properly registred.

Add hot glue where needed, in theory it should be possible to use no glue and have everything fixed by friction but i recommend at least glueing the trs jack, and controller. It makes mounting the case easier and will make it less fragile, when inserting and the cable.

Then insert the plate in the case and secure with the m2 screws.

Happy hacking.

Files in this package

  • CAD source: erkbd.FCStd
  • Exports: case_left.3mf, case_right.3mf, oled_frame_left.3mf, oled_frame_right.3mf, switch_plate_left.3mf, switch_plate_right.3mf, washer.3mf
  • Images: case.png, oled_frame_back.png, oled_frame_front.png, oled_washer.png, switch_plate_back.png, switch_plate_front.png

Source & license

Imported into the CommunityCAD Archive with attribution preserved. All rights remain with the original author under the stated license.

Comments

Sign in to leave a comment.

Loading comments...