Before your DIY keyboard can be used, you need to configure and program it. This ensures that the keyboard works in your chosen country layout and on every PC. How you do this exactly and what considerations you have to keep in mind is what we’ll show you in this part of our DIY series.

After your custom keyboard is fully assembled, all you need to do is configure the controller. This ultimately enables the keyboard to process inputs and pass them on to a PC. This requires the generation and installation of a firmware. How to create such a firmware and how to configure the keys correctly is the topic of this last article in our DIY videos series.


To create the firmware for your DIY keyboard, you must first launch the QMK online configurator at https://config.qmk.fm/. We recommend using Google Chrome or Mozilla Firefox, as problems may occur with Internet Explorer. Select the correct PCB in the configurator; in our example, it's "kbd8x" for the TKL keyboard of KBDFans. Then you should give your firmware an (preferably unique) name.


Now you need to configure the individual keys and define the corresponding country layout. There are two possibilities for this: either click on the corresponding key in the configurator and then press it on the keyboard, or drag and drop the respective keys from the selection graphic into the empty fields. Once the key programming is complete, the firmware can be generated by clicking the "Compile" button. Once the file is generated, it is available for download.


In order to install the firmware on the keyboard controller, you will need to download the latest version of the "Zadig" software: https://zadig.akeo.ie/. The bootloader mode of the keyboard has to be activated to install the driver with the help of Zadig. There are two ways to do this: either through pressing a key combination, or by pressing a button on the PCB. 

In the case of our PCB, the Space bar and the "B" key must be pressed simultaneously while connecting the USB cable to the keyboard. Make sure that the other end is already connected to the PC. If this variant does not work and there is no bootloader button opening at the bottom of the keyboard housing, you have to remove the PCB from the case and press a small button at the back to activate the bootloader mode.

If you are in bootloader mode, Zadig will detect the keyboard controller and suggest a driver. You only have to select the driver from the drop-down menu and install it. If the controller is not detected automatically, you have to select it manually via "Options" and then "List All Devices".


The final step is to write the firmware to the keyboard controller. This requires the QMK-Toolbox, which is available for download at https://bit.ly/toolbox_qmk. After opening this tool the keyboard should be recognized automatically, with a yellow command line confirming the connection. 

Now, select the correct firmware file (with extension “.hex”) with the "Open” button, select the correct controller (in our case ATm32U4DFU) and click on the "Flash" button. Afterwards, you can test your key configuration with the test function in the online configurator or a keyboard tester. If everything is recognized correctly, your custom DIY keyboard is ready for use!

 If everything is recognized correctly, your custom DIY keyboard is ready for use!

We would like to thank GMK and CandyKeys once again for their support with this DIY project.


Recent Posts

CHERRY MX Black Clear-Top: New edition of a legendary MX switch CHERRY MX Ergo Clear: Switch modification by enthusiasts becomes official MX derivate CORSAIR K100 AIR WIRELESS RGB: ULTRA-THIN THANKS TO CHERRY MX ULTRA LOW PROFILE TACTILE SWITCHES CORSAIR K100 AIR WIRELESS RGB: Premiere of the world's first ultra-thin gaming keyboard for desktop use with CHERRY MX Ultra Low Profile Tactile switch CHERRY MX ULP Tactile: Ultra low-profile key switch now available in the new XMG NEO 17 notebook by Schenker Technologies


November 2022 October 2022 September 2022 August 2022 July 2022 June 2022 May 2022 March 2022 February 2022 December 2021 November 2021 August 2021 July 2021 June 2021 May 2021 March 2021 December 2020 November 2020 September 2020 August 2020 June 2020 May 2020 April 2020 March 2020 February 2020 November 2019 October 2019 July 2019 April 2019 March 2019 February 2019 January 2019 November 2018 October 2018 September 2018 August 2018 July 2018 June 2018 May 2018 March 2018 February 2018 January 2018 December 2017 November 2017 October 2017 September 2017 August 2017