Skip to the content.

If you don’t have all the necessary parts, please read about how to source the parts.

Bill of materials

The following is needed to build the keyboard. You can find links for the most of the components in the sourcing parts section.

SofleKeyboard parts

SofleKeyboard parts 2

That’s it. There are no RGB LEDs on the board. But if you really need underglow it is be possible to connect an RGB LED strip since there are 3 pads (VCC, GND and data) on the board. You would need to add support to the firmware on your own.

Tools and materials



Step 1

Both sides of the keyboard ready. The front sides marked by pieces of tape in order to remember which side is which.

Components on the backside

Step 2

Starting with the diodes. They belong to the backside of the PCB. Make sure you have orientation right - they are all oriented to the same side. The end with the thin line is Cathode (-) and it should go in the direction of the “arrow” symbol on the PCB.

Step 3

Sockets for switches belong again on the back side, the same side as diodes. Make sure they are flush with PCB.

Components on the front side

Step 4

Button and TRRS sockets belong to the top. Use a piece of tape to fix them and apply solder from the bottom side.

Step 5

This is how the right half should look from the top.

Pro Micro and displays

Step 6

Bridge 4 jumper pads on the top side. You can skip this step if you are sure you don’t want to use OLED displays.

Step 7

Prepare the Pro Micro. There are several ways how to do it. I have used rounded pin headers. A bit more information about socketing of Pro Micro is on the sourcing parts page.

Step 8

And corresponding sockets (if used) on the front side of the board. Make sure you insert them into the holes which are marked by the rectangles.

Step 9

Another socket for OLED display.

Step 10

A look on the backside.

First test

Step 11

Now it is already possible to connect the ProMicro and OLED display to the board, flash the firmware and check if all keys work using a piece of wire or tweezers.

Rotary encoders

Step 12

Both halves assembled, a rotary encoder can be added on both, one or none. I have also cleaned flux residue from the back side using some isopropyl alcohol, cotton buds and paper towels.

Keyboard switches and plates

Step 14

Snap first switches into corners.

Step 15

Mount the stand-offs to the top plate.

Step 16

Carefully snap the first switches to the sockets. Be careful so you don’t bend their contacts. Add more.

Step 17

Until they are all in place.

Step 18

Double-check the bottom. You should see all the contacts in sockets.

Step 19

And mount the bottom plate.

Step 20

Completed half of the keyboard waiting for keycaps.

Finishing touches

Step 21

Put at least 4 adhesive rubber feet in the corners so the keyboard is not moving when you type.

Warnings and disclaimers

Firmware and programming

Sofle keyboard uses QMK Firmware and support for the board is part of the main QMK repository. There’s also a basic support in QMK Configurator but there’s no default layout yet and encoders are not supported.

Suggested approach is to build the firmware yourself. You should be familiar with QMK and be able to make it work on your local environment. If not, please follow the instructions in the documentation.


Elite-C v3.0

Elite-C v3.0 had problems when used with split bords (on both halves). Those are fixed in version 3.1. For v3.0 add #define SPLIT_USB_DETECT to config.h file. I don’t have Elite-C so this is untested, but should work.

Typing lag when used without OLED

If you chose to not use OLED for both halves you should disable support for oled (set OLED_DRIVER_ENABLE to no in keymaps/defualt/

If you don’t use OLED only on one half you are need to do one of the following to fix the lag:


  1. Serial is the default behaviour. If serial is used, you don’t need TRRS cable (4 contacts, used for headphones with a microphone) but just TRS (stereo audio jack).  2

  2. This can be changed, look for setting handednesss in QMK documentation.