Another ergo keyboard design for the reform

I’ve been working on an ergonomic, 60 key keyboard layout that will work on a desktop or in the reform laptop. I thought I’d post here where others can join in.

My goal is to be more ergonomic than any previous laptop keyboard (low bar), but to be “normal” enough that it would be easy for most people to adopt. So more MS natural, less butterstick.
KIcad render

Desktop: Openscad & kicad are at GitHub - milestogo/lorize_kb . I’m currently testing the desktop PCB & may tighten the vertical spacing.

Reform: I used switch locations from scad to remix the reform keyboard PCB. I kept the same schematic so that stock firmware would work. See the Ergo1 branch above the KiCad link above. I haven’t yet cut a trial switchplate, debugged the PCB or had one made. I’m pretty sure some the top outside switches will rub the bezel.

I’d hoped to make a hand solder/all big parts version of the reform kb, but I wasn’t able to find room on the PCB for a STM32 blackpill or similar processor that breaks out USB. It may be possible to fit a small MCU with crenelated pads on the bottom, but the spacing will be tight. There’s probably enough room if we make a new bezel & move the OLED to a bottom corner, but I haven’t looked into that.

That leaves manual assembly of a small part surface mount board, or paying setup fees for assembly. I want to be certain I like the ergonomics before doing either, so it may be months. The source is there if others think this is interesting & want to move faster.


Count me interested. Keep us updated if you can, as I’m sure the development process will be interesting!!!

Extremely cool! Looking forward to your progress on this.

This looks fantastic!

I had originally planned to make something like this based on my Atreus design, but I got tripped up by the requirement to drive the OLED and other things the stock Reform keyboard does beyond just being a keyboard. I was trying to take an existing PCB design and adapt it to the Reform instead of taking the Reform’s PCB and adapting it to a better layout.

What’s the next steps here? Is there anything you’d like help with? Are you planning on placing a production order for extra PCBs to sell or trying to gauge interest?

The staggered keyboard has been one of the things about the Reform that bugs me the most, so the opportunity to fix that problem is very exciting to me!

1 Like

Thanks for the interest & offers of help.

I’ve done some work on the ergonomics. I reduced the vertical switch spacing and I’m trying two tightly spaced 1U thumb keys instead of a 2U and a 1U. The 2U was fine for tapping but wasn’t comfortable to hold (I didn’t expect that). image of current design

The next step is to lay out the PCB again, and I’d welcome thoughts on how to prototype during the chip shortage. The TQFP atmega32u4 is not available this month. The VQFN is in stock, but I often fail doing VQFN by myself. It isn’t economic to do commercial assembly for a single prototype, so I’ve gone back to the idea of using an elite-C microcontroller. With the new switch spacing there is just enough room underneath the LCD. The Elite-C’s USB port won’t be accessible, so I may need to make a little molex-> USB adapter cable.

How does everybody else sync between making laser cut designs in free or openscad & pcbs in kicad?
I now have an ugly hack where I have OpenScad echo switch locations to a CSV file, and a python script for placing each part in kicad. This doesn’t feel like the right way.

I’m still teaching myself and don’t want to start a keyboard business. The people at MNT did a lot of testing and set a high bar that I can’t match :slight_smile: I’ll keep showing my progress, and it’s open source if others want to fork and improve.

I like the idea of using the Elite-C as a daughterboard; it makes the assembly a lot more approachable. It looks like there’s a new v4 of the Elite-C which is even more low-profile.

Where do you have the Elite-C in the current design? If it were me I’d just toss out keys mercilessly to make room (who needs a number row!) but I get that not everyone is accustomed to the fn layer as I am.