nRF52840 Chorder (experimental)

Zach and I are working on a version of the chorder that uses a Seeed Studio XIAO BLE nRF52840. The goal is to make a single chorder that can gracefully be both an HID USB Keyboard and an HID BLE Keyboard. It is working well, but does a few things that I am not happy with yet if it were up for general use. If you would like to be part of it's shakedown, write me and I can send you the code. But at this point only ask if you are comfortable editing arduio code as you will need to do that to customize the chorder to your preferences.

Currently I am using it for my primary keyboard with both my phone and Linux box.

You will note in the above, that there is an additional small board being used. This board is not normally needed, it is a dedicated battery charging board I had on hand and was important before I had implemented putting the nRF52840 into it's “standby” state ( using <5μA ). The SPST on/off here connects between the charging board and the nRF52840 I use1) can now be replaced with a momentary SPST connected as a reset switch. This reset will turn the nRF5280 on from standy. This state can be entered by a chord or triggered if idle for an hour2) and off USB power.

Also of note, the “Franken-Chorder”3) enclosure pictured is so named as it is made up from parts from several different enclosure attempts. The 3D printed flat bottom(Zach & Nhat), some 3D printed keyswich holders(Zach), an acrylic top (Nhat). Pictured with keyboard feet,4) mag connectors,5) Cherry MX red switches modified with ~25g springs, and mostly very old keycaps.

Parts list:

There are a number of chords specific to this chorder. These do things like changing the HID mode between BLE and USB, put the board into the low power standby state, and blink system information on the chip's RGB LED. My default for these chords are documented on the Function Keys - Function Mode Prefix chart.

1)
This arrangement allows for charging the battery with the board entirely disconnected and testing the nRF52840 when no battery is connected.
2)
You can of course change the idle time or disable this timer.
3)
Thanks for the name, Zach
4) , 5)
see parts list below