Keyboard Builders' Digest
Comfort and wellness in day-to-day typing. Save 20% at X-Bows!

Issue 108 / Week 51 / 2022

This is a hand-picked selection of last week's content from a keyboard enthusiast's perspective. Posts that may teach you something, make you think and contribute to the common knowledge of the DIY builder community.

View mode: compact | normal | full

Contents

Editorial

Behind the Scenes of Issue 108

Giveaway & advent calendar follow-up, vendor updates, etc.

Hey y'all,

Welcome back for another edition of Keyboard Builders' Digest (this time Issue #108), a weekly roundup of this DIY keyboard focused newsletter and blog from Tamas Dovenyi – that's me. If you are new to this, you can read how this started out and what this is all about nowadays. If you like what you see, you can subscribe to the newsletter (free) and donate some bucks to keep this otherwise free and ad-free project alive.

---

This is just a quick editorial today. More behind the scenes stuff in my year-end article for the advent calendar.

Happy holiday season for you, this is probably the last issue this year.

Giveaway follow-up

Still working out details with some vendors, but most of the prizes should be at the winners now (or on their way), e.g. Tyler sent me this photo with a deskmat he won:

Pic: Deskmat offered by OneOfZero

Deskmat offered by OneOfZero

Advent Calendar

As you may have seen, I have run out of articles for the calendar, but it's all good. I expected this, and to be honest it was a lot of work so as much as I loved reading these posts I'm also glad it's over. I'll post the remaining ones when/if they arrive.

r/mk Week of Giveaways (winter) & Drop Christmas game

Lot of opportunities to win something, right? I hope some of you had success. The second "week of giveaways" on r/mk is over, at least after banning giveaways in late 2021.

Just my two cents: the 9 day time-frame is way too long imo. Other kind of posts stand no chance, giveaways fill the hot list and generate thousands of meaningless comments. This is exactly why they were banned in the first place.

I commented on my favorite food, drink, color, animal, you name it. The most successful giveaway post scored 17K upvotes and 23K comments. Does this really make sense?

This may sound like a perfect case of sour grapes because I commented on 90+ giveaway posts without any success. :D

At least I came across some vendors missing from the vendor database so I could add a few of them.

Btw, on the last day of the Drop "12-day runup to Christmas" game I got a BOGO code: a free MT3 set. I wasn't too excited because there are no free prizes living in the EU: I have to pay about 30% (VAT & customs) even for gifts. So my first reaction was putting something in my cart to check the shipping fee (which is part of the basis of VAT/customs calculations). The process took about 3-5 minutes, but the code didn't work. The error message simply stated it's invalid.

I wasn't too upset, I don't really need another MT3 set, but thought I report the issue to Drop. The answer was the same evasive wall of text I could have expected: the code is expired and they can't do anything about it. Again, I can live without another MT3 set, but the answer was total bullshit. The time it took to enter the code after "winning" it was no more than 5 minutes.

Vendor database

Meetup database

As always, this meetup database is both a calendar and an archive so feel free to send me upcoming events or even ones from the recent past to make this collection as comprehensive as possible.

Donors

  • A new recurring donation: Thanks Mats!

And a big shout out to everyone who supports this project regularly, recurring donations keep this project alive.

As I write it in my year-end summary, maintaining this site takes a lot of energy and time. (According to the Reddit Recap stats that's 100 hours per month on Reddit only.) If you'd like and can afford to help, here is the donation form.

---

That's all for today. Thanks for reading. Happy holiday again.

Feel free to comment in this issue's r/mk thread, and as always: keep learning and building.

Cheers, Tamás


Advent Calendar

Keycaps, design and free kittens

Simon, co-founder of FK, looks back on 2022 where new projects were born, and into 2023 where more are coming. He is on a journey to make custom keycaps, new profiles and designer collaborations.

Introduction

Hi 👋 my name is Simon and I co-founded FK 3 years ago with a dear friend of mine. 2022 has been quite a year for us and taking this opportunity to reflect on it is actually just what I needed! Thanks Tamás for putting up this posts series, gathering so many cool builders that I am looking forward to reading each day of December and working relentlessly on feeding us our weekly dose of keyboard news ❤️

Who/what is/are FK?

We have been around the MK community as a company since 2019, when we started an Interest Check in order to bring a proper keycap option for Kailh Choc low profile switches as there wasn’t any back then. We then started what became a long lasting collaboration with mburger, who designed the MBK keycap profile.

As we quickly realized, there are many talented designers in our community, and a lot of projects we could see sprouting online were having a hard time to happen, when they did. And as we experienced first hand when starting production of the MBK keycaps it turns out manufacturing is both time consuming and stressful (especially plastic keycaps), two resources that most designers may lack as they’d rather spend their time designing stuff and being creative. We were apparently adding more value to the community by standing on the designers side, working on getting stuff manufactured than running our own shop/projects. Having a co-founder located in Asia and with a Chinese-speaking wife helped too!

Another thing is that a lot of projects/GBs happening were in my humble opinion not so fun or innovative. I wanted FK to exist for the part of the community who likes to tinker and try out new things, as I believe everyone has its own taste and preferences, and that deserves to be reflected in the range of products available.

So in 2022 one of our goal was to define ourselves as a company, here’s what we settled on:

FK exists to empower designers by bringing their ideas into reality, and foster innovation in the MK community.

Oh, and in case you were wondering, FK means "Free Kittens" because who doesn’t like free kittens?

2022 Wrap up

2022 was quite a year! Packed with surprises, and it’s also the year when my partner and myself have decided to commit more to FK by leaving our full time jobs. Scary and exciting time! Taking this leap of faith allowed us to line up lots of good stuff for 2023. But let’s now look back on what happened in 2022:

HEX keycaps & 0xC.pad

Designed by s-ol, these keycaps are exactly the kind of project we are proud of making happen. Like it or not, it’s an innovative project (proper hexagonal keycaps for MKs had to happen eventually!), and working with s-ol has been a great experience as he is both talented and passionate about his work.

Pic:

Pic: HEX keycaps, with low profile Choc switches stems

HEX keycaps, with low profile Choc switches stems

They have been designed to be used in a musical (mech) keyboard and while that project is still cooking and in order to get the molds done, s-ol put up the 0xC.pad macropad, that is being distributed by a few vendors worldwide. A cool piece of hardware that I love to see on my desk everyday! Hopefully we’ll see more of these weird hexagonal keys keyboards/macropad in the future.

Pic:

Pic: 0xC.pad macropad, in stock for $70

0xC.pad macropad, in stock for $70

MBK Legend‡ GB

The MBK Legend‡ group buy that started in *checks notes and sighs* January 2021 was finally delivered in May 2022. This was a long and bumpy road to say the least. We have ultimately provided regular and detailed updates on Discord but long story short, dye sub is hard to setup and execute at scale, and while we’ll keep producing dye sub sets, we won’t be running group buys anymore. It was stressful, exhausting and we ran into so many obstacles that we decided two things. First, we’ll communicate more on our projects and products. That’s where our new website comes in. Second, we won’t take customers money until the product is in stock moving forward.

Pic: MBK Legend‡ on a Rollow - photo credit: Riizu

MBK Legend‡ on a Rollow - photo credit: Riizu

But there is one last GB (that we won’t be running ourselves) that’s coming… the new SLK profile.

SLK

The SLK keycaps profile has been designed by Nostril in 2020, if you’re interested you can read about its history in this post. When we got in touch we started discussing how we could help making the project happen and we eventually decided to make a test mold (for MX stems, our first MX project!) while looking for a designer to make some legends and run a GB for it. kema was interested and joined the project, so we spent the most part of 2022 going back and forth doing many round of samples to get a perfect dye sub subset of keys.

Pic: SLK Dessau render (slkdessau.com)

SLK Dessau render (slkdessau.com)

It is now the end of 2022, and we finally have samples that match our expectations and will start a GB in the coming months, lead by Cannon Keys among other vendors. That time when a long awaited project comes to life is so satisfying, even if the sets aren’t done yet and there is still a lot to do ahead of us!

Pic: SLK keycap height comparison

SLK keycap height comparison

For more information about this set, check out slkdessau.com.

MBK 40s and Glow R2 white

Now that we have our production capabilities in order for dye sub, we launched MBK Legend‡ 40s, a small set of keycaps that is affordable and convenient (read “in stock”!) for 40%/ortho users.

On the other hand, we started production of the white version of MBK Glow (the shinethrough variant of MBK, made of coated ABS). It is a R2 because we have updated the set content as well as the packaging a bit.

Pic: MBK 40s on a Corne-ish Zen

MBK 40s on a Corne-ish Zen

Pic: MBK Legend‡ Glow R2 kit content

MBK Legend‡ Glow R2 kit content

So we took some time in 2022 to slowly but surely add more options to choc/low profile users. By the way, MBK 40s is in stock at some vendors and Glow R2 will ship Q1 2023. You can subscribe for updates on our website if you’re looking forward to those.

MBK Extended

MBK has been around for a while now, but only in 1u, 1u homing, 1.5u convex and 2u convex sizes. Most low profile keyboard users are fine with those options as most keyboards are currently split/ortho. We had in the back of our mind to do all sizes to cover “standard sized” keyboards for a while now, and that time has finally come!

Pic: MBK Legend‡ Extended kit content (SC colorway)

MBK Legend‡ Extended kit content (SC colorway)

Pic: MBK Legend‡ Extended kit content (OG colorway)

MBK Legend‡ Extended kit content (OG colorway)

But we were facing a chicken/egg situation where we are (once again) making keycaps for keyboards that don’t exist yet. So we choose the hard way (not sure we ever chose the easy one) and decided to find designers interested in preparing compatible PCBs and cases.

There are now 5 designers who have contributed to this project: mburger obviously designed the new MBK sizes, tectonicplate designed the keycap sets, dezli created 2 PCBs (a wireless TKL and a 40% based on rain’s work), Darryl designed a 60% PCB and Audun Trede-Vere is designing cases for each PCB. We are thrilled to have such a team of passionate designers working together on this large project that will hopefully open up more MK users to consider having a low profile keyboard.

More details and an interest check to fill on our website: MBK Legend‡ Extended

Pic: 3D render: LP40 in a “Bender” case (case design by Audun Trede-Vere, keycaps by tectonicplate)

3D render: LP40 in a “Bender” case (case design by Audun Trede-Vere, keycaps by tectonicplate)

Pic: LP88 prototype (designed by dezli)

LP88 prototype (designed by dezli)

Pic: LP40 prototype (designed by dezli based on rain’s work)

LP40 prototype (designed by dezli based on rain’s work)

Pic: LP60 prototype (designed by Darryl)

LP60 prototype (designed by Darryl)

MNT Pocket

We had already collaborated with MNT when they decided to use MBK on their awesome open source laptop (that includes a mechanical keyboard obviously) called MNT Reform. For their new upcoming project called MNT Pocket Reform, a 7-inch mini laptop, they needed to go smaller, as small as it can get, so this new keycap is barely the size of the Choc switch!

Molds are done, samples approved and production started so we can get them early 2023! No vendor has planned to stock them, but to be fair we haven’t told them yet.

Pic: MNT Pocket Reform (render by MNT)

MNT Pocket Reform (render by MNT)

Pic: Early samples (raw material, no coating)

Early samples (raw material, no coating)

Pic: Samples top view

Samples top view

Website & Branding

One of the goals we had set for 2022 was to work on our brand identity and publish a new website. It is meant to give us a space where we can post our updates, but also receive and listen to your feedback and comments.

It took the whole year (plus a few months before that) to make it happen but it's finally here! We are now ready to communicate better on our ongoing projects, collect feedback and interest on the other projects that are still in early development (looking at you, TPRX), and introduce ourselves to the world!

Pic: Brand new color palette 🎨

Brand new color palette 🎨

Keycap customization

As mentioned above, offering customized keycaps has always been a dream of mine. I have been working on this webapp for over 3 years, granted 90% of that time was spent either over engineering or making poor UI/UX choices that lead to a full rewrite… twice. Talk about scope creep uh? The original plan was also to offer custom dye sub, but now that we better understand the production constraints we realize how hard it is going to be to pull that off with a level of quality and consistency that we can be proud of. We don’t give up just yet, and hope to provide this service in the future. But for now to get the gears turning, we’ll start with laser etching for ABS material (shinethrough, basically same as MBK Glow), or laser marking PBT (same PBT keycaps as usual). We are going with MBK first obviously, but will quickly expand to other profiles.

Pic: First tests of customized MBKs!

First tests of customized MBKs!

Pic:

Pic: Custom sets prototypes

Custom sets prototypes

This is what the final result looks like, and making the customization experience as smooth and enjoyable as possible is our new goal! Try it out today and let us know what you think. We will be looking into adding more options too, which you can help us pick by submitting/voting for feature requests in the bottom of the page.

Designers call

While there are already a few projects that happened, more are coming! And we are open to collaborate with talented designers that share our state of mind. Here are some skills/areas of expertise that we currently value:

  • Keycap legend design: creatives with a good eye for typography and icons/novelties can join us to bring their talent either to the customized keycaps offers or run custom sets at a larger scale
  • PCB/case design: we need more boards to fit those keycaps on! Especially the HEX profile, MBK Extended and why not MNT Pocket keycaps. PCBs and cases aren’t our strong suit but if you have a cool project that you’d want to get funded you can reach out!
  • Keycap profile design: this one is more tricky and happens over a longer period of time. Let us know if you have a cool project in mind and are willing to put in the time, work (and wait for samples for months…) – we are open to any ideas provided it’s somewhat innovative.

In any of these scenarios we have a very simple business model: designers get paid based on how many designs sell. Every quarter, we take pride in sending thousands of dollars to the designers as the result of their work!

Hello, 2023!

We are looking forward to 2023 with a big smile, knowing that we still have a long way to go, having fun (almost!) every day doing what we love, and hopefully turning what used to be a passion project into a full time job in 2023 🤞. A huge thank you from the bottom of our heart to all the people that chose to use our products and contribute to make our dreams happen, and a big shout out to the designers that trust us with their ideas and whose creativity make this journey so much more colorful and enjoyable. Have a great holiday season everyone! 🎅🎄

I typed this on my good old split UHK with browns and DSA keycaps, programmed with Colemak layout.

Simon (35)

kartsims
LocationBordeaux, France
DescriptionFK co-founder, keycaps manufacturer
Occupationback-end developer
Joined2018
Nichelow profile keyboards, keycaps customization
Linkshttps://fkcaps.com, https://twitter.com/f_k_caps, https://www.instagram.com/fk.caps/, https://discord.gg/b5C9H99RYZ

/r/MechanicalKeyboards, a Year of Changes

Large communities are difficult to appease, and even more difficult to keep organized. This year, /r/MechanicalKeyboards has undergone many significant changes.

Introduction

Large communities are difficult to appease, and even more difficult to keep organized. That’s where the moderators of r/MechanicalKeyboards come in. In the past year, the subreddit has undergone many significant changes. I go by Dryver on Reddit, and I have been a moderator of /r/MechanicalKeyboards for the past 8 years. I have seen the subreddit and hobby grow from ~10,000 members to well over 1 million. The past several years have been quite quiet for the /r/MechanicalKeyboard community, with very few changes, moderator interaction, and rules changes.

An Unorganized Mess

Around April of this year, it became clear to me that the forum had become disorganized, outdated, and unfriendly for new members of the community. The first step I took was doing an audit of the existing moderators, and removing the inactive ones. During this time, NickHeller decided to step back from moderation, as he was spending much more time in the Discord communities rather than Reddit. That left me, alone, as the sole active moderator.

I had recently accepted a position at a different company and had a few weeks off before starting my new job, so I had quite a bit of free time available. I spent some of that time drafting up some new and updated rules for the subreddit, and brainstorming ideas of how to engage the community and bring in new faces.

Towards the end of 2021, we were unfortunately forced to ban giveaways on the subreddit because it had taken over the subreddit and many people were upset at the amount of self-promotion and ads. Flash forward to June 2022, I had the idea to contact a few keyboard-related companies to see if they would be interested in participating in a Week of Giveaways. To my surprise, both companies and the community reacted very positively to the idea of limiting giveaways to small time frames throughout the year, as it didn’t clog up the front page with ads, and it still gave companies a chance to give back to the community.

Pic: Moderation: 2900+ actions by 7 mods over the course of 1 month

Moderation: 2900+ actions by 7 mods over the course of 1 month

Around the same time I announced the giveaway week, I also posted an update to the administrative side of the subreddit with a host of new and updated rules. During this time, a few moderators were removed from the sub due to inactivity, and another left on their own accord. It became very clear it would be impossible to keep up with the work the subreddit had alone. I reached out to members of the community and some older moderators and formed a new team of DrSchlock (a longstanding moderator who joined the subreddit and moderating team about a year before I did), Omnias-42 (an active member of the community and a moderator of /r/MechMarket), and myself Dryver.

The New /r/MechanicalKeyboards

With the new team formed, we were ready to give the community the updates the subreddit needed. The “Week of Giveaways” was the single most successful week the subreddit has ever had. We had over 200,000 individual entries into giveaways over the course of the week, with more than 60 vendors giving away over $10,000 worth of items to the community.

We had tremendous growth during the event, gaining nearly 10x the average subscribers per day, with over 25,000 new subscribers for the week. We reached the top 5 subreddits for comments per day during the week, breaking our record of comments per day on the subreddit by nearly 3x with over 30,000 comments on August 7th. In terms of reach, we had a massive number of pageviews during the week, with over 1,000,000 pageviews on the subreddit, and the top 10 giveaways reaching nearly 50,000,000 pageviews with over 15,000 shares.

Pic: Effect of giveaway ban, new rules and giveaway week on comments/day.

Effect of giveaway ban, new rules and giveaway week on comments/day.

Unfortunately, with more pageviews and subscribers comes more work for the moderators. The week following the “Week of Giveaways”, we were brigaded by a smaller keyboard-related subreddit, causing an influx of work for the moderators. Luckily, with the help of some Reddit admins, we were able to keep things under control. In the following few months, Omnias and DrSchlock helped recruit several more moderators to ease the workload and provide content moderators in different timezones.

Conclusion

The hard work has paid off, and the subreddit is now doing better than ever. We are consistently growing with the subreddit once again headed towards the top 200, we have an active team of 7 moderators helping out, and we are currently hosting our (now yearly) winter Week of Giveaways. The most important aspect of the subreddit is the community itself, and we are overjoyed to see it flourishing with new people joining the hobby every day.

I am currently typing on a LinWorks Whale Special (37/40) in black, with the elusive Cherry MX Tactile Grey switches, Drop’s Lord of the Rings hardcore Dwarven keycaps, and a custom cable from CableMod.

Tristan (27)

u/Dryver
LocationPhiladelphia, PA
Description/r/MechanicalKeyboards Moderator
OccupationDevops Engineer
Joined2013
Fav. switchCherry MX Tactile Grey, Buckling Spring
Other hobbiesRock Climbing, Magic the Gathering, Board Games

The three angles of ergonomics

Where do you start when you want to design keyboards with more ergonomics? A bit of basic keyboard science by nerdbude of the CCH podcast.

Everyone is talking about more ergonomics in keyboards – a rabbithole in a rabbithole, so to speak. But where do you start when you want to design keyboards with more ergonomics? There are 3 important angles to start with.

Introduction

I'm Philipp or 0x17 or the guy with the German speaking podcast about keyboards – so most of you probably don't know me. I like the variety that comes with our favorite hobby – among other things, the aspect of ergonomics. But from a theoretical point of view, in order to develop the perfect ergonomic keyboard for me one day, I measure angles, distances, move, and ask people about their keyboards and preferences to try to collect and evaluate the whole thing. I put all this and much more into the CLICK! CLACK! HACK! Podcast where I talk about keyboards.

Ergonomics crash course

We all love our keyboards, have fun using and building them, and there comes a point when we want to design our own custom keyboard. When faced with the decision to design your own keyboard, there are endless factors that can be considered. Regardless of form factor and layout, there is another important part – ergonomics.

But why? Because your hands will thank you. There are entire scientific fields that deal with the ergonomics of input devices. There are studies and analyses, evaluations and observations and a lot more. The field of ergonomics is very broad and incredibly complex.

This is not a detailed analysis of keyboard ergonomics, but rather a basic beginner's crash course in ergonomics. Why all this? To make it easier to get started. Many enthusiasts shy away from their own design for various reasons. That's why I hope to break down at least one of the barriers with these basics.

Dear enthusiasts – let me introduce "the three angles of ergonomics". As I said, ergonomics is a huge field but you can break it down into 3 different angles to get you started. If you play around with these angles, you'll get a clear plus in ergonomics and that's good for your health.

1st angle (Alpha)

The Alpha angle is probably the best known. This is the angle that almost every keyboard has. It describes the rise that the keyboard makes from the bottom to the top. Unfortunately, it has become common practice to let this angle increase. The angle between the hand and the surface (desk surface) is measured. In normal condition the angle is 0°, regular keyboards have an inclination between 5° - 8° and therefore overstretch the wrist. You can counteract this somewhat with wrist rests. A better way would be to move the angle to negative, so that the palms and fingers are below the forearms.

Pic: Alpha

Alpha

2nd angle (Beta)

Let's move on to Beta. Beta is the movement to the left and right of the hands in relation to the forearm. Regular keyboards bring the hands together in the middle and then turn the hands and thus beta outward. What happens here is that the wrists are overstretched, which leads to pain in the long run.

If you design your own keyboard and want to make it as ergonomic as possible, transfer this angle to your keyboard and rather turn the keyboard half outwards to fit your hand or even better split your custom board, so the splits can be placed individually.

Pic: Beta

Beta

3rd angle (Gamma)

Last but not least Gamma. Gamma is in contrast to Alpha and Beta not considered by conventional keyboards. Some of you will know this angle as tenting. That is, the lifting of the keyboard in the middle and sloping outwards. The angle of custom keyboards ranges from 0° to 90°. The most sensible angle would be probably around 45° in order to do justice to the natural posture of the hand, however, scientific literature can't seem to agree on an optimal angle, nor a range. Probably because most trials in this field involve very few participants and rely on their subjective reports.

Pic: Gamma

Gamma

If you want to design your own keyboard with ergonomics in mind – play around with these angles and you will feel a clear relief of your hands.

Happy Prototyping!

I typed this little post stupidly on a UNIX60 with lubed Cherry MX vintage blacks with 150g springs. The vintage WYSE keycaps don't make it any better.

Philipp (36)

0x17 / ph0x17 / nerdbude / cchpod
LocationReutlingen, Germany
DescriptionPodcaster / Keebporn Magazine Dealer / Keyboardscientist
Occupation"the IT Guy"
Joined2018 (maybe?)
Fav. switchCherry Vintage Blacks, Koalas, my own Frankenswitches
Fav. keycap profileSA, XDA, DSA
Other hobbiesthere are other?
Software-stuff:I love NixOS with XMonad and coding in Vim (for me the best toolset ever)
Linkshttps://nerdbude.com, https://corteximplant.com/@0x17

Declarative keyboard design with Ergogen v4.0

Dénes Bán, the guy who originally created the Absolem keyboard, talks about how it turned into a more all-purpose ergo keyboard generator, and what new features it sports with the fresh release of v4.0.

Absolem's Afterlife

Some of the more dedicated ergo keyboard aficionados might recall my (now three year old?!) original blog post about building the first Absolem. I shared practically all of my research, thought process, progress, and blunders, all from a still very newcomer-ish perspective, to both encourage others to give this journey a go, and to leave plenty of breadcrumbs to hopefully make their attempts a bit easier. To my delight, a bunch of people seemed interested in my dedication to this "craft", and soon a cool little community started to form over on Discord.

What initially surprised me, but seems obvious in hindsight, though, was how far fewer folks were interested in the Absolem as-is, and how far more of them treated it as just another evolutionary step towards something even more custom. Many resonated with the more aggressive stagger and the thumbfan, but few would have left either unadjusted. Many commented on my necromancing of the pinky angle straight from the '90s, but they would have preferred to apply it to the ring finger also; or use a larger angle; or none at all. Many disliked the one-piece arrangement but appreciated the unique outline, and vice versa.

Pic: Absolem

Absolem

As the design was mostly generative and parametric already, I found that I could've readily accommodated most of these change requests if I'd wanted to. When I couldn't, though… That stung a bit, as it often uncovered a built-in assumption I hadn't been aware of. I started trying to "generalize away" these assumptions, and since I also wanted to implement PCB-related features anyway, I increasingly gravitated towards a divorce between the Absolem and its generator.

It turned out to be a very good decision, as throughout the next couple of months/years, I gradually realized that the biggest contribution I could offer to the community is not the Absolem itself (as in, yet another "one board to rule them all"), and not even the documentation of how I got to it, but rather its source code morphed into a toolkit to make it easier for people to design their own endgames. This Absolem-based generator generalization is what eventually became Ergogen.

Ergogen 101

I gave an introductory talk about Ergogen recently at a local Open Software Conference:

As there were going to be non-Hungarian talks from neighboring countries anyway, I specifically requested to be able to hold mine in English, so that I can share the video recording from it later on within the international community. I'm very glad I did, as at the conference proper, there were exactly 1, as in one person in the audience during my timeslot, and even he was a colleague staying out of solidarity.

Pic:

It does provide some consolation that the video seems to be doing a bit better. So if you're brand new to Ergogen, that talk is a good intro. But to make this post as self-contained as I can, let me try and condense the basics into a very quick "what even is this?" overview.

Ergogen is a domain specific language for keyboard declaration. It doesn't have its own syntax, it just piggybacks on JSON/YAML, so it's essentially a config file to tell the generator what to do. The main sections in the config file are points, outlines, cases, and PCBs.

Points help you declare the X/Y/rotation coordinates of the key positions without having to manually calculate everything. It does so by utilizing columns and rows with adjustable spread and padding to lay out a matrix, potentially with per-finger stagger, angles, or other various adjustments. Multiple such matrices are supported through the use of zones, which can be rotated and even automatically mirrored for the other hand to spare you as much work as possible.

Once points are in place, you can use them to generate outlines, meaning anything 2D you can then submit to a lasercutter's. Like taking a large starting rectangle and subtracting a 14 by 14 mm switch hole for each key position. Or merging beveled/rounded rectangles placed at key positions with a polygon center piece to arrive at the Absolem shape. Cases take these outlines even further by extruding them in the Z direction and providing 3D-printable case prototypes.

But the most useful part is probably PCBs. Because if we already have points, why couldn't we put actual KiCAD footprints there instead of simple rectangles? And why couldn't an outline serve as the edge cut of the PCB? Add some global, non-key-related, one-off footprints for MCUs and whatnot, and we have a template that just needs some traces before submitting to the manufacturer.

Hmm, Upgrades…

Pic:

This already sounds perfect, I hear you all say. Why thank you, but no. There has been (and will be still) a metric shitton of improvement opportunities. I've been brewing on a large batch of these codenamed v4.0 for quite some time now. If I'm breaking compatibility, might as well try and shoehorn in everything I can already see needs its compatibility broken.

Well, I'm happy to report that I finally got around to addressing (almost) everything I intended, and released v4.0 a few days ago. To the critics who preposterously claim that I only finished up because of the fast approaching deadline of this very post, let me just say: you're absolutely right. The winter break helped a lot too, though.

Anyhow, let's get into the meat of what happened this year:

Attribute consolidation

Ergogen has an unapologetic columns-first approach to laying out zones, so specifying key attributes could happen globally, at the zone level, at the column level, at the row level, or at individual key level, in order. But there were a few attributes (namely, stagger, spread, rotate, and origin) which I initially thought only made sense in a column context. Stagger makes the columns go up/down, spread moves them left/right, while rotate and origin determine the inter-column angles.

And while it's okay not needing lower-level overrides for these (as per-column setting is as precise as these get), what I didn't consider was that making them column-only values means they can't be uniformly overridden at a higher level either. The most common example of this was people trying to uniformly set the spread to something other than 19mm for easy choc spacing, which they had to do for each column.

Well, not anymore! stagger, spread, splay (née rotate, changed to differentiate from anchors), and origin are all joining the rest of the key-level attributes, and will all participate in the same 5-level inheritance hierarchy (global/zone/column/row/key) so that everything can be specified and overridden wherever.

Additionally, individual key adjustments now work cumulatively within a column, similarly to how columns are laid out cumulatively within a zone, so you can now do finger arcs and whatnot, if you so choose. Consistency!

Anchor improvements

Anchors are another, hopefully-more-convenient-than-manually-listing-coordinates kind of way to declare points, either within the points section for permanent, named ones, or during any subsequent outline/PCB layout as temporary helpers. Roughly speaking, anchors work by:

  1. Optionally referencing one or more already existing starting points with ref,
  2. Applying some initial rotation with orient,
  3. Moving the point in that relative direction with shift, and then
  4. Adding some extra rotation by rotate.

The main development for anchors in v4.0 is that now they're fully recursive, meaning that refs are no longer restricted to names of existing points, but can be sub-anchors themselves. This led to an interesting problem, though. See, when multiple points are referenced within a single anchor, the starting point became their average. But when the anchor itself was a list of multiple declarations, the elements chained in a kind of follow-the-dots way, each anchor in the list becoming the starting point for the next. So what happens if a now fully recursive ref attribute is a list? Is it a list of things to average, or is it a chain to follow?

The solution I chose was to separate out a new field called aggregate, which contains sub-keys parts, method, and potentially any other method-specific extra fields in the future. For now, it's only for the same averaging behavior we've had so far, so method=average by default, and parts is the array where each element is parsed as a separate anchor and then averaged. Possible extra methods like min, max, or, say, linear interpolation with a parametric coefficient are easily doable later.

Pic:

Also, I did even more trigonometry, so you have to do even less trigonometry. Meaning: recursivization applies to orient and rotate as well. If they're numbers, they work the same way they have, but if they're anything else, Ergogen now attempts to parse them as sub-anchors, and "turn towards them". Arctangents for the win.

What? Where?

The points section started with the implicit assumption that all of them would be treated equally down the line. Later, a simple tagging feature was patched in when I realized that being able to isolate certain subsets would be beneficial – like, say, laying out different switch footprints at different locations on a choc+mx combination board because choc and mx are not spaced equally.

But then this tagging (or shall we say, "filtering") got me thinking: why is there a keys outline type that puts rectangles at switch positions (potentially filtered by tags) when there's an additional rectangle type that just puts one somewhere. Also, why do we have to declare what kinds of footprints we'll want later for a point in the points section when subsets could be selected and footprint-ified within the PCB section (where it would more logically belong)? Some refactoring was in order.

Scrapping tags, I implemented a generic filtering system that can select points by defining conditions on any piece of metadata, through equality check or even regular expressions, combined with arbitrary and/or aggregation. This led to a where clause that can be A) such a filter to use a subset of existing points, or B) an anchor to declare a temporary helper. And once I had where, the thing I wanted to put at those positions (shapes in the case of outlines, and footprints in the case of PCBs) just had to change their names to what for thematic bliss.

This way, the points section can remain dry, outlines have been de-duplicated, and PCB footprints are defined where they should be. Win-win-win.

Outlining overhaul

Many people had negative experiences with gluing and binding. In Ergogen parlance, glue used to be a dynamically resizing connection element that could hold the two sides of a board together, while binding is like an extra, directional outgrowth around each key position to make sure that they can "reach their neighbors" and form a cohesive unit when combined.

As you can probably guess from the tense usage in the above explanation, glue is gone. It was just there to provide "resizeable polygons" that could shrink/grow with the size of the keys layout – but since it was confusing, rarely used, and it's already possible to substitute this functionality with preprocessor variables, it lost its purpose. If you never knew what it was: you're safe now. If you did: you're welcome.

Binding, on the other hand, will remain a key player. But good news: there's now an auto-bind feature that's gonna be able to satisfy 99% of common use-cases without user blundering incompetence inconvenience. It's within-zone only, checks the columns in declaration order, and applies automatic bind values where they're manually undefined. Up/down is based on how a point's y value relates to the column's min/max y bounds, and left/right is based on whether the point's y value is within the previous/next column's y bounds. This leads to a nice effect along the lines of "if there's something in that direction already, might as well reach out towards it and connect up".

Additionally, filleting, expanding and scaleing moved from the outline reference type to be generic to all shapes, meaning you can do these operations at any stage during the part combination process, even for rectangles or polygons. Plus a new generic adjust anchor field has been added so you can, well, adjust the positions of outline elements uniformly. For example, you can now lay out stuff below each key, not only at each key.

Footprint sideloading

As I've said before: the 400+ stars on GitHub are the reward for past me doing arguably good work, while the almost 200 forks are the punishment for present me still not having done footprint sideloading so that everyone can just use the official repo without needing homebrew mods.

Pic:

The new release brings the ability to specify folders as the main input instead of a single json/yaml file. If so, the folder must contain a config.yaml doing the actual heavy lifting, but the point is that it can also contain other stuff. For now, this "other stuff" is just ergogen-ized javascript footprint files in a footprints subfolder, but it can later extend to SVG/DXF files for outline imports and PCB silks, 3D models for case construction, etc.

What's more, the input can be a similarly structured ZIP archive as well, with the extension left as .zip or changed to .ekb for "Ergogen KeyBoard". I'm hoping this will dramatically reduce the need for people to fork the project, as they'll just be able to use custom footprints alongside standard config files in standalone bundles going forward. The WebUI doesn't yet have a way to accept packages, but the command line version is ready for action.

Footprint improvements

Until now, footprints made it the user's problem to know which of its parameters are nets, which are anchors, and which are just raw values. To make the situation easier, footprint parameters are now flattened under a single params key, leaving type checking and metadata handling to the footprint authors – of which there might be many more soon thanks to the above-mentioned sideloading!

Footprints also inspired the creation of "mirroring resistance". It's when an anchor refuses the special treatment of negated x axis movement and clockwise-to-counterclockwise rotation conversion on mirrored reference points. This special treatment is necessary so that mirroring the left hand side of the keyboard should still leave things at the right place on the right side – but for footprints that get printed on the same side of the PCB, it could cause problems users needed to manually play around. With the new resist attribute of anchors, this became parametric. Along with this, the internal footprint API now supports separate placement functions for internal/external and symmetric/asymmetric coordinate calculation.

Lastly, replacing the old redirection strings starting with an equal sign, footprint parameters can now fully access (and even combine) key-level metadata through template strings using familiar double curly brace syntax (like {field}}_{{nested.field}).

What's Next?

You think all this means we're done?

Pic:

Here's what I have planned for the future:

  • First and foremost, I'm instating a strict feature freeze until there's complete and up-to-date documentation. And complete not in just the sense that every feature is at least mentioned (which would be the bare minimum), but also in the sense that there are sufficient examples, pictures, guides, tutorials, whatever. It's both a blessing and a curse to finally have a project that others seem to be interested in…
  • Make the official switch to a better web interface. If anyone happens to be unaware, there's ergogen.xyz which I hacked together, and then there's ergogen.cache.works that's – shall we say, a bit more usable and elegant, contributed by the awesome ErgoGeneral Cache. As soon as it's ready to accept the v4.0 engine seamlessly, it will replace the current deployment as the default GUI.
  • Getting to 100% test coverage – which is not going to be as hard as it sounds, fortunately, as we're already at around 95%, I might add. But either way, it was always a goal to make something that's both worth testing and is tested properly, so here's my chance.
  • Then it's gonna be on to v5, which will be all about footprint API standardization, onnx-style incremental update-ability, and automatic kicad-to-ergogen footprint interpretation.
  • Then on to v6, which will be about fleshing out the current 3D support skeleton crew for fuller, more integrated case generation capabilities.

This is as far as I see now – which is just as well, as this is quite the ambitious vision already. For the moment, though, v4.0 is here! And even this post about v4.0 is here, as you can attest. I can rest for Christmas with a clean conscience.

Pic:

In conclusion: if creating your own keyboard sounds like something you'd be interested in, but going about it from scratch seems a bit daunting, give Ergogen a go and see where it leads you. And if you get stuck anywhere along the way, I'm sure the kind folks over at the Absolem Club discord will be happy to nudge you in the right direction.

Both the original Absolem and the since PCB-ified, low-profile gChoc version have developed some issue I haven't had the emotional strength to debug yet, so I've actually typed this up on a spare Absolem PCB that has 6 different kinds of Choc switches (as it was originally intended for a switch tester). Different weights of linears and tactiles – my right top row even clicks, for fuck's sake! This "temporary" situation has been going on for about half a year now. The shoemaker always wears the worst shoes, eh?

Dénes Bán (33)

mrzealot
LocationSzeged, Hungary
DescriptionErgo keyboard evangelist and tool creator
Occupationresearcher, developer
Joined2018
Nichemonoblock splits, generated boards
Fav. switchVariable weight Chocs
Fav. keycap profileMBK
Other hobbiesreading, blogging, procrastinating
Linkshttps://zealot.hu, https://ergogen.xyz, https://preprocessor.blog

One year of kbd.news

Tamas Dovenyi, the guy behind kbd.news, sums up one year of the blog touching on a wide range of topics from visitor stats to new features.

I try to regularly report on behind the scenes stuff in my weekly editorials so I can only hope that there will be some new and interesting info in today's incoherent write-up. But before that, a short disclaimer for newcomers:

What is kbd.news?

By kbd.news I'm referring to this blog focusing on DIY keyboards, mostly but not exclusively open-source ones. As much as obvious this may sound for seasoned readers, I also write this disclaimer for my Japanese audience who have their weekly Youtube show going by the same name.

Some of you oldtimers may remember how this digest started out: as a weekly post of useful links on r/mk. But in two years it somehow has turned into a public service and full-fledged blog attracting close to 100K visitors a month.

Pic:

Despite the continuous help of several community members, be it content, proofreading or tips, this is mostly a one-man-show, i.e. the site is developed and run by yours truly. I do the editing, coding and maintenance of all the databases (shops, coupons, meetups, etc.) as well, simply because I like to fiddle with code and databases.

Who are you?

My name is Tamas Dovenyi (sort of, for hardcore kbd.news fans: the proper name is Dövényi-Nagy Tamás), a relatively old guy compared to most of you (45 yo), working as a researcher at the local university in my hometown in Hungary (sorry for my despicable government). I don't really teach or do much science stuff nowadays, my work is more like development and coding. For the last ten years I've been developing various ecological models based on the data provided by a network of meteorological stations. Maintenance and programming of this network is part of my job (starting from the data loggers to the web interface) – and these skills helped me a lot on my journey since I learned about mechanical keyboards in 2018.

For example, genetic models, which we use for simulating all kinds of ecological phenomenons from soil water levels (irrigation) to accumulation of deadly toxins in your foodstuff, played a surprisingly important role in me ending up in the keyboard hobby: I used the same logic to optimize my layout. Yeah, I come from the layout design side of the hobby.

Pic: My never released layout optimizer from 2018

My never released layout optimizer from 2018

But I wrote about how I started in this hobby many times, check out the upcoming interview on keeb.io if you'd like to know more about me. Instead of that stuff, let's talk about this year's achievements and difficulties.

2022 in numbers

  • I've featured about 700 projects this year.
  • There are 461 shops in the vendor database, 111 of those are new (added during 2022).
  • 87 stores offer you discounts via the KBDNEWS discount code. I'm quite proud of this which started to gain momentum this year if I remember correctly. (New shops are listed in my weekly editorials so somebody can count the new ones.)
  • 56 meetups in the relatively new MK meetup database
  • About 2,600 newsletter subscribers. More on this later.
  • About 100K users in 30 days (the advent calendar plays a big role in this and temporarily distorts this metric, a more organic number would be 80K I guess).

Time management

Earlier this year I tried to count how many hours I put into this project. My estimation was 15-20 hours in an average week. Sometime during the summer I realized that this is unsustainable, so I decided to cut back on some features. Have you noticed it? No? As you can see, I miserably failed. :D Instead of less features there are actually more: meetup database, anniversary giveaway, advent calendar – just to name a few.

Then came another revelation. I'm not entirely sure how these numbers were calculated, but I would be ashamed if this wasn't the result of doing a community work:

Pic:

Ouch! And this is just the browsing, commenting and dissemination part – up until Nov 30, that was the cut-off day for this stat I guess. Incorporating the time spent with editing, posting, etc. would double this amount.

So if my original estimation of 15-20 hours would be equivalent to a part-time job, the Reddit recap figures suggest it's most like a fulltime job. And the anniversary giveaway and advent calendar ensured I spend more time with curating this blog than with my actual job.

How do I have so much free time?

  • I live next to my workplace. So my "commute" is a 10-minute walk.
  • My kids are becoming independent so I don't have to take them to school or drive them around the city. There are weeks when I don't even use my car.
  • I'm an introvert, otaku and couch potato so my nonexistent social life doesn't distract me from my duties. :D
  • I don't game at all, watch movies and listen to music only moderately and very consciously (I'm a newsaholic though). I'm not on social media either – except the kbd.news accounts.
  • I neglected my other hobbies.
  • I completely stopped doing freelance coding and web development for local companies – this is a painful part of this project which has to be resolved.

So that's how I squeeze out that many hours for kbd.news.

Motivation

When I made the interview with RominRonin, and at some point our roles seemed to be reversed, he asked me about my motivation of doing kbd.news. Danny asked me a similar question when doing the interview for the Keeb.io blog (coming soon I guess).

My answer was that the actual motivation changes all the time.

Back at the start I was grateful for every single upvote or positive comment on Reddit.

Pic: This is not a goal but simply the result of regular posting.

This is not a goal but simply the result of regular posting.

After four months or so, the first donation (thanks Diana!) helped me to overcome a low point. Then came a long period of double digit growth in visitor numbers which was fun to keep track of and kept me motivated for a long time.

And nowadays I feel a small adrenaline rush when I see kbd.news or myself referenced e.g. in your keyboard documentations, Seeed competition submissions, etc.

I’m humbled to have played a small part in your incredible keyboard projects!

2nd Anniversary Giveaway

This was a very, VERY bad decision. :D A year ago, after the first (relatively) big giveaway with 28 prizes, I decided I'll never run a similar giveaway again. The amount of correspondence it takes to ensure every winner gets his/her goodie is crazy. I wrote many hundreds of emails – and counting.

In 2021, after the raffle was done in November, I was still sorting things out in January next year.

So I was pretty sure I wouldn't be such a fool again – until a mini-meetup with davidkincses who told me the giveaway is a must, and I promised I'll think about it.

Next day I figured out this is the last chance if I want to ensure that sponsors get a decent amount of publicity in return of the prizes they offer, so I reached out to 400 vendors at about 10PM, and there were 58 prizes (offered by 15 vendors) included in the next newsletter sent out the following day (it was a really hard night setting up the giveaway page while putting together Issue #101. :D).

And eventually there were 50 sponsors with 109 prizes. (I merged some small ones in the end.)

That said, after the raffle on Nov 20, I contacted the last sponsor with the list of winners on Dec 16. Almost a month later.

I have a LOT of ideas how to improve the system for next year and to reduce this time frame to a couple of days…

Advent Calendar 2022

I've been a big fan of the MK calendars of the Japanese community. Many articles published in such calendars became reference materials for years to come, e.g. I used them for the exotic matrices write-ups.

When Cody Tu, designer of the Switch Magazine reached out to me in June offering he would turn one of the kbd issues into a pdf-zine, I thought of these advent calendars immediately. I liked his original idea (and readers have asked for a pdf version regularly) but the weekly turnaround of issues and the very heterogeneous length, structure and quality of posts made it quite impossible to produce an e-zine based on a regular issue. Instead, I suggested a special issue and started to organize it.

In the coming months, I managed to put together an epic line-up. Originally, I reached out to more people, but I've never heard back from some potential contributors, was refused by one single user, and was let down or ghosted by some confirmed authors in the last few weeks… But that was expected. That's how these projects work I guess. ;)

Unfortunately, I haven't heard back from two Ukrainian community members either, I hope they are well.

In hindsight, this was a thrilling new challenge, sometimes I felt quite uneasy because of the pressure, responsibility and race against time. All in all, I deem this first calendar and special issue a success, and may do it again next year.

Many thanks to all the contributors, and especially Sadek Baroudi for proofreading and editing many posts, and Cody who is working on the pdf-version now, but it's a huge task, and may take a few months.

Visitor stats

The period of the initial double digit monthly growth is over.

Pic: Weekly visitors from the start – 2020 Nov.

Weekly visitors from the start – 2020 Nov.

The number of visitors has stagnated since this summer, only increasing in December, mostly due to the advent calendar and its shameless promotion on Reddit and Twitter.

Pic: Weekly visitors this year

Weekly visitors this year

(These are 10-20% samples of the whole picture, explanation below.)

I keep track of some stats on Googe Analytics and Cloudflare. Unfortunately, they are not compatible or comparable, partly due to my fault.

The more detailed GA stats are based on cookies, and adblockers prevent its tracker from working, so these datasets are mere samples.

Cloudflare on the other hand uses DNS data, so it registers all the visits (but not pageloads) – the number of unique visitors is pretty much the only usable metrics it provides.

Comparing the two sources, my estimation is that GA registers only 10-20% of the pageloads, i.e. 80-90% of you use adblockers. There are no ads on kbd.news which could be blocked so you could even whitelist the blog. ;)

Newsletter

About 2,600 subscribers receive my free weekly newsletters.

This is absolute cognitive dissonance: the more subscribers I have, the more I have to pay for this service. Still, it's a good feeling when I get notified of a new subscriber.

On the other hand, seeing people unsubscribe is still a bad feeling, despite knowing full well that I should be grateful instead, because the fee I have to pay may decrease with every unsubscriber.

I started with using Mailchimp where you are kicked out of the free plan after reaching 2,000 subscribers. That was in April this year I guess. I tried another service: Buttondown – which is cheaper, more human (we exchanged many emails with the founder), uses markdown, so is scriptable! But its free plan allows only 1,000 subscribers.

Combined it's 3,000, so yes, I'm sending out two newsletters (the same content) these days because I'm frugal. :D

As things stand now, I deleted a bunch of inactive users from Mailchimp, I guess about 100 people, so I'm temporary below the free threshold there.

And I have about 700 subscribers at Buttondown so that's free as well. At least for now.

This will change next year.

Opening rate is about 50% these days, which is actually very good. Mailchimp's industry average of newsletters of this size is below 40% (and my 19% click rate is way better than the 5-7% industry average as well).

Pic: Stats of Issue #105

Stats of Issue #105

Still, it's strange to pay per subscriber when half of them never open these mails.

I'll try to delete a massive number of passive subscribers before I start to pay again, so make sure you open some mails or click some links in the newsletters if you want to stay subscribed.

Doubts

When it comes to posting about your gorgeous keyboards, I'm in a state of constant self-doubt: impostor syndrome, sustainability (content wise and also financially) and time management wise as well.

Impostor syndrome: I blog about stuff which I only partially understand. :D What do I mean by that? While I've built my own keyboards from scratch, I don't try every single switch, keycap profile, controller, etc. Some of you erroneously think about me like an omniscient sage (at least that's what some of your questions reflect :D) which I'm definitely not. I don't order the newest switches, would have to completely relearn KiCad at this point, haven't used QMK for more than a year either. What's even more outrageous: I haven't spent a single penny on (contemporary) keyboards this year. I enjoy the research and learning part of the hobby, the content aggregation, but I don't feel I have to try everything and especially to hoard switches, keycaps or keyboards – except of course vintage ones. ;)

My second doubt is if I will able to keep posting with this frequency. Will there be new keyboard projects every week at all? I mean, enough to fill a full issue or newsletter. And really new and newsworthy ones. Aren't we repeating ourselves and posting the same ideas all the time? For my biggest surprise it seems there is enough valuable content most of the time. New solutions, technologies emerge and stir things up constantly: RP2040, XIAO footprint, Cirque touchpad, X-switch, new keycap profiles – just to name a few innovations and trends from this year. However, if it wasn't the advent calendar, I've had a hard time with the December issues.

Finally, my third source of doubt: the justification of time and energy I put into this project. You can do this for some time for sheer enthusiasm. But then you really have to look for new motivation and reasoning to spend endless hours with your hobby instead of your family – or another hobby. :D

Ads & business model

Speaking of costs, as already mentioned, I gave up my freelance part-time webdev side hustle to be able to cope with the blog. That's a huge loss financially, and I have to compensate that somehow.

I hate ads, just like pop-ups telling me I should whitelist a site to be able to read an article. So I'm not going to scatter the site with ads as long as I see any other way of making some bucks – despite being regularly approached by ad networks (actually, I was really surprised the first time I was contacted).

Instead, the "business model" is based on:

  • Donations
  • and recently affiliate commissions

It makes sense to divide donations into two parts: money coming from readers and businesses. The logic behind a blog founded on donations coming from readers would be editorial freedom. Taking a look at the list of donors (thanks everyone!), you can see the top supporters are shops which may compromise the editorial freedom on the long run. Affiliate partnerships take the content in a different direction as well.

The only way to ensure I can post about keyboard stuff that I find valuable is reader donations.

So if you can afford to support this project, here is the link: https://kbd.news/donate

Vintage keyboards

Another topic I'd like to mention shortly: vintage keyboards. While I'm not a hoarder of contemporary keyboard stuff, I definitely hoard old and dirty keyboards which I don't even use. :D You may have seen my reddit cake day post which turned out to be my most upvoted post this year:

Pic:

And here is a larger photo:

Pic: My collection as of August, 2022

My collection as of August, 2022

How to get into kbd.news?

While I'm continuously browsing various subreddits and other resources, I may miss your keyboard, so feel free to reach out to me any time.

So you finished your project and think it's newsworthy? Awesome. I prefer open-source keyboards or projects which are well-documented. Most of the time I can't come up with a post based on a single photo you posted on Twitter.

Feel free to DM me on Twitter (@KbdNews), ping me in a comment or in your tweet. Same with Reddit (u/dovenyi). Another way to raise my attention is to contact me directly.

I don't really hang around on Discord but I check it regularly so if that's your platform of choice, you can find me there too: my handle is dovenyi#4481.

Future

I really have to update and completely revamp the split database. It gets a lot of traffic and it's a real shame it hasn't been updated for a year now.

I'd love to be able to release my logical layout design tools, but it still has many hardcoded config parameters. This has to be fixed so people without any programming skills can use it by clicking around on a nice interface.

And I'll try to keep up the basic service: bringing keyboard news to you.

---

Thanks everyone, and have a nice holiday season! I'll be temporarily AFK, I have run out of articles for the advent calendar series anyway. Will try to keep an eye on keyboard content but will also spend the last few days of the year in the mountains without internet so expect some radio silence.

Pic: Azimuth (bottom) and Storm46 (top).

Azimuth (bottom) and Storm46 (top).

Typed on my handwired Azimuth, the six-encoder version of the Storm46. MT3 WOB, Momoka frogs with CFX caps on the low-pro thumb clusters at the moment.

Tamas Dovenyi (45)

dovenyi
LocationDebrecen, Hungary
DescriptionKeyboard content aggregator
Occupationresearcher, developer
Joined2018
Nichemonoblock splits, vintage keyboards
Fav. switchMomoka Frogs, Kailh This-Is-Plastic
Fav. keycap profileMT3, MDA
Other hobbiesguitars, drums, learning Japanese
Linkshttps://kbd.news, https://golem.hu, https://twitter.com/KbdNews

Logical Keyboard Layout Design

Apsu shares her experience going from curious about alternate keyboard layouts to accidentally being a prolific layout designer.

Hi, I'm Apsu, one of the many denizens of the nerdier side of the net. By day, I am a Principal Software Engineer for Autodesk. By night I have spent time into everything from designing and building my own 3D printers, becoming a top player in several PvP shooters, and more recently churning out keyboard layouts.

Background

It's been a wild ride, that's for sure. I started out like many people do, just looking for something a bit more ergonomic. I started programming when I was 9, over 30 years ago now, and I have been using computers as a hobby as well as for my career ever since.

I had heard of Dvorak and Colemak in years past, but other than a brief stint with Dvorak, I never really spent much time learning them. After all, the big selling point in those days was speed and efficiency. But my Qwerty speed was 170+, and I was young and invincible.

That all changed a few years ago when my hands started getting tired sooner, and eventually hurting, without a particularly strenuous day of typing. Everything checked out, I was fine healthwise, which meant it was the dreaded RSI. The orthopedic surgeon told me "either figure out something less irritating for your hands or you may not be able to type anymore."

And with that… I was on my way.

First Steps

Searching around coughed up the usual suspects: Dvorak, Colemak, and this new one Workman. I read the website blurbs, watched a bunch of videos, and ended up trying Workman for a bit. It was alright, but like usual, I wanted to know more. I wanted to understand how these layouts were built, and why.

I found my way to the Colemak discord, where I met some other folks who had made modifications to the layout, and we discussed Workman's pros and cons, and that eventually led me to the AKL discord – a dedicated place to discuss and build Alternate Keyboard Layouts.

I very quickly tumbled down this rabbit hole as I discovered – then contributed to – tools for analyzing and generating layouts, tweaking and adjusting pieces, twisting them in new lights. I couldn't get enough, and was able to learn a lot about what makes a layout tick, and helpful ways to think about optimization.

Layout Concepts

First, it would be helpful to define some terminology:

  • SFB – Same Finger Bigram: two keys pressed with the same finger sequentially
  • DFB – Disjoint (Same) Finger Bigram: two keys pressed with the same finger with 1 or more other keys in between
  • LSB – Lateral Stretch Bigram: two keys pressed sequentially with different fingers but where one or both has to stretch off its home column position

There are many more concepts such as Rolls and Onehands and Alternates and Scissors and so on, but for the moment the major bigram types are the most important starting points.

Another basic concept that's important to grasp is how fingers are generally assigned to keys. We can think of this like a grid, and using a handy tool I can identify which keys each finger owns by color, like so:

Pic:

This separates keys into rows and columns; generally, each finger is responsible for one column, which contains three rows, except the index which is responsible for two columns.

Thinking About Optimization

Firstly and most important of all, the SFB. This is the worst sequence, as it is both the slowest and also most stressful typing motion to make, where the same finger has to press, release, move, and press again. Only slightly better is when it's the exact same key being pressed twice, since repositioning the finger isn't required.

Next I like to think about finger usage, which is the sum of all the letter frequencies a given finger is responsible for. Given that the speed, strength, and often independence of some fingers is less than others (pinky and ring being particularly outliers), having a very high-use column on the pinky would be a bad optimization, for example. Putting higher use letters on the inner fingers will also tend to increase the rate of rolls.

A companion to finger usage are what I call finger patterns. The gist here is that certain combinations of finger positions are much more uncomfortable than others, even when SFBs and usage are solved for. A good example would be Qwerty JIL vs UKO; the former has the index/ring on home row, and middle on top row, while the latter inverts them. The former is much more comfortable because the middle finger is the longest finger for most people. These same kinds of patterns can be found in all finger and row combinations.

Lastly, in most of the layouts I've created, I have also tried to minimize LSBs. The most common LSBs are reaching into the 'middle' columns with the index fingers; TGB and YHN on Qwerty. You can do this in a variety of ways, but the low hanging fruit is to simply put as many low-frequency letters on those keys as you can to start. Punctuation can also be a good choice in some cases. Many people (myself included) find that this helps reduce strain in the hands in much the same way as using an ergonomic keyboard does, by reducing awkward motions or distances a bit more.

Rolling vs Alternation

This is a very old debate at this point, as to whether emphasizing Rolls vs Alternation is "better" in some facet or another. All we can say for sure is that Rolls definitely feel easy for learning a new layout and gaining speed on it quickly, as well as anecdotes of some of the fastest typists setting their speed records using high-Roll layouts (such as Colemak). So if you wish to optimize a layout with Rolls in mind, you will want to pay special attention to certain specific consonant locations, as well as most likely cluster all the vowels together on one hand.

More details can be found here in a document the AKL community has put together, but the gist of the idea is that some consonants appear in bigrams almost always preceding a vowel (such as H), and others are almost always preceded by a vowel (such as N). This is why a lot of layouts have most of the vowels on one side and also put N there to enhance the rolls; putting it on the index home spot helps ensure all of those rolls will be from the outer fingers to the index finger, which is considered to be the most comfortable roll direction to do without practice – same idea as drumming your fingers on a table (try slowing down the drumming and you'll see we naturally do it pinky-ring-middle-index).

Parting Thoughts

Regardless of what tools you use for generation or analysis, and which metrics you choose to represent as most helpful, the number one most important tip I can give you to layout design is to try what you make. There's quite a few designers who don't put in much time on the layouts they create, and as a result a bunch of ugly warts can lurk in their creations until some unsuspecting person tries to learn it someday. Usually these end up being SFBs that weren't spotted, or finger patterns that just feel super awkward, or LSBs that strain over time, that sort of thing.

You shouldn't be afraid to mess around and try things out; you won't forget the layout(s) you already know, but it may be a little awkward for a day or two while you are memorizing the new letter positions and finger patterns, but if you spent a few minutes of focused practice on your existing layout it would come right back to you, so try something new and interesting you come up with and see how it works.

Good luck!

Typed on a Mindhatch Luna 30-key split, Boardsource Purpz Kailh choc switches, MBK Glow keycaps, Aptmak layout.

Pic:

Apsu

Linkhttps://github.com/Apsu

Projects

Mask keyboard

The mask-2.0.0 by madbadmax is a 4x6 split keyboard with Cherry MX-ULP switches.

Fellow redditor madbadmax released his first split keyboard utilizing the rather rare Cherry MX ULP keyswitches announced in early 2021.

I bought the switches from Reichelt and contacted Cherry about some resources for footprint and keycap design – which they provided me (I am not sure though, if I am allowed to share those) – madbadmax.

Pic:

The keyboard is about 6.7mm thick. The overall height of the surface mounted CHERRY MX6C-K3NB "Ultra Low Profile RGB" switches is 3.5mm:

  • clicky
  • 65 cN operating force
  • 0.8 mm pre-travel
  • 1.8 mm total travel

Soldering

For soldering, the author suggests using a stencil, solder paste and oven.

I wouldn't try it any other way, since the switch contacts themselves are beneath the switch so that hand-soldering is not really feasible. But it might also work with paste and a hot air gun – since I had soldering errors on 2 switches I heated those with about 310°C from the bottom for a while and it worked like a charm!

Sound and feel

I still have to test it a bit more. The keycaps are quite slippery and maybe I'll have to do another run on those (maybe with something curved). But for such low profile switches those feel quite good.

Resources


Luna keyboard

Luna is a 30-key open-source wireless split by Mindhatch – with splay.

Looking up the 30-key split Luna by Mindhatch, mentioned in Apsu's article written for the advent calendar, I found some other designs as well.

The Luna is not a new model. Released in early 2022 along with the Artemis, Minako and La Phantoma – ergo splits with splay and 30-34 keys – it must have flown under my radar since I only learned about it from Apsu (the one in the photo above is her Luna).

Specs

  • 30 keys
  • choc-spaced
  • soldered or hotswap
  • bluetooth-only
  • 1.5u thumb keys
  • column staggered
  • splayed ring and pinky columns (5° and 12.5°, respectively)
  • MCU footprint fits spring-loaded pin headers

Resources


Little Foot keyboard

Little Foot – a 45% ortholinear keyboard designed by The-Royal and built by wayduh.

The Little Foot is a cute ortho keyboard designed and open sourced by Garret G. aka The-Royal of the one-time Kingly Keys. Released in August 2020, this one predates kbd.news.

Sadly, the shop isn't available anymore, the domain is gone, but wayduh fortunately built and shared one (in the photo above), bringing this design to my attention. And there are many other open-source projects in the repo, so check it out!

A mighty small, 45% ortholinear keyboard. The Little_Foot is a project of mine that I made as a personal challenge. In both some tray-mounting design, as well as some more complex firmware/code construction. Trying to push the limit of how small I could realistically go, I wanted to dive more into chording, combos, layer tapping and LED configuration, all without making something overly complicated. Overall, I'm pretty happy with the outcome. :) – Garret.

Pic: Little Foot layouts

Little Foot layouts

Resources


The Slant

The Slant – a wireless split keyboard shared by darsor.

Dana Sorensen aka darsor shared the files of the Slant, a wireless split keyboard:

I liked the idea of the Corne or Sweep, but I didn't like the microcontroller hanging on the side. So I gave my design a small 7.5 degree tent (Slant), making enough room for a nice!nano and a larger 350 mAh battery to go underneath the PCB.

The case is custom designed and printed. The author used Onshape to CAD the entire design.

PCB and key placement were aided by Ergogen, which simplified things quite a bit.

Resources


Tips & Tricks

No-glue 3D case

A two-part 3D printed case by hello_smbj without gluing/welding.

A 3D printed case for a handwired 50% angled keyboard – shared by smbj.

The gist is this joint:

Pic:

Video demo with sound test:

Resources


Inspiration

Flux keyboard

The Flux keyboard sports magnetic switches above a Full HD display.

I forgot to feature the Flux last week because I wrote to the team and waited for their feedback – in vain.

So the Flux keyboard's main feature is an integrated Full HD display which makes it possible to switch between "any language, any wallpaper or any software hotkey set you can imagine".

Hi, Seb here from the team at Flux. We are working on a keyboard with an integrated Full HD IPS display, so you will never have to wait for a keycap set ever again and switch to any language or software hotkeys.

The keys are set in a removable frame which makes possible to instantly switch between tactile or linear keys, and makes it easier to clean compared to a conventional keyboard.

The display is visible through the set of Maglev switches, a type of analog Hall effect switch recently put on the map by riskable's work, also reviewed and used by Chyrosran22.

Many commenters expressed their skepticism about Hall effect switches and sensors working with a display and glass panel sandwiched between them, so riskable came out with a demonstration that this is possible:

The keys of the Flux are magnetically suspended, and – according to Seb – the whole plate/switch/cap combo is 97% transparent. Each low-friction switch has 4mm of travel and will be available in linear and tactile variants. They also feature software adjustable actuation point in 0.1mm increments, as well as "rapid trigger functionality".

As seen in the demo, switching between linear and tactile switches can be performed almost instantly by changing out the transparent key frame. This also means that cleaning the keyboard is very easy – as demonstrated by the person in the video pouring sugar on it.

In addition, the top section of the keyboard allows for up to four add-on modules to be swapped in for more options and customization.

For more info and images visit fluxkeyboard.com.


Finalmouse Centerpiece

Another concept with a display below transparent keys: Centerpiece by Finalmouse.

Two similar concepts in a week? After the Flux keyboard, here is another display-focused project: the Finalmouse Centerpiece.

I really don't know why anybody would buy such products, I personally hate pretty much every "innovative" feature of the Centerpiece (see below), but I guess a lot of resources went into not just R&D but also market research so obviously people will love this.

No maglev switches this time (at least that was my first thought), but no shortage of buzzwords: LDGS (Laminated DisplayCircuit Glass Stack), Unreal Engine 5, custom "autolubed" linear mechanical switch codeveloped by Gateron – inspired by Gateron Black Inks, but "re-tuned for faster actuation and slightly different travel parameters".

With two patents and years of R&D the Centerpiece is pure magic to behold.

Aaand, da bum tss: Hall effect analog switches will be also available. ;)

  • CNC engraved and anodized aluminum case
  • "At 8kHz with a non-matrix scanning architecture gamers can set their actuation and release point distance at industry best latency speeds."
  • Self-powered with its own GPU+CPU, Centerpiece uses no resources from the computer.
  • Skin marketplace.. facepalm. Artists can submit and monetize their skins.
  • $349
  • Available early 2023.

I wanted to feature this for historical reasons.


That was Issue #108. Thanks for stopping by.

This issue was made possible by the donations of:
splitkb.com, MoErgo Glove80, PCBWay, Aiksplace, @keebio, u/chad3814, @kaleid1990, MKUltra, Upgrade Keyboards, Sean Grady, cdc, ghsear.ch, u/motfalcon, KEEBD, Bob Cotton, Jacob Mikesell, kiyejoco, FFKeebs, Richard Sutherland, Joel Simpson, @therick0996, littlemer-the-second, Lev Popov, Christian Mladenov, Christian Lo, Keebstuff, Spencer Blackwood, Yuan Liu, Daniel Nikolov, Skyler Thuss, u/eighty58five, Caleb Rand, Davidjohn Gerena, Fabian Suceveanu, Arto Olli, anonymous, Mats Faugli, Hating TheFruit

Your support is crucial to help this project to survive.

Discussion over at r/mk!
×
top