What is SpaceFN and why you should give it a try
The SpaceFN concept - setting up your space key as a layer switch when held - is probably one of the most useful tweaks in the keyboard hobby. Let me explain how it works. My SpaceFN article on kbd.news made some rounds recently - quite surprisingly given the age of this concept. This piece you're reading is a condensed version of the full post. If you're left with unanswered questions, you'll most likely find the info you're looking for in the original write-up. On my imaginary top list of the most useful keyboard features, tweaks and hacks, SpaceFN would deserve a podium finish for sure. But what makes it so special? In short: SpaceFN is easy to implement, easy to learn, costs nothing, can be used with any keyboard, and can improve your productivity instantly. I will list its benefits below, but can state right at this point that the SpaceFN concept, setting up your space key as a layer switch when held, is clearly one of the most useful tweaks in the keyboard hobby....
Apr 30, 2024
- Make a new firmware. The device uses the "Quantum mechanical keyboard" (QMK) software (https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd004). To make a new firmware, there's an "easy" way by going to https://config.qmk.fm/#/xd004/v1/LAYOUT_all, making all the (limited) mods you want, then compiling and downloading the ".hex" result. The "hard" way (but it gives you more versatility including macros): Download and build the QMK development environment. I had problems with Fedora, but eventually got this going under an Ubuntu 20.04 VM.
- Put the keyboard into DFU mode. For me this was using a piece of wire or some other small conductor to bridge the two header holes furthest from the square keyed one at the header row on the opposite side to the USB port. At this point the XD004 keyboard device disappears from its host computer and is replaced with a DFU device.
- Flash the .hex file onto the keyboard. You're supposed to be able to do this on the commandline from the build environment, however my VM couldn't seem to find the DFU device. You can also use the graphical QMK Toolbox tool (Which only runs under Windows or MacOS, sadly). I used QMK Toolbox: Firstly pressing the OPEN button on the top row and selecting the .hex file we generated; set the MCU family to "Atmel 16u2"; From the "Keyboard" drop down, select "xd004/v1"; Press the "Flash" button and hope for the best! (You might need to unplug/replug the keyboard to see the changes taking effect.
Hope that helps!