This is an old revision of the document!


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 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 between the charging board and the nRF52840 I use (so I could charge the battery with the board entirely disconnected) 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 hour1) and off USB power.

Parts list:

  • 7 keyswitches (choc pinks, or cherry MX with light springs swapped in.)
  • 7 keycaps for selected the keyswitches.
  • 350ma-500ma LiPo battery
  • SPST switch, momentary or on/off
  • Optional: headers
  • Some form of enclosure or a 3D printed case and whatever hardware the case needs.
  • Optional keybord legs, I like these which add some weight - Hagibis Laptop Stand Adjustable Height. These are pictured above.
  • Optional magnetic data and charging connectors. I prefer these as they eliminate the force of cable insertion and removal on the XIAO board. The ones pictured are N. NETDOT Gen10 I have also used the stronger and more expensive 24Pin 240W Magnetic Right Angle USB C Adapter, 40Gbps Type

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)
You can of course change the idle time or disable this timer.