-
Notifications
You must be signed in to change notification settings - Fork 139
Modules
Many older modules have UART-controlled HID firmware. UART means you can use them in official QMK as daughter modules to the wired controller. They understand a set of modem-like commands sent via the standard terminal (you just need a couple of free GPIO pins), handle Bluetooth pairing and send key codes via the Bluetooth HID protocol.
- QMK-compatible modules: https://docs.qmk.fm/features/wireless
- Turning HC-06 into RN-42 Bluetooth 2.0 HID module: https://imgur.com/a/1LHSR
- Turning HM-10, HM-11 into Bluetooth 4.0 HID modules: https://imgur.com/a/KWmz6
- Turning NRF51822 into Bluetooth 4.0 HID module: https://imgur.com/a/ej9hD
- You can also try Adafruit Bluefruit LE UART Friend firmware for nRF51-based boards.
NRF52-based modules are usually standalone (they don't need STM32 or Atmega32u4 for MCU) and use ZMK firmware.
Used in nRFMicro, nRF52840-based, 13x18mm (13mm is a maximal possible width for Pro Micro), sells for $5-$7 (sometimes can be found for $3.50 and $3.20 even). 30 free GPIOs including XL1/XL2.
E73-2G4M08S1CX schematic (with the IPEX antenna) is IDENTICAL. Does not need an extra XTAL or anything.
nRF52833-based (half the Flash, so no Python). Lacks pin 1.11 so it's not 100% compatible. Also no DCCH so no HV mode. Other changes for nRF52833 module is that 1.10 is now 0.25 (blue led) and 1.13 is now 1.05 (standard gpio).
Used in Adafruit Feather nRF52840 Express, nRF52840-based, 10.5x15.5mm, sells for $8.89
- https://www.ebay.com/itm//173373877282
- https://www.raytac.com/upload/download_files/1bca545683ea4caf48e1ec796c09b9d9.pdf

Used in BLE-Micro-Pro, nRF52840-based, 10x15mm, sells for $15.97. There also BL651 modules without SMA socket.
- https://fccid.io/SQGBL654/User-Manual/Users-Manual-3905952.pdf
- https://www.lairdconnect.com/bl654-ble-modules-and-development-kits
- https://www.mouser.com/datasheet/2/223/BL654_Datasheet_v1_2-1479813.pdf
- https://www.mouser.com/Search/Refine?Keyword=bl654
nRF52840-based, 18x13.5x1.6mm, sells for $10.11 ($5 on alibaba). Very interesting module! Has xtal on board. Theoretically fits Pro-Micro with a little bit of filing. Not too many underside pins. Used in Corne-ish Zen.
- Aliexpress: https://www.aliexpress.com/item/32868365660.html ($10.11 for 1 pcs, ~$7 in bulks)
- Shielded version: https://www.aliexpress.com/item/32868002366.html
- Alibaba: https://holyiot.en.alibaba.com/
- Schematic: http://www.holyiot.com/tp/2019042311405478395.zip

Note that Holyot already has the DC-DC inductivity soldered in so you don't need 3V LDO to run MCU from internal DC-DC. If you want to run off a raw module, don't buy E73, buy Holyot (it also has an external crystal, XTAL).

nRF52840-based, 13.7x14.7mm, sells for $8.53 ($6 in bulks)
- https://www.aliexpress.com/item/32984570877.html ($8.53)
- https://www.aliexpress.com/item/32982453902.html ($59.27 for 10 pcs)
Please note that there is NO USB on this SKYLAB SKB501 module, and no USB pins in the pinout albeit it's nRF52840, so I would very much NOT recommend it for anything.
Mind that anything that's wider than about 14mm won't fit on a Pro Micro footprint. This one ought to be 13.7x17.4mm and it fits just fine, and it's about the cheapest on Aliexpress ($8.53 total) but there's NO USB.
nRF52840-based, either 10.0 x 11.6 mm for B3x1 10.0 x 15.0 mm for B3x2 (either way, it's not larger than 10 mm on the narrower side). Lots of underside pins. Used in Arduino Nano-33 BLE.
- https://store.arduino.cc/usa/nano-33-ble
- https://www.u-blox.com/sites/default/files/NINA-B3_DataSheet_%28UBX-17052099%29.pdf
nRF52840-based, costs $3-$4. Too large for the Pro Micro footprint (17.4mm wide, need 13mm).
- https://www.aliexpress.com/item/4000101935456.html
- https://www.minew.com/download/nRF52840%20Module%20MS88SF2%20Datasheet.pdf

There are also MS88SF3 modules, they are smaller but but they're impossible to solder with an iron.

nRF52822-based (BT 5.2 SoC, same as nRF52840 but half the ram, half the flash and with BT 5.1 direction finding). Seems too large for the Pro Micro footprint (685 mil = 17.3 mm, need 13mm).
- https://www.aliexpress.com/item/33011597378.html ($8.48 for 2 pcs)

nRF52822-based, no shielding. Too large for the Pro Micro footprint (size 24.3 x 17.5 x 1.8mm with Antenna, width 17.5mm, need 13mm).
- https://www.aliexpress.com/item/4000712170592.html ($11.23 for 2 pcs)
Something obscure from the seller of Supermini ICBuy. Costs the same as Supermini nRF52840. Claims to support ZMK (NRF52840 Core, Bluetooth module with ZMK support Tool IO Full Lead Out). Untested.

An interesting module by SparkFun (NOT nRF52840-based, just Cortex-M4F with BLE 5.0). No hardware USB so it kind of sucks a little bit. All breakout boards are UART/CH340-only.
We did it, everyone! SparkFun’s Artemis Module has earned approval from the Federal Communications Commission (FCC) and Industry Canada (IC), making it the first open-source, US-manufactured, FCC/IC-certified BLE module on the market.
- https://www.sparkfun.com/news/3082
- https://github.com/sparkfun/SparkFun_Artemis
- https://cdn.sparkfun.com/assets/5/c/b/3/c/SparkFun_Artemis.pdf
- https://learn.sparkfun.com/tutorials/designing-with-the-sparkfun-artemis/all
You can unofficially (licensing is expensive) code/program a keyboard using CC245x modules (same as used in HM-10/HM-11).
- World's smallest keyboard: https://github.com/joric/cc2540-keyboard
It uses CC2540 RF-BM-S02 module (11.2 x 15.1 x 1.74 mm, onboard USB support).

Video:
Not a board, but rather an STM32 microcontroller with BLE/ZigBee/Thread/802.15.4 support.
Two cores: Cortex-M4 (64 Mhz) and Cortex-M0+ (radio, 32 Mhz), USB, 1M Flash, 256Kb RAM.
- https://www.st.com/en/microcontrollers-microprocessors/stm32wb-series.html
- https://www.aliexpress.com/item/32989918160.html ($62 for P-NUCLEO-WB55 SDK).
Not widely available but have a higher chance to be merged into QMK (better licence than Nordic). Not QMK firmware tested. (Upd. Nope, not gonna happen, firmware blob license appears to be even funkier than Nordic's).
- https://www.reddit.com/r/ErgoMechKeyboards/comments/16ufrsv/what_is_the_cheapest_wirelessbt_build_assuming/
- https://github.com/O-H-M2/qmk_port_ch582
QMK has a CH582 port! It has BLE and there's a dev board for it on Aliexpress for about 2 bucks. That is, if you're willing to experiment since, as far as I'm aware, no keyboard has been designed with it and there's not a lot of users yet.
Also check out the dev board for this thing, it's Pro Micro sized, has USB-C but costs less than $2.
ZMK does not support them yet but there's some early Zephyr work for a similar SoC (CH56x):
Last I looked, datasheets were basically "sorry, not documented" on the registers for BLE hardware. And 32KB of RAM on the CH582F would definitely be a challenge.
Seems like the WCH Bluetooth stack is supplied as a binary blob
and various functions are just calls to the blob at some address.
Also check out FAK firmware (reddit):
Also there is another firmware for WCH's low cost CH582 (see #82):
- https://github.com/rgoulter/smart-keymap/tree/master/firmware/ch58x-ble-hid-keyboard-c
- keyboard using the CH582 (WeAct's core board): https://github.com/rgoulter/keyboard-labs/releases/tag/wabble-60-rev2024.2
- Example keymap (including layering, tap-holds, chords): https://github.com/rgoulter/smart-keymap/blob/master/tests/ncl/keymap-60key-rgoulter/keymap.ncl
A brief comparison of nRF52840 modules from Alibaba sorted by the width of their smallest module with antenna and certs (smw), ssmw is the same but with side pins (taken from here).
| company | volume_usd | volume_count | ratings | rating | response_rate | smw | ssmw |
|---|---|---|---|---|---|---|---|
| Holyiot | 5000 | 34 | 7 | 5 | 95.2 | 13.5 | 13.5 |
| Skylab | 270000 | 74 | 0 | 0 | 90 | 13.7 | 13.7 |
| Minew | 110000 | 172 | 48 | 4.8 | 93.9 | 17 | 17 |
| Thingo | 50000 | 89 | 21 | 5 | 86.9 | 12 | 12 |
| Feasycom | 120000 | 74 | 0 | 0 | 90 | 10 | 10 |
| Ebyte | 410000 | 247 | 40 | 4.8 | 94.4 | 13 | 13 |
| RF-star | 4000 | 35 | 4 | 5 | 100 | 15 | 15 |
| Dingcheng | 50000 | 96 | 39 | 4.9 | 96.5 | 13 | 13 |
| Raytac | - | - | - | - | - | 10.5 | - |
| ShenzhenWireless-Tag | 3000 | 9 | 2 | 5 | 96.2 | 18.4 | 18.4 |

















