Note: This isn’t going to be an explicit guide on how to add a dongle to any ZMK board. I will create a post for that later.
Background I’ve since daily driven the Swan40 for quite a while, and it’s been working perfectly… on my desktop. Since it’s been working out so well, I wanted to make another one to have on-the-go, for use with my laptop. However, this is where some problems appeared.
...
Tricks In my goals for this project, my number one goal was really the battery life. However, on a tiny split keyboard, I have not seen any good battery mounting methods that do not involve tenting the keyboard to make space below it or having it on the side. I want the battery to be part of the keyboard such that the keyboard’s physical footprint doesn’t have to extend too much to accommodate for it.
...
Note: You can find the relevant files of this project in the Swan40 GitHub repository.
Goals Hardware On-off switch (Like the Corne) There should be a switch to disconnect the battery on the hardware level. Usage of a XIAO nRF52840 It should utilize Seeed Studio’s XIAO nRF52840 as the controller. (This was a cost-cutting measure; the nice!nano, a commonly used bluetooth microcontroller, costs about 26€ a piece excl. shipping, while this board costs only $10.) Software ZMK It should use ZMK as its firmware. Design Large and flexible battery capacity The PCB should allow for mounting of large and small batteries. There should be at least two battery mounting options. The battery mounting spots should be able to accommodate up to 1000mAh LiPo batteries. 3D-printed case It should be possible to mount the board in a 3D-printed case which does not tilt or raise the PCB significantly. Melted PCB traces The traces should be melted using the Round Tracks plugin. (Because it’s cool!) Aggressive column stagger (Like the Ferris Sweep) The column for the pinky finger should be aggressively staggered.