HNHacker News
TopNewBestAskShowJobs

ebastler

57 karma · joined August 18, 2022

submissionscomments
ebastler··on Show HN: I spent 2 years designing a mechanical Magic Keyboard
Optical keyboards are still around (although rare) and usually use some variation of Cherry MC style switches without contact pins. Newer tech also consists of magnetic designs (hall effect, tunnelmagnetoresistance or inductive). These all allow for analog input (variable user-settable actuation points for example) which makes them popular with the gaming crowd. I'm developing such a PCB for a different project at the moment.

As far as I'm aware none of these are waterproof, however, as they all have exposed PCBs inside the case. I guess one could just conformally coat the circuit board, but I haven't seen that done yet for a commercial keyboard.

ebastler··on Show HN: I spent 2 years designing a mechanical Magic Keyboard
The board runs ZMK, which handles layers quite similarly to QMK/VIA. Whether you can bind dedicated layers to output profiles for automated switching in ZMK I do not know, but toggling between layers manually via some shortcut when you switch between devices works for sure.

There is a video by one of the ZMK team members where he tested ZMK latency (wired and wireless) against other options on the market - it is, however, fairly dated: https://www.youtube.com/watch?v=jWL4nU-vtWs

The USB port allows for wired operation while charging. The fact that some products refuse to do this still bothers me (cough MX Master 3).

ebastler··on I designed an open source ergonomic wireless keyboard over the course of 2 years
Thanks! This was by far my most advanced PCB design so far - lots of reading and research involved. Pretty proud it worked at first try.
ebastler··on I designed an open source ergonomic wireless keyboard over the course of 2 years
There's quite a lot of choice for split keyboards out there - one of my favorites being the Corneish Zen by lowprokb - just two small boards, wireless interconnect. I made it a unibody design on purpose - better battery life, and only one device I have to charge and remember bringing along with me. And the fact that there is a pretty limited amount of existing designs in that style.

ZMK firmware can as of now sadly not do wired connections between two halves, so it's either wired connection and wired connection to PC (QMK firmware) or full wireless like the Zen, with ZMK.

ebastler··on I designed an open source ergonomic wireless keyboard over the course of 2 years
You probably know how this kind of projects usually starts. "Hey, XY would be nice, I bet it'll be a quick and easy project". Then feature creep happens, then you're not satisfied with your work and start from scratch, and 2 years later you're like "why".

This was one of those projects. It is a slim 40%ish column staggered wireless keyboard, using a nRF52840 chip, and Kailh Choc switches. It is as slim as possible with mechanical switches, features months of battery life, and is entirely open source - electronics, case, software. For now it will only have a 3D printed case, but CNC machined aluminum is planned too.

I am typing this on the first prototype while waiting for the updated 3D-prints to arrive, but felt like sharing my work already - hope you will enjoy it!

ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
Some wifi/ble modules come pre-certified. The holyiot 18010 (nRF52840) on the prototype comes with FCC/RoHS certs from the factory, so at least the Bluetooth part is "guaranteed" to be conform, and everything else is so simple, it won't cause any relevant EMI either way (esp. not inside a metal shell).
ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
I think that's mostly a "I tested it with these OS so I can guarantee it works" thing - ZMK should work with pretty much anything out there as long as it can do HID over Bluetooth.
ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
2. This one is basically limited by what a 3 position slider (usb/bt1/bt2) can do, the firmware could do up to 5. We could offer an alternative firmware where the slider can do bt1/bt2/bt3, and USB or Bluetooth is automatically determined by whether it's plugged in or not if that helps.

5. That space is needed for the battery, since the board is too slim to place it elsewhere.

ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
Only thing I can imagine - super hard to find keycaps.
ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
Sure thing. We'll release the original firmware configuration alongside with the board, so changing the keymap and recompiling a new firmware wouldn't be a big deal, flashing is easy over USB (and once ZMK studio is ready, you will even be able to live-remap over USB/BT without a recompile/reflash).
ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
Depends a lot. If you want it fully assembled, you have to go to larger fab houses like PCBway, and spend a few hundred bucks on a 5pc batch. If you can hand-solder some parts (in this case, the Bluetooth module and the USB connector) and design the rest around jlcpcbs libraries, you can get away with 20-30USD per unit (MOQ of 5) plus shipping/customs. Then add another 10USD for the bluetooth module and USB connector.

A simpler wired design like my E80-1800 (https://github.com/ebastler/E80-1800) can be completely assembled by jlc for ~30ish USD per unit.

Oddly enough, small-batch prototyping at jlc can be cheaper than medium sized (50-150 pc) runs at other fabs.

Hope this doesn't sound like an ad, I've compared a lot of prices and nobody came close to jlcpcb, but With their limitations (limited stock, limited finish/color choices, frequently chnaging stocks and component prices) and sometimes far-from-ideal QC (some scratches can happen, in rare cases even missing components that were present in the BOM) they are not really my first choice for production runs. For prototypes or small unofficial-ish batches with a few friends though - god tier.

ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
It's running open source ZMK firmware, which has no problems connecting to Linux devices, and if I remember correctly the "base keymap" features will all work cross-OS, and can be remapped easily with a firmware update.
ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
Encoders are pretty nice for volume and screen brightness, and if you are working with some specific software you could in theory remap them to other random stuff like scroll through a video editor timeline. My usecase is limited to volume/screen brightness.
ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
With ZMK firmware (that's what this board is running) latency can be seriously low in my experience - but it heavily depends on signal strength and BT chipset of the PC. My desktop has an older intel WiFi card with antennas behind the metal case, and latency is annoying. My notebook uses a ~5 years old intel wifi card, and I did not notice any delay even when playing stuff like CSGO. Probably still too slow for rythm games like osu!, but not noticeable for typing/coding/fps in my experience.

USB Bluetooth dongles fluctuate a lot too, I think it depends on the chipset used (and it's software stack).

ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
I'm not a member of the team, but was contracted for the PCB design as an external freelancer - I have one of the PCB prototypes sitting in a shelf, and the designer has a fully functional prototype with aluminum case and keycaps already. Bit dusty, but here's my proto with a ridiculously oversized battery (that would probably run for a year or so without charging): https://mpwr.xyz/blog/2022/pcb_1.jpg

This will most likely not be the final PCB revision as we still have ideas for improvements, but it should prove that the board is more than a design study already.

ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
I am the person who designed the PCB for the current prototype. It's running the open source ZMK firmware, and that one works flawlessly on Linux. I had a prototype connected to my notebook (T450s, Intel AC9260 wifi chip, Arch Linux) already and did not encounter any issues, and since it's open source and all configs are public, adapting the keymap to your needs and maybe get rid of some mac-specific things wouldn't be a problem.

In fact we are considering a software toggle (e.g. FN + ESC or maybe more complicated to avoid accidentally toggling it) that has a "Win/Linux" and "macOS" mode, but I didn't get around testing that yet.

ebastler··on I spent a year designing a low profile, minimal mechanical keyboard
PCB designer of the board here - The second switch can toggle USB/Bluetooth profile 1/Bluetooth profile 2 (3 pos slider), but the board runs the open source ZMK firmware and you can reconfigure it however you want. Auto-switching between BT and USB is not used on the current firmware (as it would make the USB slider pos quite useless), but the firmware can absolutely do it.

EDIT: You could for example reconfigure the slider to switch between BT profile 1/2/3, and have the board auto-switch to USB when plugged in. Would take ~2min for me since I know my way around ZMK, bit more if you have to dig into how ZMK works first ofc.