this post was submitted on 25 Sep 2023
29 points (100.0% liked)

ErgoMechKeyboards

5872 readers
3 users here now

Ergonomic, split and other weird keyboards

Rules

Keep it ergo

Posts must be of/about keyboards that have a clear delineation between the left and right halves of the keyboard, column stagger, or both. This includes one-handed (one half doesn't exist, what clearer delineation is that!?)

i.e. no regular non-split¹ row-stagger and no non-split¹ ortholinear²

¹ split meaning a separation of the halves, whether fixed in place or entirely separate, both are fine.
² ortholinear meaning keys layed out in a grid

No Spam

No excessive posting/"shilling" for commercial purposes. Vendors are permitted to promote their products/services but keep it to a minimum and use the [vendor] flair. Posts that appear to be marketing without being transparent about it will be removed.

No Buy/Sell/Trade

This subreddit is not a marketplace, please post on r/mechmarket or other relevant marketplace.

Some useful links

founded 1 year ago
MODERATORS
 

Hey all! I'm excited to share and announce my open-source keyboard firmware project. FAK exclusively supports very cheap CH55x chips. You can get a CH552 for half a dollar or maybe even cheaper. No need for external flash, LDOs, or oscillators. The chip's basically a whole MCU on its own.

So far it has layers, hold-tap, and tap-dance. Split support, combos, macros, etc. and more to come. It's based on Nickel, a purely (almost) functional programming language, so FP folk can go crazy on their config and parameterize everything or whatever. But hey, you only need that kind of power if you want it. For beginners, you can start simple and it looks almost like JSON.

Home-row mods are a first-class citizen with very customizable hold-tap behaviors. There's global quick tap from ZMK. There's hold-tap flavors too, but settable per key per behavior. There's eager decision, quick tap, and more.

I've also been experimenting with other matrix scanning methods like the Cheapino's (forgot the name) and round-robin/charlieplexing. This means less pins required, so you can get away with a CH552T (instead of a CH558L with more pins, twice the price) and keep your build very cheap.

Please check it out! If you have CH552 chips around, I'd appreciate your feedback. I've yet to write better docs and a website, but feel free to DM me and I'd be happy to help you get it running!

top 13 comments
sorted by: hot top controversial new old
[–] pca006132 3 points 1 year ago (1 children)

Yeah WCH make some really cheap chips. Apart from ch552, there is also a family of BLE chips such as ch571f that is much more efficient than ESP32 (from online sources) and is very cheap. You can get the chip for half a dollar (https://www.aliexpress.com/item/1005005974200193.html) and a development board for less than 3 dollars (https://www.aliexpress.com/item/1005005974200193.html). When I bought it on taobao, it is actually around 1.3 dollars.

The downside is that software support does not exist (yet), so will have to try and make a firmware for it. I haven't yet found time as I was working on manifold things.

[–] semickolon 2 points 1 year ago (1 children)

Cool! Though CH58/9x series might be better for efficiency because it's Bluetooth 5. CH57x is BT 4.

And QMK has already been ported to CH582 but personally haven't tried it yet. https://github.com/O-H-M2/qmk_port_ch582

[–] pca006132 2 points 1 year ago

Nice, I can buy ch582f dev board for 2 dollars. Still very cheap!

[–] apfel 3 points 1 year ago (1 children)

This is so cool! Kinda wanna make a xiao drop-in replacement board for these chips now :D

[–] semickolon 3 points 1 year ago (2 children)

Go for it! I have a schematic in mind but too lazy to learn KiCad. Would love to help out :)

[–] apfel 5 points 1 year ago* (last edited 1 year ago) (1 children)

so, ummm...

(obviously not final, just a quick mock-up)

[–] semickolon 3 points 1 year ago

Looking good! DM'd you

[–] apfel 3 points 1 year ago

Fantastic, I'll take you up on that offer! :)

[–] semickolon 3 points 1 year ago* (last edited 1 year ago)

Also, there's a commercially available CH552T dev board for about a dollar. I actually use this for development: https://www.aliexpress.com/item/1005004141926425.html

Even cheaper if you buy just the chip. Just add a USB connector and two capacitors then that's it. No crystal, flash, etc. needed. A CH552G goes for about 30 cents: https://www.aliexpress.com/item/1005003402478164.html

[–] shaysub 2 points 1 year ago (1 children)

This is so cool! Couldn't find it on the GitHub page, but does this firmware also support wireless or maybe can be extended for that?

[–] semickolon 1 points 1 year ago* (last edited 1 year ago) (1 children)

Thanks! No CH55x chip supports Bluetooth so it's USB only. I thought of possibly adding a Bluetooth module, but that's almost always a SoC and you're much better off using that as the main (and only) microcontroller instead.

There's this: https://forum.arduino.cc/t/jdy-23-bluetooth-module/672581 Could work as a "dumb" BT module but even so, it can't do HID over BT directly so have to translate that to HID with another chip. Not so power efficient too.

Basically, I've been through this path and it always led me to: just use one MCU with BT. Fortunately, CH582 is a cheap one. RISC-V with BLE. And it's been recently ported to QMK as well: https://github.com/O-H-M2/qmk_port_ch582

[–] shaysub 1 points 1 year ago (1 children)

Got it, I was mostly curious if fak would/could be extended to the CH582.

I assumed that QMK would be wired, but looking through the repo, seems like it does support wireless as well! https://github.com/O-H-M2/qmk_port_ch582

[–] semickolon 3 points 1 year ago

Hmm actually, FAK could be extended to CH582. It would have to be a complete rewrite on the hardware code, but I could keep the Nickel config mostly compatible between CH55x and CH58x.

You just gave me an idea. Sounds like I can make a FAK spec and then there'd be compliant hardware-specific implementation for different chips 🤯

Yep, and I think they're even working on dongle mode. They call it "triple 2.4G" on the readme.