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
So thanks a lot for sharing this, I will use this firmware instead, particle man saves the day
I check this page every day, I hoped we would get an official update as tybenz's request for an update gets upvoted more and more, yet it's not happening :( As I observed from other drops, they don't seem to deliver bad news, so we can deduct that there aren't any good news
I also noticed that the switches NEEDS to be PCB-mounts, unless you are ok with each of them being aligned to a random direction, I'm going to replace all of them soon, it's a pretty painful modding process overall, sadly, I don't think Massdrop is going to send PCB-mounts, so I strongly suggest buying PCB-mount switches externally
FMendoca: I bought icase's infinity, yet I'm sure you can find another seller in no time, just don't buy rev1's like I did :)
christmetcalf, going to attempt the same today on my secondary mac, If brew was sufficient I could have used my primary mac, but it seems this might be needed: http://www.obdev.at/products/crosspack/index.html - don't want to risk my primary mac with non-brew stuff, I will let you know If I get results
TL;DR: Strengthen the USB sockets, use PCB-mount switches, make sure diodes don't get destoyed by 60% cases
At this stage, I just wanted to correct my possible mistake of suggesting the AVR/Crosspack package
Edit: Infinity is ARM-based, so the ARM instructions should be followed, it's easy to find the arm libraries with both brew/ports, many of them work with the "controller"project, I managed to switch "1" and "2" by editing it's default .kll, only "dfu-util libusb" is needed as extras as far as I can remember, yet I couldn't make tmk_keyboard work, the mbed framework that it uses is very picky, I'm guessing it requires a version of the arm libraries that doesn't exist through ports or brew
./infinity.bash created a "template" folder which has the "kiibohd.dfu.bin", "dfu-util -D kiibohd.dfu.bin" installs the framework, the ./infinity.bash uses the standard .kll files, the output also includes the directories - so it's easy to know which .kll's are loaded/used - to edit them manually
TL;DR: I'm locked at infinity's original framework, tmk_keyboard proved to be more challenging
I get now why almost no one can use their infinity keyboards, but on the bright side, the "controller" firmware is easier to work with, the structure is just a bit complicated, you have to jump from place to place to get what you want
What brew packages did you install? Following https://github.com/kiibohd/controller/wiki/Mac-Setup, I installed "dfu-util" and "gcc-arm-none-eabi", but I couldn't find an ARM "binutils" package in the "paxswill/homebrew-paxswill" tap.
It looks like I'm almost built but not quite, due to a missing packaging tool:
Create and sign dfu bin file: kiibohd.dfu.bin make[2]: /Users/metcalf/lib/pebble/arm-cs-tools/bin/arm-none-eabi-objcopy: No such file or directory make[2]: *** [kiibohd.elf] Error 1 make[1]: *** [CMakeFiles/kiibohd.elf.dir/all] Error 2 make: *** [all] Error 2 Firmware has been compiled into: 'template'
I suspect that "arm-none-eabi-objcopy" is in that missing binutils package.
Edit: Nevermind. I'm bad at reading my own error messages. I had a dead path referenced in ./templates, and I had to rerun "./Keyboards/template.bash" to rebuild them. All good now!
I don't know what you mean, I managed to get mine working great. Tips here: https://docs.google.com/document/d/13WwRq4NC4a9cUEwcMS7QcomnTu02k9kuBss7Ep5tDBU/