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
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2014 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to dfu-util@lists.gnumonks.org
Cannot open DFU device 0a5c:21e6 Found DFU: [1c11:b007] ver=0000, devnum=23, cfg=1, intf=0, alt=0, name="Kiibohd DFU", serial="mk20dx128vlf5" ============================================
using win8.1. what does "Cannot open DFU device 0a5c:21e6" mean? can I ignore this message and flash without running into problems like the other guy? In any case, I ended up flashing through linux just in case.
Found DFU: [1c11:b007] ver=0000, devnum=21, cfg=1, intf=0, alt=0, name="Kiibohd DFU", serial="mk20dx128vlf5"
Return Code: 0 dfu-util 0.8
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2014 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to dfu-util@lists.gnumonks.org
Match vendor ID from file: 1c11 Match product ID from file: b007
Opening DFU capable USB device... ID 1c11:b007 Run-time device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing DFU mode device DFU version 0110 Device returned transfer size 1024 Copying data from PC to DFU device
Download [=========================] 100% 32380 bytes Download done. state(7) = dfuMANIFEST, status(0) = No error condition is present
unable to read DFU status after completion
Return Code: 0
1) Do you have any other computers to try flashing with? 2) Try running kii-dfu with administrator privileges 3) Download http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip, extract, copy kiibohd.dfu.bin to that directory, open up a command prompt (administrator mode), cd to the dfu-util.exe directory, dfu-util -l (this will list your keyboard to see if it's in flash mode), dfu-util -D kiibohd.dfu.bin (this will flash the keyboard).
The keyboard does not respond to any attempt to interact with it. The operating system does not recognize its presence. I've tried multiple PCs, multiple cables, and multiple USB ports. Everything is pointing to the keyboard itself as the source of the problem.
I'd really like to take a look at the keyboard personally. Would you mind shipping the keyboard to me? It shouldn't take me more than a day to solder on a new MCU (if that's what's actually dead). Then I'll ship it back to you.
It's quite a bit of work sadly. The unfortunate answer is that Apple keyboards don't follow the HID spec. They use a bunch of cludges to add things like the FN key (which does not exist in the HID spec, but they still pass it on to the OS). Since this is boot mode (early startup), very likely it would break support for some BIOSs. As we know Apple doesn't care about compatibility with anyone but whatever their latest computer is (they are terrible for backward compat on even their own hardware).
(also, any Apple devs working on HID reading this, don't worry, all keyboard manufacturers hate you; it's by far the worst platform to develop hardware for)
Anyways, enough venting. I think it still might be possible to make it work. Please file a github issue here -> https://github.com/kiibohd/controller/issues I have an apple keyboard kicking around so I can at least check out what kind of descriptors it's using.
I'm also going to ping hasu and some other keyboard firmware devs to see if they've looked into this.