Fixing your CYOA Ortho v0.2

On the 28th March 2024 we identified an issue with CYOA Ortho v0.2 PCBs.

Is my PCB affected?

  • CYOA Ortho v0.2 (black) PCBs are affected.
  • CYOA Ortho v0.3 (black) PCBs are not affected.
  • CYOA Ortho v0.1 (purple) PCBs are not affected.
See photos below to identify your PCB
Affected CYOA v0.2

If you have an unaffected PCB, then no need to do anything else! Your CYOA Ortho PCB should be working great.

How are the PCBs affected?

In the affected CYOA Ortho v0.2 PCBs, one of the traces connecting switch C9 and switch D9 is broken. This means that the keys D9, D10, D11 and D12 will not work properly. See the photo below to see the gap in the trace.

If you are building a 3 row keyboard or a keyboard with 8 or fewer columns then this will be a non issue for you as you will be snapping off the affected area.

If you are building a larger keyboard then this will cause an issue with your build. Read on to see how to fix it.

The affected trace on the PCB

How to fix the issue

If you are building a 3 row keyboard or a keyboard with 8 or fewer columns then this will be a non issue for you as you will be snapping off the affected area.

I am reaching out to everyone with an affected board to offer a replacement, but in the event that you have already started building your board, you might just want to fix the one that you have. In order to fix the issue you will have to add a small jumper wire on the back of the PCB.

This small jumper wire should connect the positive / anode / lower end of diode D34 (beside switch C9) with the positive / anode / lower end of diode D46 (beside switch D9). See the photo below for an indication of how the wire should be placed. You can connect this wire to the surface mount pad (as I’ve done below), the through hole pad or the diode leg itself.

Jumper wire fom D34 to D46

You should be able to use any type of thin wire to do this. Just ensure that it does not touch any other pins with bare wire.

How will I know that the fix has worked?

You will know that the wire has worked if you use a multimeter to see if the lower / anode / positive pins of D34 and D46 are now connected (i.e. you will see zero resistance on a multimeter, or a continuity beep if you use it in that mode).

If you have already built your keyboard then you can further verify this by checking that keys D9, D10, D11 and D12 are now working as expected.

We have reached out to all those customers who we believe have an affected board. We apologise for any challenges that this might have caused during your keyboard build.

If you have any questions about the fix or anything else, please get in touch at hej@sthlmkb.com

CYOA Ortho Build Guide

Follow this guide to build your CYOA Ortho keyboard


Components required

What’s included in the CYOA Ortho kit:

  • Printed circuit board
  • Diodes (60)

What’s not included (and you’ll need you source yourself):

  • MX compatible switches (3 pin or 5 pin ideally, up to 60 of them depending on the layout)
  • A controller (CYOA Ortho supports Pro Micro or compatible footprint controllers like the Elite-C, Nice!Nano, or RP2040 based controllers with a Pro Micro footprint)
  • Keycaps
  • PCB mount stabilisers (if you want to go for a layout that has a 2u Space, the amount you need depends on the layout you go for)
  • A Rotary Encoders (we sell these here)(and rotary encoder knobs)
  • A case (there are lots of options here if you’re willing to DIY, but as a start we designed some cases you can print here)
  • Screws for mounting in a case (the holes on the board are for M2 screws)

You will also need

  • Soldering iron
  • Solder
  • Diode bender (helpful but not required, I used this one)
  • Flux (optional, but may make soldering easier)
  • Flush cutters (to trim diode legs and to help break the board along the perforations)

Before you begin

Please double check everything is there and that you have all the parts! There is a very slim chance we forgot something or that your order is wrong; in the case this is true, please reach out via email at hej at sthlmkb.com and we will work with you to make it right. 

Due to the DIY nature of this hobby, as soon as a soldering iron touches or other modifications happen to the board, we are no longer able to issue a refund/replacement. 

Note about this guide: I am building a v0.1 purple CYOA board with a Pro Micro, 1 encoder with a 4×12 layout – yours may differ. You are free to adjust or skip steps if they do not apply to your scenario.

All that being said, let’s get started!


Step by step

1. Check that you have all the components you need.

2. Decide what size board you want – anything from 3×3 to 5×12 is possible. If you’re going for a 3 column width board then you should break off the left most column too, but for anything larger than 3 columns, the firmware assumes that that column is still there.

3. Carefully snap along perforations on PCB. It helps to use a flush cutter to help start at each end and then to use the edge of a table to assist with bending and snapping. FR4 is sharp so be careful and make sure to sand or file the edges to smoothen them

4. Solder the diodes (either side is technically fine, though I think they will look nicer on the underside if you don’t have a plate) just make sure that you have the right orientation for them. The black stripe on the diode should line up with the white stripe on the top of the board

5. Solder the 2 switches directly above the controller. Trim the pins really short (so they are almost flush with the board) and isolate them with electrical tape after so that they do not short on the controller.

6. Flash firmware and solder the controller onto the board (make sure that it is facing the board and that the pinout is correct). You want the controller to be as close as possible to the board so that it doesn’t clash with any case that you’re using. Make sure to plug in the board and test all the switch contacts (e.g. with tweezers) once you have done this.

7. Install stabilisers (if you’re using them), encoder (again, if you’re using one) and switches on the rest of the board. Apologies for the mess of switches that I used here, an order I made didn’t arrive in time…

8. Install in case with M2 screws. If you’re using one of the 3D printed cases then you may need to install M2 heat set inserts first.

9. Add keycaps, and you’re done!

Enjoy!

Större Build Guide

Follow this guide to build your Större keyboard.


A timelapse overview of building Större

Components required

What’s included in the Större kit:

  • Printed circuit board, base and switch plate
  • Diodes (88)
  • Capacitors (2)
  • IC sockets (2)
  • ICs (SN74HC138N) (2)
  • Standoffs (to build the case)
  • Rubber bumpers for the base

What’s not included (and you’ll need you source yourself):

  • MX compatible switches (3 pin or 5 pin, up to 87 of them depending on the layout)
  • A controller (Större supports Pro Micro or compatible footprint controllers like the Elite-C, Nice!Nano, or RP2040 based controllers with a Pro Micro footprint)
  • Keycaps
  • PCB mount stabilisers (for bigger keys like Space and Shift, the amount you need depends on the layout you go for)
  • OLED screen (we sell these here)
  • 2 Rotary Encoders (we sell these here)(and rotary encoder knobs)
  • RGB light strip (optional, but possible to add a WS2812b light strip under the PCB for extra glow)

You will also need

  • Soldering iron
  • Solder
  • Diode bender (helpful but not required, I used this one)
  • Flux (optional, but may make soldering easier)

Before you begin

Please double check everything is there and that you have all the parts! There is a very slim chance we forgot something or that your order is wrong; in the case this is true, please reach out via email at hej at sthlmkb.com and we will work with you to make it right. 

Due to the DIY nature of this hobby, as soon as a soldering iron touches or other modifications happen to the board, we are no longer able to issue a refund/replacement. 

Note about this guide: I am building a Större board with a Pro Micro, 2 encoders and an OLED with an ISO layout – yours may differ. You are free to adjust or skip steps if they do not apply to your scenario.

All that being said, let’s get started!


Step by step

1. Check that you have all the components you need.

2. Start by bending all the diodes (I used the 3d printed diode bender above). And then place them in the sockets, ensuring that you have the *correct orientation*, the black line on the diode should match the white lines on the board. I then placed some tape over the diodes to hold them in place while I flipped over the board to solder them.

3. Solder the diodes on (I soldered on the underside of the board) and trim their legs once the solder has cooled

4. Solder the 2 capacitors to the PCB. They should sit on the top side of the PCB (like the diodes). Orientation does not matter with them.

5. Solder the 2 IC sockets to the PCB. They have a notch on them and the notch should be aligned with the notch on the footprint (pointing towards the capacitors). Do *not* place the ICs in the sockets yet.

6. Solder the two rotary encoders to the board. They should only fit one way, ensure that you don’t bend any of the pins when doing so. It is also possible to have 2 switches in place of the rotary encoders, or one switch and one rotary encoder should you want that too. If you’re going down this route, then please adjust your build accordingly.

7. Cut a small section or two of electrical tape and place it on the back of the OLED screen to cover up the resistors and other surface mount components there. This is to ensure that they do not short with the diodes when placed on top of them.

8. Solder the OLED screen in place. The screen should be facing to the left and the ground pin of the OLED should be at the top of the board. The orientation matters here, but realistically it’s hard to get it wrong as the encoders will be in the way. Remember to clip the legs of the OLED once you’ve soldered it in so that they don’t catch on the base. 

9. [Optional] If you’re planning on adding RGB underglow with a light strip (e.g. a WS2812b compatible one) then this is could be a good time to solder a socket to the 3 holes to make it easier for later (but it’s possible to mod this later if you want to). Ensure you get the pins correct when you add an LED strip. Find some more info about adding an LED strip here.

10. Flash your controller and check that it is working as expected (e.g. when you plug it into the computer it is recognised as a USB keyboard device). See flashing instructions here and see precompiled firmware files for Större here.

11. Solder your controller to the board. The board has offset holes so that hotswapping might work, but this didn’t go so great in practice so I just soldered my controller on. You are of course very welcome to socket your controller too if you value switchability. I soldered headers onto my controller and then soldered everything onto the PCB and then trimmed the legs on the underside of the PCB. Orientation matters here so ensure that you have the controller in the right position. With a pro micro this is facing down so the USB port is wedged between the Pro Micro and the PCB.

12. Insert the ICs into the sockets (be careful of the legs and do not bend them).

Now you should be able to plug in your board and test that all keystrokes are recognised. I used a pair of tweezers or a switch to short the switch sockets for this. If you find some keys are not working then the keyboard debugging guide may be useful. 

13. Add the stabilisers. Hopefully by now you should know what layout you want, but if you don’t then now’s a good time to choose! I used Durock V2 PCB mounted screw in stabs in the photos. If you want to mod and/or lube your stabs then this is the time!

14. Start by placing a couple switches in the corners of the plate and then attach the plate to the PCB ensuring that you don’t bend any pins while doing so. Ensure that the rotary encoders and the OLED screen are fitting correctly once you place the plate on top. If you’re using millmax sockets to make this build hot-swappable, then this is the time to install and solder the sockets.

15. Continue placing the rest of the switches until all keys are present. I used Gateron Oil King linear switches in the photos and went with the standard ISO layout with a 6.25u space bar.

16. Double check that your stabilisers are all correct (i.e. the wires are seated securely) and lubed as there’s no going back once you’ve soldered switches in. Check again that that none of the switch pins are bent and not poking through the holes. They’re a pain to fix once you’ve started soldering the switches.

17. Start soldering all the switches in place. Double check that you’ve not missed anything (it’s easy to overlook a few switches).

18. Attach the standoffs to the screws on the edges of the switch plate and position the base plate correctly and screw in the screws from the bottom too. Add the rubber bumbers to the base plate in the corners. The larger ones go at the top so that you get a slight typing angle. 

19. Add some keycaps and encoder knobs and *you are done!* Have a test that everything’s working as expected and maybe update/flash some new firmware if you feel like it.

Enjoy!

Debugging your keyboard

What do you do when you’re in the process of building your keyboard, testing the matrix and realise that some keys do not work? Here’s a guide with some pointers on where and how to debug issues that you might have.

Overview

In general where to look depends on a couple things:

  • What keyboard you have
  • What keys aren’t working

This guide will be broken down into these sections

Tools needed

You don’t really need any tools other than what you have already for the keyboard construction. A multimeter is helpful for checking continuity and removing some of the guesswork that you might have.

Keyboard matrices: a background

Keyboards work by polling a matrix of keys. Each key is connected to a single row and a single column and usually has a diode in the path to prevent ghosting (i.e. when multiple keys are registered after a single keypress happens). Understanding this layout and structure helps to identify the root cause of any issues.

Litl matrix

The Litl uses a duplex column layout where two physical columns on the board are connected to a single column pin on the controller. So while the board looks like it is a 12 column by 4 row layout, it is actually a 6 column by 8 row layout. This is a design choice to minimise the pins required on the microcontroller.

Litl matrix layout
Litl Controller pinout

Lagom matrix

The Lagom uses 2 demultiplexers or demuxes to power the columns and has the rows directly connected to the controller. This again is a design choice aimed at minimising the pins required for the microcontroller. There are 4 microcontroller pins (mux0 to mux3) that control the output of 16 columns (col0 to col15), and 5 row pins to make a 16 x 5 matrix.

Lagom matrix layout
Lagom demultiplexer pinout (lower is cols 0 to 7, upper is cols 8 to 16)
Lagom Controller pinout

Single key not working

A single key not working is likely indicative of an issue on the soldering of that key or the diode linking that key to the controller. This will more commonly happen once you’ve soldered switches on and have missed a connection and/or have a cold solder joint. If you’re testing without the switches, then checking the diode relating to that key and reflowing the solder is usually a good place to start.

Things to check: connection on the switch, connection on the related diode

How to solve: reflow solder on switch and diode

Whole row not working / Every other key on a row not working

A whole row not working can happen when the row is not connected to the microcontroller properly. This will manifest itself in different ways on different boards. On Litl every other key on the row will likely not work due to the matrix layout and on Lagom every key on the row will likely not work if this is the issue. The solution is checking the connection to the microcontroller and ensuring that the solder joint there is complete.

Things to check: connection from the row to the controller

How to solve: reflow solder on the controller pin for the specific row at fault

Whole column not working / Side by side columns not working

A whole column not working can happen when the connection from the column pin on the microcontroller to the column is not complete. This will also manifest itself differently on different boards. On Litl you will likely have 2 side by side columns not working if this is the case (as the layout has 2 physical columns connected to a single controller pin). On Lagom you may have a single column not working (in which case the issue is between the column and the demux) or you you may have half of the board not working (in which case you should jump to the next section).

For Litl you want to identify the connection pin from the non working columns to the controller and try reflowing that. For Lagom you want to identify the connection from the controller to the demux and reflow the pin there. The upper demux is for cols 8 to 15 and the lower demux is for cols 0 to 7.

Things to check: connection from the column to the controller and connection from the column to the demux

How to solve: reflow solder on the specific pin on the controller or demux

Half of the board not working

Half of the board not working is something that will likely only happen on the Lagom board. If you get this on the Litl board then it’s likely a result of multiple columns having issues. Half of the board not working on the Lagom can be indicative of one of the demuxes not working, or a connection to one of the demuxes from the controller being incomplete.

A good way to identify where the issue might lie here on the Lagom is to carefully swap the IC chips (and make sure that the power is off when you do this). If, after swapping, the same half of the board continues not to work the issue is likely with the soldering and connection to the controller. If the other half of the board then stops working the probably is with the IC itself (and you might need a replacement).

Things to check: swapping the demux ICs to see if that changes the non working half of the board

How to solve: reflow solder on controller or demux pin or replace demux IC

Multiple keys triggering

Multiple keys triggering when a single one is pressed is something that can happen when there is a short between two keys or a single key and ground. In the case that this happens, the issue is most likely related to one of the keys that triggers together. If it is a whole column or row that triggers together then you may want to use a multimeter and identify if there is any unusual continuity to ground.

Things to check: connection on the keys that trigger together, looking for shorts

How to solve: identify the source of the issue and usually reflow solder

Summary

Hopefully this provides a little help in debugging issues that you may see when testing your keyboard matrix, but if you’ve tried all of this and are still a little stuck please reach out to hej at sthlmkb dot com and we help!

👋 Happy building

Adding RGB LEDs to your Lagom or Större board

Lagom and Större both support an underglow RGB LED light strip. This is not included in the kit, but you are able to add a WS2812b (or similar) compatible LED strip to the underside (or case) of the boards using the exposed pins on the underside of the PCB.

Where do I add the LED strip?

You add the LED strip using the 3 holes exposed on the underside of the Lagom PCB. To make attaching a strip of LEDs easier it may be easier to add a small socket to these holes as shown in the image below.

How is the LED strip connected to the controller?

  • The GND is connected to the common ground of the board and controller
  • The VCC is connected to the 5V output of the controller
  • The LED pin is connected to pin F6 of the controller

How do I configure the LED strip in firmware?

As LED strips vary in length it’s best if you configure this yourself and then compile your own firmware files. In the example below I have a strip of 11 LEDs.

There’s a couple changes that you need to make to info.json to make it happen before recompiling the firmware (and you can see the firmware files here). These changes are:

  • Adding "rgblight": true to the feature section
  • Adding a rgblight and ws2812 section. More info here too.
"rgblight": {
"led_count": 11,
"sleep": true,
"hue_steps": 10,
"saturation_steps": 10,
"brightness_steps": 10,
"animations": {
"rainbow_mood": true,
"static_gradient": true
}
},
"ws2812": {
"pin": "F6"
}
  • You’ll then need to assign some keys to toggle on the RGB and change modes etc. This is easiest done in Vial if you’ve flashed a Vial compatible image. You can do this through the Vial interface on the ‘Backlight’ tab.
  • Bear in mind that the RGB feature takes up some space so you may run out of space if you’re compiling this for a Pro Micro

Configuring your keymap

One of the great things about building a custom keyboard is being able to configure the keymap in any way that you want. If you want something super straightforward and just like a laptop keyboard, that’s perfectly possible, or if you want the flexibility of macros and custom keys that have one action when you tap and another action when you hold the key, then that’s perfectly possible too. It’s possible to do all of these and more when building your own board.

What software do I use?

One of the most popular ways of configuring mechanical keyboards is with a tool called QMK. QMK is open source software for ARM, Atmel AVR and Raspberry Pi microcontrollers that enables almost limitless customisability with a wide range of mechanical keyboards.

It’s possible to download QMK, configure the layout of your dreams and flash it onto your controller to power your board. And this is a really great way to understand how all the hardware and software fit together.

But there’s a couple limitations of doing it this way:

  • You have to write a little code to configure your keymap. It’s not hard to learn, but it can be daunting if you don’t know where to begin
  • If you want to make changes then you need to update the keymap, compile it and then flash it to your controller or board. Again, it’s not too hard, but if you’re just starting out and trying a bunch of different layouts then it is one more step to go thru

But don’t worry! There are ways around all of these challenges!

Three different ways to configure your keyboard (from easiest to hardest)

1. Using Vial / Via

The easiest way to configure your board is to use a tool like Via or Vial (Vial is the open source version of Via and is ultimately gives the same functionality). These tools sit on top of QMK and allow you to configure your board on the fly via a graphical interface (that is now also available on the internet without downloading anything).

All STHLM kb boards are compatible with Vial, and, best of all, we have precompiled Vial firmwares that you can use right away. All you have to do is flash your controller with one of these Vial compatible firmware files, open Vial (either the web app or download the desktop app) and you can figure everything right away.

You can find Litl compatible firmware files here and Lagom compatible firmware files here, look for the Vial compatible ones in particular.

You can configure a whole multitude of different things with Vial (see the manual here), and for most people it’s the perfect option.

✅ Advantages: Easy to use, no coding required, keymap changes are applied immediately

🛑 Disadvantages: Takes up slightly more space on the micro controller, limited OLED customisation

But there are other ways of configuring your board, so read on…

2. Using QMK Configurator

QMK Configurator is an online tool used for easily creating firmware files for keyboards supported in qmk_firmware. This neat web tool allows you to configure your board from your web browser and then download a firmware file that you can then flash to your keyboard. And best of all the Litl and Lagom keyboards are built in and available within the configurator tool.

It addresses the need to edit code in order to configure your keymap, and solves this through a nice web interface. However it doesn’t solve the requirement to flash new firmware every time you make a change (i.e. no updating on the fly) and it gives fewer configuration options than Vial, so for most users there is not much reason to use it.

✅ Advantages: Easy to use, no coding required, smaller firmware size (compared to Vial)

🛑 Disadvantages: Keymap changes are not applied instantly and require reflashing, limited OLED and encoder customisation

3. Using QMK

The final and most functional way of editing and configuring your board is to configure it in QMK directly. This requires a little knowledge of writing simple code, but if you can do this, you’re rewarded with the maximum amount of flexibility. There are some great getting started tutorial guides available in the QMK docs.

The biggest advantage of making changes directly in QMK is that you can have more control over the OLED screen display. In the other 2 options you are limited to what is contained in the precompiled hexes, but this way you can configure the OLED any way that you want (as long as there’s enough space on the micro controller).

In general if you want to go down this route you will want to clone the QMK repository from Github, find the board that you want to edit (all of our boards are included in the main repo), duplicate one of the existing keymaps for it and then edit it to make it your own. Then you will need to use the Terminal command line interface to compile the keyboard and keymap that you just made (resolving any errors in the process) and flash it your keyboard.

You can even use the Vial fork of QMK to compile a Vial compatible hex file that you can flash. Then you get maximum flexibility in terms of OLED and other config options and ease of configurability with the Vial web or desktop tools.

✅ Advantages: Maximum flexibility and customisability, generally smaller firmware size (unless you’re using Vial)

🛑 Disadvantages: Slight learning curve and harder to use, changes not applied instantly and require reflashing (unless you use vial-qmk)

Summary

Overall, there is no right or wrong way to configure your keyboard. It’s up to you and how much flexbility you want and how much tinkering you are prepared to do.

Each of the ways above have their advantages and disadvantages, so try some of them out and see how you get on! Most of all, have fun!

Custom mechanical keyboards: where to begin?

There’s a lot out there on the internet and beyond about mechanical keyboards, and it’s a large and complex place. But it needn’t be, here’s a little intro into why you might want to venture down the mechanical keyboard rabbit hole and what the fundamental building blocks of mechanical keyboards are.


Why build a custom mechanical keyboard?

  1. Personalization: Building your own keyboard allows you to customize the typing experience to your own preferences and needs. You can choose the type of switches, keycaps, case, and plate that you like the best, and create a keyboard that is unique to you.
  2. Quality & Durability: Mechanical keyboards are generally considered to be higher quality than standard rubber dome keyboards. By building your own keyboard, you can ensure that you are using high-quality components and that the keyboard is built to your specifications.
  3. Aesthetics: Custom mechanical keyboards can be beautiful works of art. You can choose from a variety of colors and designs for your keycaps, case, and plate to create a keyboard that is not only functional but also visually appealing.
  4. Typing experience: Mechanical keyboards offer a different typing experience than standard rubber dome keyboards. By building your own keyboard, you can choose the type of switches that provide the feel and feedback that you prefer, resulting in a more satisfying and comfortable typing experience.
  5. Sheer enjoyment: Mechanical keyboards are a perfect blend of hardware and software, and physical and digital. They’re super fun to build and even more enjoyable to use.

The building blocks of a mechanical keyboard

There’s a couple main parts to a mechanical keyboard, and when you’re building your own you should consider what you want and how they work together.

Switches

Switches are the mechanical components that determine how each key press is registered. They are a key factor in the overall feel and performance of a mechanical keyboard.

There are several different types and hundreds of different manufacturers of switches available, each with their own unique characteristics. These variations can include the footprint of the switch (MX vs Kailh vs Choc, 3 pin vs 5 pin), the feel (tactile vs linear vs clicky), actuation force (how hard you have to press for the keypress to be registered), the material (POM, Nylon etc.), the sound, the colour and even more!

The keyboard kits that we sell at STHLM kb are compatible with MX footprint switches and work with both 3 pin and 5 pin varieties.

Keycaps

Keycaps are the plastic or resin covers that fit over the switches and give each key its shape and color. They can have a significant impact on the aesthetics and feel of a mechanical keyboard.

As with switches, there are many different types of keycaps. They are typically differentiated by material type (ABS, PBT), manufacturing method (dye-sublimated, double-shot), profile (OEM, Cherry, SA, MT3, DSA etc.), compatibility (MX or Choc) and theme. One of the most popular manufacturers of keycaps Is GMK

Printed Circuit Board (PCB)

A PCB is a board that contains the electrical components that allow the keyboard to function. It is a crucial component in a mechanical keyboard build.

There are several different types of PCBs available, they can be differentiated on size (full-size, tenkeyless, 60%, and 40%), requirement to solder (hot swap or solder), layout (ISO, ANSI, split space etc.), controller type (ATMEL, STM32, RPI, discrete or integrated), firmware compatibility (QMK, Via, Vial) and more.

The PCBs in the keyboard kits that we sell at STHLM kb are available in a couple different sizes (65% and 40% for now), soldering only (though you can make them hot swap compatible with Millmax sockets), and compatible with many different layouts. We support a discrete microcontroller for maximum compatibility and customisation.

Case and plate

A case is the housing that contains the PCB, switches, and keycaps. It provides protection and stability for the keyboard, as well as contributes to its overall look and feel. A plate is a sheet that holds the switches and the PCB, providing additional stability and helping to evenly distribute force when a key is pressed. It also determines the switch layout and can have an impact on the sound and feel of the keyboard.

Cases can be differentiated by style (top mount, gasket mount, sandwich etc.), material (plastic, aluminum, FR4, wood), shape, weight and sound. Plates can be made of many different materials too (brass, aluminium, polycarbonate, FR4), and some are designed to be more flexible and absorb more sound, while others are stiffer and provide a more solid typing experience.

All STHLM kb kits include a sandwich style FR4 case where the PCB is sandwiched between the plate and the base. This is a simple, easy to build and effective case for a keyboard.

Stabilizers

Stabilizers (or stabs for short) are components that keep larger keys, such as the spacebar and shift keys, from wobbling or sticking when pressed. They can have a significant impact on the overall feel and sound of a keyboard.

Stabilizers can differ based on mounting style (plate-mounted, PCB-mounted, screw-in, clip-in), brand (Durock, TX, Cherry), and modifications done to them (lubing, band-aid mod etc.). You choice of stabilizers will impact how your board feels and sounds in day to day use.

STHLM kb kits are compatible with PCB mounted (either screw-in or clip-in) stabilizers.


All in all there’s a lot to consider when building your mechanical keyboard. But we’re always here to help and answer questions. So please get in touch if you’re not sure where to begin when you start your mechanical keyboard journey.

Lagom Keyboard Build Guide

Follow this guide to build your Lagom keyboard.

Components required

What’s included in the Lagom kit:

  • Printed circuit board, base and switch plate
  • Diodes (74)
  • Capacitors (2)
  • IC sockets (2)
  • ICs (SN74HC138N) (2)
  • Standoffs (to build the case)
  • Rubber bumpers for the base

What’s not included (and you’ll need you source yourself):

  • MX compatible switches (3 pin or 5 pin, up to 72 of them depending on the layout)
  • A controller (Lagom supports Pro Micro or compatible footprint controllers like the Elite-C, Nice!Nano, or RP2040 based controllers with a Pro Micro footprint)
  • Keycaps
  • PCB mount stabilisers (for bigger keys like Space and Shift, the amount you need depends on the layout you go for)
  • OLED screen (we sell these here)
  • 2 Rotary Encoders (we sell these here)(and rotary encoder knobs)
  • RGB light strip (optional, but possible to add a WS2812b light strip under the PCB for extra glow)

You will also need

  • Soldering iron
  • Solder
  • Diode bender (helpful but not required, I used this one)
  • Flux (optional, but may make soldering easier)

Before you begin

Before you begin!

Please double check everything is there and that you have all the parts! There is a very slim chance we forgot something or that your order is wrong; in the case this is true, please reach out via email at hej at sthlmkb.com and we will work with you to make it right. 

Due to the DIY nature of this hobby, as soon as a soldering iron touches or other modifications happen to the board, we are no longer able to issue a refund/replacement. 

Note about this guide: I am building a Lagom board with a Pro Micro, 2 encoders and an OLED – yours may differ. You are free to adjust or skip steps if they do not apply to your scenario.

All that being said, let’s get started!

Step by step

components

1. Check that you have all the components you need.

diodes

2. Start by bending all the diodes (I used the 3d printed diode bender above). And then place them in the sockets, ensuring that you have the *correct orientation*, the black line on the diode should match the white lines on the board. I then placed some tape over the diodes to hold them in place while I flipped over the board to solder them.

masking tape on diodes

3. Solder the diodes on (I soldered on the underside of the board) and trim their legs once the solder has cooled

trimmed legs

4. Solder the 2 capacitors to the PCB. They should sit on the top side of the PCB (like the diodes). Orientation does not matter with them.

capacitors

5. Solder the 2 IC sockets to the PCB. They have a notch on them and the notch should be aligned with the notch on the footprint (pointing towards the capacitors). Do *not* place the ICs in the sockets yet.

ic sockets

6. Solder the two rotary encoders to the board. They should only fit one way, ensure that you don’t bend any of the pins when doing so.

oled tape

7. Cut a small section or two of electrical tape and place it on the back of the OLED screen to cover up the resistors and other surface mount components there. This is to ensure that they do not short with the diodes when placed on top of them.

8. Solder the OLED screen in place. The screen should be facing to the left and the ground pin of the OLED should be at the top of the board. The orientation matters here, but realistically it’s hard to get it wrong as the encoders will be in the way. Remember to clip the legs of the OLED once you’ve soldered it in so that they don’t catch on the base. 

9. [Optional] If you’re planning on adding RGB underglow with a light strip (e.g. a WS2812b compatible one) then this is could be a good time to solder a socket to the 3 holes to make it easier for later (but it’s possible to mod this later if you want to). See the image below for an example (excuse the poor soldering). Ensure you get the pins correct when you add an LED strip. Find some more info about adding an LED strip here.

oled tape

10. Flash your controller and check that it is working as expected (e.g. when you plug it into the computer it is recognised as a USB keyboard device). See flashing instructions here.

11. Solder your controller to the board. The board has offset holes so that hotswapping might work, but this didn’t go so great in practice so I just soldered my controller on. You are of course very welcome to socket your controller too if you value switchability. I soldered headers onto my controller and then soldered everything onto the PCB and then trimmed the legs on the underside of the PCB. Orientation matters here so ensure that you have the controller in the right position. With a pro micro this is facing down so the USB port is wedged between the Pro Micro and the PCB.

testing

12. Insert the ICs into the sockets (be careful of the legs and do not bend them). Now you should be able to plug in your board and test that all keystrokes are recognised. I used a pair of tweezers or a switch to short the switch sockets for this. If you find some keys are not working then the keyboard debugging guide may be useful. 

stabilisers

13. Add the stabilisers. Hopefully by now you should know what layout you want, but if you don’t then now’s a good time to choose! I used some Glorious GOAT PCB mounted screw in stabs in the photos. If you want to mod and/or lube your stabs then this is the time!

all the stabilisers

14. Start by placing a couple switches in the corners of the plate and then attach the plate to the PCB ensuring that you don’t bend any pins while doing so. Ensure that the rotary encoders and the OLED screen are fitting correctly once you place the plate on top.

plate

15. Continue placing the rest of the switches until all keys are present. I used JWick T1 Tactile switches in the photos and went with the standard ANSI layout with a 6.25u space bar.

all switches added

16. Double check that your stabilisers are all correct (i.e. the wires are seated securely) and lubed as there’s no going back once you’ve soldered switches in. Check again that that none of the switch pins are bent and not poking through the holes. They’re a pain to fix once you’ve started soldering the switches.

side angle switches

17. Start soldering all the switches in place. Double check that you’ve not missed anything (it’s easy to overlook a few switches).

18. Attach the standoffs to the screws on the edges of the switch plate and position the base plate correctly and screw in the screws from the bottom too. Add the rubber bumbers to the base plate in the corners. The larger ones go at the top so that you get a slight typing angle. 

19. Add some keycaps and encoder knobs and *you are done!* Have a test that everything’s working as expected and maybe update/flash some new firmware if you feel like it. Enjoy!

lagom complete

You did it! Nice job! 💪

Any feedback or questions about the build process? Get in touch with us at hej at sthlmkb.com

Litl Keyboard Build Guide

Follow this guide to build your Litl keyboard.

Components required

What’s included in the Litl kit:

  • Printed circuit board, base and switch plate
  • Diodes (47)
  • M2 10mm Standoffs (6) and M2 6mm screws (12) (to build the case)
  • Rubber bumpers for the base (2 big and 2 small)

What’s not included (and you’ll need you source yourself):

  • MX compatible switches (3 pin or 5 pin, up to 45 of them depending on the layout)
  • A controller (Litl supports Pro Micro, Pro Micro USB-C or compatible footprint controllers like the Elite-C or the Nice!Nano)
  • Keycaps
  • PCB mount stabilisers (for bigger keys like Space and Shift (4 x 2u or 2 x 2u + 6.25u or 2 x 2u depending on layout))
  • OLED screen (optional depending on configuration)
  • Rotary Encoder(s) (optional depending on configuration) (1 or 2)
  • Acrylic cover for the components at the top (optional, not included)

You will also need

  • Soldering iron
  • Solder
  • Diode bender (helpful but not required, I used this one)
  • Flux (optional, but may make soldering easier)

Before you begin

Before you begin!

Please double check everything and that you have all the parts! There is a very slim chance we forgot something or that your order is wrong; in the case this is true, please reach out via email at hej at sthlmkb.com and we will work with you to get it right. Also, due to the DIY nature of this hobby, as soon as a soldering iron touches or other modifications happen to the board, I am no longer able to issue a refund/replacement. 

Note about this guide: For this guide, I am building a board with a Pro Micro, Encoder and OLED – yours may differ. You are free to adjust or skip steps if they do not apply to your scenario.

All that being said, let’s get started!

Step by step

1. Check that you have all the components you need. See above for list.

diode orientation

2. Start by bending all the diodes (I used the 3d printed diode bender linked above). And then place them in the sockets, ensuring that you have the *correct orientation*, the black line on the diode should match the white lines on the board. I then placed some tape over the diodes to hold them in place while I flipped over the board to solder them. The diodes should be on the top side of the PCB and the legs should be poking through to the lower side.

diode tape

3. Solder the diodes on (I soldered on the underside of the board) and trim their legs once the solder has cooled

diode soldering

4. Flash your controller and check that it is working as expected (e.g. when you plug it into the computer it is recognised as a USB keyboard device). See flashing instructions here

5. Solder your controller to the board. The board has offset holes so that hotswapping might work, but this didn’t go so great in practice so I just soldered my controller on. You are of course very welcome to socket your controller too if you value switchability. I soldered headers onto my controller and then soldered everything onto the PCB and then trimmed the legs on the underside of the PCB. *Orientation matters* here so ensure that you have the controller in the right position. Most controllers will have the usb port facing down, compare the pinout on the controller with that on the pcb to make sure it’s correct.

pro micro

6. Now you should be able to plug in your board and test that all keystrokes are recognised. I used a pair of tweezers to short the switch sockets for this. If you run into issues with some keys not working, then the keyboard debugging guide may help. 

stabilisers

7. Add the stabilisers. Hopefully by now you should know what layout you want, but if you don’t then now’s a good time to choose! I used some PCB mounted screw in stabs in the photos.

switch_placement

8. Start by placing a couple switches in the corners of the plate and then attach the plate to the PCB ensuring that you don’t bend any pins while doing so. Continue placing the rest of the switches until all keys are present. I used Gateron Pro Yellows in the photos with all of the split options. You can also place the encoders and the OLED screen at this point if you’re going with these options.

switches

9. Double check that your stabilisers are all correct (i.e. the wires are seated securely) and lubed as there’s no going back once you’ve soldered switches in. Check again that that none of the switch pins are bent.

switch_under

10. Start soldering all the switches, OLED and encoders in place. Double check that you’ve not missed anything (it’s easy to overlook a few).

Pay attention to the orientation of the OLED:

  • The square pin on the board is the ground pin
  • On Litl v1 the pins are reversed so you will have to mount your OLED screen facing to the left (over the diodes, see image) or manually reverse the pins. The reversed pins are fixed from v2 onwards.
  • On Litl v2 the pins are correct so you should mount your OLED pointing to the right.
OLED placement for Litl v1
OLED placement for Litl v2

11. Attach the standoffs to the screws on the edges of the switch plate and position the base plate correctly and screw in the screws from the bottom too. Add the rubber bumpers to the base plate. 

12. Add some keycaps and encoder knobs and *you are done!* Have a test that everything’s working as expected and maybe update/flash some new firmware if you feel like it. Enjoy!

final_closeup

You did it! Nice one. 

Any feedback or challenges with the build process? Get in touch with us at hej at sthlmkb.com

Flashing your microcontroller

You’ve built your keyboard and now you want to make it work. To do this you’ll have to flash your microcontroller.

The exact specfics of how you do this depend on the microcontroller that you’re using, so take a look at their specific documentation. I will go through the process of flashing a Pro Micro controller here. The instructions assume that you’re flashing a ‘traditional’ atmel based Pro Micro, but if you are flashing a RP2040 variant then scroll down to the bottom of this page.


Atmel ‘Traditional’ Pro Micro Flashing

1.

You’ll need a compiled firmware file. This is something that you might have downloaded from where you bought your keyboard, or something that you configured and built yourself. It’s a file that has a .hex file format. We have precompiled firmware files here for Litl, Lagom and Större.

2.

Download and install QMK Toolbox from their Github page: https://github.com/qmk/qmk_toolbox

3.

Open QMK Toolbox and connect your keyboard to your computer over USB. You might see something in the QMK console when you connect it, but not always.

4.

Press open at the top of the QMK configurator window and choose the .hex file that you want to flash to your microcontroller.

Precompiled (and Vial compatible) hex files for the Litl are available here on our Github.

Precompiled (and Vial compatible) hex files for the Lagom are available here on our Github.

If you want to be able to configure your keyboard using Vial (recommended) then make sure to flash one of the vial hex files. Ensure that the file that you’re trying to flash has the file format .hex as sometimes browsers will download these files oddly. 

5.

Ensure that you have the correct MCU chosen at the top right of the QMK Toolbox window. For a Pro Micro it is an atmega32u4

6.

Now comes the slightly tricky bit. You’ll need something metal to short two of the pins on the microcontroller. You can use pliers, a piece of wire or even a pen. You want to briefly connect and then disconnect the RESET and the GROUND pins of the Pro Micro. These are the second and third pins on the right hand side when the components are facings towards you and the usb port is facing up.

If you’re flashing the controller once it’s already soldered on the keyboard then you will need to short the same pins but likely from the other side. It’s the two pins pictured in the image below.

7.

If you’ve successfully connected the pins and then disconnected them you should see a yellow line in the QMK Toolbox console like this. The line might say something slightly different depending on your controller.

8.

Once you see the yellow line, you need to press Flash within 5 seconds. There will be lots of text rendered on the console when you do this, but it will ultimately say something like avrdude done. Thank you  and then will print another yellow disconnect line if it succeeds.

9.

If you’ve flashed the QMK firmware then your keyboard should be good to go right away. If you flashed the Vial firmware then your keyboard should work right away too, but if you want to configure layers then you will have to download Vial. It should show the current keycap once you open it with your keyboard connected.


RP2040 Pro Micro Flashing

1.

You’ll need a compiled firmware file. This is something that you might have downloaded from where you bought your keyboard, or something that you configured and built yourself. It’s a file that has a .uf2 file format. We have precompiled firmware files here for Litl, Lagom and Större.

2.

You now need to plug it in with USB to your computer and get the RP2040 Pro Micro to enter bootloader mode.

The RP2040 will be in bootloader mode when a RPI-RP2 volume appears on your computer.

There are a number of ways of doing this. Ranked from easy to most tricky:

  • If you have a brand new RP2040 Pro Micro, many times it will start up for the first time in bootloader mode. But if not, read on.
  • If you have a built keyboard – hold down the bootloader key while you plug in the keyboard.
    • This is the easiest way to get into the bootloader. But it only works if the controller is already flashed with QMK or Vial. The key you would need to hold down is the key is the first key on the first column. 99% of the time that’s the escape key.
  • If you have the Pro Micro unconnected to a keyboard or the reset button easily accessible – double tap the reset button on the Pro Micro RP2040.
    • Like the method above this only works if it is already flashed with QMK. This is a little bit more annoying than holding down a key because you may need to open your keyboards case to gain access to your reset switch.
    • If there is no reset button then you can short the RST pin and a GND pin twice in quick succession.
  • Hold down the boot button on the Pro Micro RP2040 while you plug in your keyboard.
    • The Pro Micro RP2040 has 2 buttons on it, boot and reset. Hold boot in while connecting via USB
    • You can also short the BOOT pin and a GND pin while plugging in the keyboard too
  • Hold down boot switch while you tap your reset switch.
    • If you have access to both BOOT and RESET switches (e.g. if you’ve not soldered on the Pro Micro yet) you simply hold down the boot switch while you tap and let go of the reset switch.
    • You can also short and hold the BOOT pin and a GND pin while shorting RST and a GND pin to achieve the same thing.

You will know that these work when a RPI-RP2 drive is mounted on your computer.

3.

Drag the .uf2 firmware file to the RPI-RP2 drive that has now been mounted on your computer. Once the file is copied the drive should automatically disconnect.

4.

You may have to unplug and re plug in the controller, but it should now be recognised to you computer as a keyboard (or input device) and you should be able to type on it.


You did it! Nice one.

Any feedback or challenges with the build process? Get in touch with us at hej at sthlmkb.com

📦 Same-day dispatch on early orders ↩ 30-day returns 🇸🇪 Ships from Stockholm 💳 Cards & PayPal
Select your currency