Small Keebs

Recently I built 2 small keyboards: a CFTKB Romeo, and a Rainkeebs Manta with a nice!nano v2 controller and a LiPo battery

(they came as FR4 sandwich kits. I built both with the last of my cerulean switches filmed with C3 films & lubed with Krytox 205g0, avoiding the stem legs)

The Romeo and Manta are 40% and 30% keyboards respectively. There are plenty of size comparisons on the web but this video does it pretty well. TL;DR the main reasons you’d want to do this are:

  1. Aesthetics
  2. Portability
  3. Minimise finger travel.

There’s also this video which “demystifies” the 40% layout but the main argument is that you don’t need to lose functionality vs. a big keyboard because you put things on layers. You could flip this around and say the smaller you go the more you have to use layers to get all the functions you need. I had to make 2 big decisions:

  1. Can I just cut out some keys because I’m not going to use them?
  2. Once I’ve decided which keys to keep, what’s the best layout?

Romeo

The Romeo is the smallest of CFTKB’s offerings (the others being the Discipline and the Mysterium). I love the aesthetic of all three but I was surprised how much more solid the Romeo feels and sounds (I guess because its so much smaller, so less flex / resonant). All 3 are plateless.

I thought building it with a split spacebar would be a good idea because (a) it’s better to have more keys, (b) function keys activated by thumbs are efficient and (c) the position of the keys are shifted 0.5u to the left, meaning I’d hit the right space more reliably with my right thumb. It looks like this:

(DCS Nightfall and CannonCaps 407)

I didn’t like it and I think it was actually worse than the normal 2.25/1.25/2.75 owing to where my left thumb lands and the tiny-ness of the middle key. So I desoldered it and went for the standard spacebar and I think it looks better (pictured here next to the Manta):

I also managed to get away with just one layer, with fn key mapped to caps lock. I kept the arrows on the base layer in the bottom left corner which meant I didn’t need to cram them onto a layer. Apart from the numbers, most of the punctuation falls under my right hand.

I left out the number pad keys (I never use them) and the function keys (because I’ll mostly be using this on a Mac).

Overall it’s just the right balance between minimalism and functionality… and I really like the one less row, it’s surprisingly easy to reach the number keys under row 2.

Manta

(battery placement)

The manta is compromised compared even to the Romeo having only 3 rows, meaning you have to put your thumbs in weird positions if you want to use the middle keys as thumb keys. Compare where my thumb falls on the Manta compared with a more typical posit:

The Manta works much better as a one-handed keyboard (in fact I used it like this for one-handed typing when I had really bad RSI):

I’ve been using it to play some FPS games and it works nicely 🙂

Here are my layers. I decided on a sticky layer key (aka One Shot) on the base layer and then accessing the second and third layers via mo keys on layer 1 (I know Ben Vallack likes layer toggles but I prefer the keyboard to return to the same state when my hands are off). Hope the color coding makes sense:

Hit the Sticky Layer key to get to layer 1. From there you can hit mod keys for layers 2 and 3.

You may have noticed that there’s no arrow keys, backspace or delete, and there is a dedicated CTRL key on the base layer. This is because MacOS (and by extension iOS) has built in Control-based shortcuts for navigating text:

Control-A: Move to the beginning of the line or paragraph.
Control-E: Move to the end of a line or paragraph.
Control-F: Move one character forwards.
Control-B: Move one character backwards.
Control-L: Centre the cursor or selection in the visible area.
Control-P: Move up one line.
Control-N: Move down one line.
Control-H: Delete the character to the left of the insertion point (i.e. Backspace 1 char)
Control-D: Delete the character to the right of the insertion point (i.e. Delete 1 char)
Control-K: Delete the text between the insertion point and the end of the line or paragraph.
Control-O: Insert a new line after the insertion point.
Control-T: Swap the character behind the insertion point with the character in front of the insertion point.

From this list. It takes some getting used to but I’ve tried it out and I like it. I can do an awful lot just with the base layer thanks to auto-capitalization, double-tapping space for a full stop, etc.

The complete repo is here, and I’m using the 4layer branch.

A Tale of Two Keyboards

Further noodling with keyboards this week. If you’re here for the RPGs or fiction you may be disappointed… but it’s still 100% geek.

I’m mostly documenting this because I had to fix several issues with my BT60 PCB in the firmware, so the details and link to my GitHub are below.

Filco TKL

I decided to desolder my Filco a second time because the Glorious Panda switches really weren’t working for me with the Filco’s steel plate, and instead I soldered in the lavender linear switches I’d bought some time ago.

Before I soldered them I lubed them (with g lube, because it was what I had) and filmed them (with deskeys switch films) and mutilated them (because the filco only takes 3 pin switches)

The switch films were so fiddly to put on that I would seriously think twice before doing it again… but on the other hand if you’re opening up the switches anyway, why not film them? It does make the housing a lot tighter.

The finished keyboard does look very handsome with the Filco SA keycaps (R2/R3):

And even better with the SA Dreameater fully sculpted set:

Unfortunately I don’t really care for linear switches compared to the alternatives, so this will be the first and last time I use them (probably). The keyboard is still nice enough to type on and I’m happy to let this be the final state for my 10+ year old Filco. It’s been a lot of fun repurposing something that I thought I’d have to abandon because of the infuriating key chatter.

BT60

The other thing I built is much more exciting although maybe it doesn’t look like it:

This has my lubed Glorious Panda switches, a carbon fibre plate, and a BT60 PCB which means it’s wireless. It’s not been entirely smooth sailing though.

Problem 1: short shorts

I was using GMK stabilisers which screw into the PCB with metal screws. I guess these multi-layout PCBs have so many pads and traces that if you’re not careful you can short the thing, which is what happened to me. The short basically meant that no key on Column 13 (backspace, backslash, enter, right ctrl) functioned.

Fixed it by putting electrical tape between the screw and PCB.

Problem 2: firmware errors

The second thing that happened was that the vendor had cocked up the key matrix for the default firmware, referencing Right Shift to RC(3,13) which doesn’t exist (meaning that the board treats it as the Escape key). That was an easy fix, just correct the BT60.dts file in the repo (which I did, details of my fork on GitHub below).

I guess if I were a consumer of a single packaged thing I would be annoyed that the thing didn’t work out of the box. But in this case the customer support generally relies on channels like Discord to support and explain the problem, and I already managed to diagnose the problem thanks to the great documentation, and that actually gives me more confidence in buying again than, say, from a large corporation.

Actually writing the firmware was dead easy, foolproof almost (it compiles in the cloud and if it doesn’t work, you get a warning and it won’t build the firmware). I forked the repository and then added a couple of my own branches. The workflows mean that all the compiling happens in the cloud, and flashing the firmware was even simpler than doing the same on the Discipline65 board.

Problem 3: default layer

I messed with the raised layer in my alternative firmware. This was because some of the modifier keys had alternative functions on the raised layer, which meant that you had to be sure you were pressing those keys (shift, ctrl, alt) before you pressed the function key to access the arrow keys. Why is this a problem? Well, if you use arrow keys a lot you probably also use them in combination with other modifiers and remembering to press them in order is a massive pain. So, I just remapped the functions (like the commands to change BT device) to other keys. Once this was done I could press function, shift, ctrl etc. in any order and it would behave as it should.

Github

This is my GitHub fork of the zmk firmware for BT60 with the corrected key matrix. There are two new branches, one called ANSI_hhkb and the other called ANSI_alt which have alternative raised layers (one for a HHKB style function layer and the other for the more standard 60% ANSI keyboard). I prefer the latter, the HHKB style just doesn’t work on this board for some reason.

Built

So after it all works, it’s connected reliably with a Mac Mini and a Windows laptop, and I’ve typed this post on the keyboard. The good thing about a standard ANSI layout is that I have a lot of different keycaps to use. I liked the Dolch look for the Knight Rider vibes

SA sounded nice as well, but the all white looked a bit bland

Other thoughts

  1. I like tactile switches, and the Glorious Pandas are a high bar to clear. I may try ergo clears at some point but otherwise the pandas are pretty amazing. But it seems that the keyboard hobby is obsessed with linear switches in pretty colours.
  2. I like non-metallic switch plates. The best I’ve used so far are my HHKB (plastic) and the carbon fibre plate. I’m not keen on steel or aluminium plates, though I haven’t tried brass yet. I fancy trying a polycarbonate or POM plate.
  3. I thought I wasn’t going to play around with another 60% build because I needed the arrow keys but I’m finding the arrow key placement on the left (WASD) and the function on the right pretty ergonomic compared to the Tsangan/HHKB layout (I think the HHKB works better thanks to the lighter switches and sculpt, but when I tried the Tsangan style with this Tofu case it wasn’t so good). You hit the function button with your thumb and the other modifiers are right there. Overall this board feels very nice and snappy and it sounds good, and I like the reclaimed desk space.

Podcast Listening: March 10th 2021

Thanks to a marathon desoldering session I’ve churned through another five really good podcast episodes.

The Midnight Library: S3 e8 “Very Superstitious”

Subtitled “factual tales from a fictional location” this is my first listen to this podcast but I really enjoyed the episode which was about luck and superstition, anecdotes narrated by Miranda Merrick, the show’s Literary Oracle. Top stuff.

Very Superstitious

The Thocc: Episode 10 with NathanAlphaMan

After the Xmas episode I listened to the following episode featuring NathanAlphaMan. This features a discussion that will be familiar to the RPG crowd, namely what is a designer? That discussion includes nuance around the community, how creatives see themselves, and the actual language. Something new I learned is that other languages have a lot more variety in the different terms for what we would call a “designer” in English.

Episode 10: NathanAlphaMan

Roleplay Rescue: The Elusive Shift

Part of the new wave of podcasts I’m seeing on Anchor which encourage and incorporate audio feedback from listeners, which is a great new thing. This one covers Jon Peterson’s The Elusive Shift and nicely distils down some key lessons, in particular the fact that RPG theory from the 90s is predated by Alarums and Excursions zine content from the 80s.

The Elusive Shift

Not Alone: the Windigo

Haven’t listened to this podcast for ages. There’s a long preamble where the hosts talk about life stuff but then it gets to the legends about the Windigo and the evidence from historical records. What makes it especially good is the scientific and critical thinking, the framing of legends in cultural context, and the research and citations. Warning: it’s a long podcast and the content includes cannibalism, which may upset some people. If that bothers you I recommend some of the other episodes including the Toynbee Tiles (which I pointed to in this earlier post).

“Think about bringing people to your dinner table, not on your dinner table.”

Not Alone: Windigo

Nocturne: Welcome to the Night

I found this last podcast browsing at random so I listened to the introductory episode (from 2014). From first listen it seems to be about people’s relationships with the night. The background soundscape is brilliant, and I’ll definitely be listening more. The introduction is only 15 mins long and worth a listen. Also the accompanying art is gorgeous (see the site here).

Welcome to the Night

Podcast listening March 6th 2021

Here’s what I’ve been listening to recently. Warning, contains some politics.

The Giant Brain episode 65: Stormy Weather

This podcast is slanted towards boardgames but it has a RPG corner as well. The episode is notable for tackling recent controversies in the boardgame space with racist, COVID skeptic and otherwise tone-deaf nonsense. Two remarks about how cancel culture is a confection of the right, and how if a company drops you because you’re toxic to their brand is exactly how free market economics should work, are spot on. I’m saying this really as a warning though because not everyone likes politics with their RPGs. But the GB has a lot to recommend it, really nicely produced and a great chemistry between presenters.

Giant Brain ep 65

Monster Man special: Dinosaurs

I’ve not listened to Monster Man for ages. This special backer-inspired episode starts a bit stream-of-consciousness a bit like Paul Merton on Just a Minute but it’s full of brilliant commentary about our relationship to dinosaurs, how dinosaurs are a “modern monster” because they’ve only been (relatively) recently revealed to popular culture. Some great comments on how dinosaurs could mesh with a medieval society (both for the dangerous predators outside the community, and for the feudal notions of hunting on estates etc.).

TL;DR it’s a great listen for a parent of a dinosaur-aware 4 year old who is now working therapods into a sword-and-planet game.

Monster Man Special: Dinosaurs

James O’Brien: Rachel Clarke (Dr. Oxford)

Powerful interview from the POV of a UK NHS professional which talks about the reality not only about the NHS but the propaganda from the RW media around the pandemic which is directed at the NHS staff, especially those who dare to speak out:

You have… first hand experience of how awful this pandemic is… [and] they’ll do everything in their power to shut you down

This is difficult listening and not your usual RPG content. UK politics, calling out gaslighting, testimonials about hospice care.

Full Disclosure: Rachel Clarke

GMS 171: Zinequest

This episode started with the most recent Zinequest and then progressed into KS as a platform, the way it’s being used today vs. the original intentions, whether or not you should crowdsource if you don’t need to, limiting risk for new publishers etc. Great listen

GMS 171

The Thocc: Xmas special

This is a mechanical keyboard podcast which I heard about via the Theramin Goat blog (I assume the author is one of the presenters?). They’ve only done a few episodes so far but this one features youtuber Chyrosran22, a Dutch keyboard collector with a fantastic voice and range of swear words to describe any inferior keyboards deserving of his ire.

(this is probably at the very far end of the interest spectrum for most readers here but I’ve recently dipped both feet into the hobby with my first custom project and it ticks the same boxes for me as other geek obsessions like fixed-gear bikes and fountain pens and RPG systems)

The Thocc ep. 9

Vile Tofu

And now for something completely different: I built my first mechanical keyboard and I’m typing this post on it right now. This is what I did and what I learned.

  1. I went with a 60% tray mount because those bits are readily available (e.g. from Mechboards)
  2. I chose to solder instead of hotswap; soldering gives more options (I wanted the stepped Caps Lock), has fewer points of failure, and means I have to learn how to solder again after 25 years. Also, I already owned a hotswap board.
  3. I went with a Tsangan layout with split backspace and split right shift. I already have a HHKB so the layout is very similar. I wanted to try a 7u spacebar and this let me do that.
  4. DZ60 off-the-shelf PCB with usb-C and underglow, so I also got an acrylic Tofu case. I specifically wanted usb-C rather than mini-USB because the latter are more fragile.
  5. At every step I tested that the PCB was working by bridging the contacts for each switch and checking they registered against a keyboard tester (the one I used the most was built into the Via software).
  6. I bought a fancy soldering iron. I could have gone way cheaper but the Hakko heats up quickly meaning I don’t have to leave a soldering iron unattended.
  7. I was impatient and first soldered the board with some Gateron Blue switches I had spare. I didn’t bother to treat the stabilizers beforehand. The whole board sounded crap. But that was OK, I intended to desolder as a learning exercise.
  8. So I desoldered using an Engineer SS-02 solder sucker and it’s a really great tool. But also it took me two sessions to desolder because I let the tip of the soldering iron oxidise meaning it couldn’t heat the joints up properly, leaving small strands of solder sticking to switch pins. Then I tried to brute force the pins out. This just meant I broke the switches (which were cheap and rubbish). The correct technique is if the switch doesn’t come out, re-make the joint and then desolder again. This was usually successful in letting me get all the solder out.
  9. Having learned my mistake with letting the iron tip oxidise I bought some tip tinner which was cheap and worked great for cleaning and re-tinning the tip so the iron could transfer heat properly. I also bought desoldering braid, which I couldn’t get to work for anything other than small solder bridges between pads but it was also cheap and may come in handy.
  10. So before I soldered a second time I checked the PCB hadn’t been fried (hurrah!) then I took my time. I clipped, lubed and band-aid modded the stabilizers which made a massive difference to the sound. The youtubers who call this the most important mod are not overstating. And it’s easy to do! I used Permatex dielectric grease.
  11. Then I took my time seating the nice switches (Durock Lavender switches), and soldering, testing along the way. I made a couple of mistakes with switches which were slightly tilted. This didn’t affect the keyboard working but once you saw a switch was not seated right you can’t unsee. But fixing that was a 2 minute job.

Here’s some Instagram posts:

If you don’t want to click through, here are some pics:

So the build used a 60% carbon fibre ANSI plate, DZ60 PCB, Tofu case in acrylic, Durock lavender switches and modified GMK screw-in stabilizers with a Tsangan layout (split r shift, split backspace, 7u spacebar, stepped caps lock). The linear switches are a bit new for me having previously used clicky and topre switches, but it’s still very pleasant to type on partly because it sounds so good. Keycaps are DSA profile Vilebloom, hence the name. However I expect to be putting some nice tall SA profile keycaps on it in the near future.

My next keyboard project is to an old Filco keyboard which will live at work if I ever return to the office. It’s actually functional today… it had a problem with chattering switches which drove me mad, but that was very easily fixed by just desoldering and then resoldering spare switches. But I will probably desolder the whole board and then solder in some much nicer switches.