-
Notifications
You must be signed in to change notification settings - Fork 129
Alternatives
Most DIY keyboards are Pro Micro-based, so I emphasize on that, but the smaller the board - the more space for the battery.
This is absolutely the best nRFMicro replacement by far, full featured, and costs only $3. I strongly recommend buying it.
- Shops: Taobao | Aliexpress (official) | Aliexpress 1 | Aliexpress 2 | Aliexpress (search)
- Wiki: http://wiki.icbbuy.com/doku.php?id=developmentboard:nrf52840
- Also from this manufacturer: SuperMini NRF52840 Zero, nRF52840 Core Board
AKA "ProMicro NRF52840" since 28 Sep 2023, see https://www.nologo.tech/product/otherboard/NRF52840.html Nice!nano V2 compatible. Uses ceramic antenna. Features ESD protection chip, battery charger IC (LTH7R in SOT-23-6, no protection IC) and an external 3.3V LDO with EN pin (ME6217C33M5G, marked J2WD). Works in ZMK as nice_nano_v2.
SuperMini pinout by @pdcook, see https://github.com/pdcook/nRFMicro-Arduino-Core
Seller's description (click to expand)
Features:
- Supports charger boost jumper (100mA to 300mA) on the back side (0R resistor, 0402 footprint).
- Supports VCC cutoff control (set P0.13 to low to turn VCC off).
- Supports Japanese con-through spring pins and they hold pretty well. (photo) (video)
-
Higher leak than nin/nrfmicro, 700uA with VCC off vs 20uA. (wrong pull-up resistor, see reddit)(factory-fixed in Apr 2024). - LED colors are swapped, RED is Bluetooth (user LED), BLUE is charger, should be vice-versa. Still not fixed in Jun 2024.
Issue fixes, updates, and documents (click to expand)
- August 2024 revision has a new LDO. It's either RT9013-33GB or TP2028-3.3YN5G.
1 | 2 | 3 |
---|---|---|
- April 2024 revision has 10M pull-up resistor, no leak issues anymore (see ZMK discord)
Why the resistor leaks? Because when VCC cut-off is enabled and power control pin is set to GND (zero) it pulls down VDDH to GND.
It's possible to reduce leak by replacing the pull-up resistor. Old revision reused 5.6K CC resistors to save on parts, see https://t.me/devAlphaSierra/460 (also see ZMK discord here). Desoldering the resistor brings quiescent current from over 700uA to under 20uA. Desolder resistor on the picture and/or replace it with 10M (see n!n 2 schematics).
It is about 3.6V/5.6K ~ 0.650 mA just from this resistor alone. It's confirmed to work fine without the resistor (it's there to prevent floating and enable LDO by default when the power control pin is uninitialized). 10M resistor works too (lower current, same voltage) it only affects gate saturation time (t=R*C), which is negligent (picoseconds), leak will be 3.6V/10M ~ 0.36 uA.
The only piece of the original schematics I got so far is this (discord, forum), it's the original resolution:
Update 2024-09-29, new schematics (Discord):
The rest of the schematics must be the same as Nice!nano V2, but with a different (LTH7R) Li-Po charger. Nice!nano uses BQ24072 and when it charges, VDDH is battery voltage +0.2V so it raises as battery charges, Supermini voltage may differ.
Got my 2 boards November 30, 2023 (image). Shipping took 19 days. Link is dead by now, use Aliexpress search. "ProMicro" and "NRF52840" silk on the back. Bootloader shows NICENANO label on double reset, looks like stock nicenano bootloader. LEDs are swapped (Red is bluetooth, Blue is charging). 5.6K pull-up resistor between power pin and VDDH.
Also colors are messed up. Rapid blinking is charger LED (supposed to be red), slow blinking is user LED (supposed to be blue video). You could swap the LEDs using a hotplate or a soldering iron, preserving the polarity.
High resolution photos of the board:
Update 2024-09-24: new Red Superminis spotted in the wild (Discord):
Last two Superminis I bought from Tenstar had the 10M resistors (battery performance while in deep sleep was ok, I didn’t measure resistance though), so I think the chances are pretty high.
Ships in bulks, 2 pcs for $5.34, 4 pcs for $10.68 (~$2.67 a piece). Shipping may vary.
Features the same schematics and the same SMD antenna as on the old model it's just red on red.
This board is substantially worse than SuperMini NRF52840 by a number of reasons (no VCC-off, unregulated voltage, etc.), so it's NOT RECOMMENDED. Upd. (2024-07-10) there's a new revision with voltage regulator, see 52840nano V2.
Sometimes erroneously referred as SuperMini V2, but it's a totally different board from a different manufacturer. Has LPS BMCU3 (LP4057 Battery Management Chip in SOT23-6), a 6-pin ESD protection chip and no external LDO (routes VDDH voltage directly to EXT_VCC). Works with nice_nano_v2 board definition.
- https://aliexpress.com/item/1005006112197135.html (New!)
- https://item.taobao.com/item.htm?spm=a230r.1.14.34.70a713ce8xCC6X&id=714225655665&ns=1&abbucket=9#detail/
As explained in the Taobao lot, there are two batches, one with a refirbished/relabeled MCU (cheaper).
Issues:
- Revision 3.2 has two blue LEDs instead of red/blue (video).
- There's no EXT_VCC control and no pull-up resistor, so it leaks less if there's no peripheral. However it will leak IMMENSELY with RGB/OLED on the power bus, e.g. 28 LEDs (even turned off) leak 28 mA and kill 100 mAh battery in 3 hours.
- VCC output is unregulated (no external LDO), so we get 4.5V from VUSB after the diode, and up to 4.2V from the battery (image). It WILL burn your peripherals if they are not 5V tolerant (don't hook expensive Nice!view displays to it).
- Uses voltage divider instead of sensing on VDDH, you need to use ZMK software patch, or the level would be off:
If you want the power detection to be more accurate, add a line of code for power detection in the device tree.
vbatt:vbatt {compatible = "zmk, battery-voltage-divider";label = "BATTERY";
io-channels = <&adc 2>;
output-ohms =<2000000>:
full-ohms = <(2000000 +806000)>;pintopin compatible promicro
front | back |
---|---|
More pictures: 52840nano
There's another edition with voltage regulator on board. (there's a nice!nano v2 compatible VCC on/off function with active pin high on P0.13), and 3.3V on VCC pin. Check pictures before buying (note an extra SOT23-5 package). It also provides more GPIO pins than SuperMini. First noticed 2024-07-10 (discord).
Aliexpress US sells basic version for $3.90, IPEX antenna version for $5.63. Though prices start from ~$11 after logging in.
- https://www.aliexpress.us/item/3256805975015643.html (us)
- https://www.aliexpress.us/item/3256806028890415.html (us sold out)
- https://aliexpress.ru/item/1005006161330395.html (~$9 + $3 shipping)
- https://aliexpress.ru/item/1005006652844693.html (~$6, IPEX antenna only)
The marking says Vebo (or Veto?). P-FET is NCE3407, charger is LPS BMEm1 (LP4057), 3.3V LDO is VAXC (AP2122). LEDs are blue and green, with the blue slowly "breathing" and the green flashing a couple of times a second. Must be user and charging LEDs accordingly.
Front | Back |
---|---|
SMA (IPEX) connector version, no ceramic antenna on board:
Pro-Micro compatible. Uses midmount USB-C connector. Has nRF52840 soldered on board. Built in Li-Po charger (MCP73831-based in V1). Has 3+ extra GPIO pins. Has external XTAL. Runs QMK firmware. Closed source hardware (based on the reference nRF52840 QIAA layout with the PCB antenna). The board height is about 3.2 mm (0.55mm thinner than Pro Micro).
- https://www.reddit.com/r/MechanicalKeyboards/comments/fzlfy8/fully_wireless_lily58_pro/
- https://imgur.com/a/OWH4Cym (images)
- https://discord.gg/CHd6hUy (discord)
- https://redd.it/gsszq7 (the final IC posted on r/mk, 29 May 2020)
- https://redd.it/gst1n6 (IC posted on r/mm)
- https://nicekeyboards.com (shop)
- https://docs.nicekeyboards.com (documentation)
Build log:
- 2020-04-12, I just ordered v0.2 with a fixed power system from my PCB maker. I expect to get them in a month... Maybe. I'm currently using two of these to type on a split Lily58 Pro wirelessly-sort of. The firmware I'm using is a modified version of QMK that has a lot of shortfalls. If v0.2 turns out good, and I have a base level firmware working, I will start a group buy.
- 2020-04-23, Nice!nano 0.2 is finished (features external 3.3V AP2112 LDO).
- 2020-04-25, Nice!nano 1.0 design exposes 21 pins via thru hole and 2 extra pad pins on the back for a total of 23 pins (changed the pin layout of 009, 010, 106, and 104).
- 2020-05-29, the final, more public IC posted to r/mk and r/mm.
- 2020-06-20, GB started and finished. 1000 boards sold in about 2 hours.
Revision 1.0:
- Schottky diode: PMEG4010ESBYL in DSN1006-2 package (up to 1A)
- Charger: LN2054Y42AMR (code 2YL6, up to 500 mA charging current)
- Regulator: AP2112K (code G3P, up to 600 mA, leaks 55uA), you can replace it with XC6220 (up to 1A, leaks 8uA)
- P-MOSFET: DMP2088LCP3-7 in X2-DSN1006-3 package
Revision 2.0:
- features something like https://www.ti.com/product/BQ24072 that integrates the charger and battery/USB supply selection into one chip
2021-07-19: Actually, it's bq24075. See new schematic https://nicekeyboards.com/docs/nice-nano/pinout-schematic
Officialy endorsed preassembled nRFMicros (version 1.4+ with a built in hardware switch).
A board that started it all. Runs QMK firmware (open source nrf52 branch). Pro-Micro compatible. Uses Lairdtech BL654 module, assembled board sells for about $36. Schematic is open, but no PCB gerbers available for this board. Very hard to assemble at home, the module has a lot of small underside pins. A single 32Mhz 4-pin oscillator on the module, no external XTAL. Does NOT have a battery charger.
- https://nogikes.booth.pm (Online shop, sells for 4000 JPY, about $36)
- https://yushakobo.jp/shop/ble-micro-pro (online shop, sells for 4000 JPY)
- https://github.com/sekigon-gonnoc/BLE-Micro-Pro
- https://github.com/sekigon-gonnoc/BLE-Micro-Pro/blob/master/schematic.pdf
- https://github.com/sekigon-gonnoc/qmk_firmware/tree/nrf52
- https://discord.gg/MqufYtS (Ble-Micro-Pro Discord channel, ask @_gonnoc)
Currently ships with midmount USB-C and a preinstalled bootloader (BLE-Micro-Pro Default Firmware, see QMK#BMPAPI) that allows editing keyboard layouts and keyboard options via text files on the internal USB drive.
Forked from nRFMicro design by jpconstantineau (formerly nrfMicro v2). Adds a separate battery measuring circuit. Same set of pins. Same voltage regulator (no high voltage mode). Has 32kHz crystal on board. Non-reversible.
- https://store.jpconstantineau.com you can buy preassembled boards here (new!!!)
- https://github.com/jpconstantineau/NRF52-Board (open source for now, follow the updates)
- Live Build: a nRF52840 with the form factor of a Pro Micro! (Youtube)
I took Joric's first design of the nrfMicro and made my own adjustments to include the features of the BlueMicro. I used 0402 components and a super tiny mosfet. It includes an on-board LiPo charger. This is a simple two-sided board. My next iteration for this board will replace the mosfet by a slightly larger one and all 0603 components and will probably use a 4 layer board.
I tested it with Adafruit's Arduino library and bootloader and it works. Flashing to it once a program has been uploaded it tricky and best done by re-flashing the bootloader.
- Voltage regulator: AP2112K-3.3V (SOT-23-5)
- Power source selector mosfet: LP0404N3T5G (SOT-883)
- Power source selector diode: B140WS-7 (SOD-323)
- Battery management IC: TP4054ST (SOT-23-5)
- Battery voltage divider: 800K/2M (0402)
Video about assembling those boards:
Recent video about wireless Corne using those boards:
Also check out recent videos:
There are also old Bluemicros that do NOT support wired connection (uses nRF52832-based E73-2G4M04S1B module, so no hardware USB on the board), but have Li-Po charger on board (USB is used only for charging). Runs its own firmware but it's possible to run full QMK (nrf52 branch) on it, see jian_bm. The board is much longer than a regular Pro Micro so it's not really suited for the small keyboards such as Corne and Jian (Iris is fine). No indicator LEDs.
- https://github.com/jpconstantineau/NRF52-Board (hardware)
- https://github.com/jpconstantineau/BlueMicro_BLE (firmware)
- https://github.com/joric/BlueMicro_BLE/tree/joric-nyquist (my branch for Nyquist)
- https://github.com/joric/qmk_firmware/wiki/jian_bm (alternative firmware)
There also new BlueNano boards in the repository but they still don't support USB connectivity (nRF52832-based).
Announced 20 Dec 2020 by https://www.reddit.com/user/SouthPawEngineer. Longer than Pro Micro (extra 2 rows of pins at the bottom) so it might not fit Corne. Uses mid-mount USB-C connector. Has battery gauge (probably LC709203 because it's the only one I found supported by CircuitPython). Has 2Mb SPI flash on board. Has regulated 3V with power switch on VCC pin and unregulated 5V/4.2V output on a RAW (?) pin. Not sure what does SW pin do.
- https://www.reddit.com/r/olkb/comments/kh5g9n/meet_the_bluephage_express_a_bluetooth_keyboard/
- https://www.reddit.com/r/MechanicalKeyboards/comments/kh58vn/meet_the_bluephage_express_a_bluetooth_keyboard/
Mikoto is a new ready to manufacture open-source PCBA alternative to nice!nano.
You can't really buy Mikoto at the moment, only assemble by hand. There are no production/placement files in the latest revision.
- 2021-06-08 zhiayang @ discord: most things seem to work, including bluetooth but looks like the antenna needs tuning.
It's a 4-layer 1.6mm board with ENIG plating (JLCPCB has a bunch of weird restrictions - no 0.8mm for 4L, and no ENIG for 2L 0.8mm) following reference config 4 with the high voltage mode. All elements are 0402 or bigger (though JLCPCB has a bunch of 0201 elements now). Costed about $80 for 2 pcs. The name is みこと in Hiragana, (Mikoto, it's a character from Railgun).
Midmount connector was soldered at home because JLCPCB didn't have those connectors (now they do, search for C168688 or C168689 for 1.6 and 1.0 mm accordingly).
Upd: It's open source now: https://github.com/zhiayang/mikoto looks like antenna is okay.
More pictures: front, back, panel.
The panel looks like this:
Upd. version 5.1 uses nicenano 2.0 schematic. This one is assembled at home (issues with pin 1.11, discord):
It still uses 0402 components, there are no 0201 parts, which is good. It's still 4-layer which is bad.
Upd. 2021-08-18 figures 1.11 was missing because of that (fixed now):
Sadly 5.x stopped provide production files for JLCPCB so you can revert to 4.7, or (better) add BOM to 5.x.
It uses the same battery management IC as nicenano 2.0, bq24075 (JLCPCB has it in the extended parts, it costs about $1/pcs): https://jlcpcb.com/parts/componentSearch?isSearch=true&searchTxt=bq24075
Mikoto soldering video:
There’s no official ZMK support, and the charger is software controlled. Won’t charge if you don’t pull down at least one of the control lines.
Another open source board, 2-layer
- https://www.tindie.com/products/yhkeyboards/atlas-micro-ble/
- https://github.com/ianchen06/atlas_micro_ble
- https://d3s5r33r268y59.cloudfront.net/datasheets/25156/2021-10-17-08-25-31/atlas_micro_ble_ms88sf3_schematic.pdf
What is it?
Pro Micro pin compatible Bluetooth Low Energy(BLE) module
Can be used as a drop-in replacement for Pro Micro in custom keyboards.
This module is pin compatible with Nice!Nano, so it is compatible with ZMK/Bluemicro firmware.
Why did you make it?
I wanted to have a Pro Micro compatible BLE module that complies with FCC regulations.
What makes it special?
Uses FCC certified and Nordic semiconductor certified module partner's module.
I have to note though, that contrary to a popular belief, putting FCC certified module on the board doesn't make the whole product FCC certified.
This section is for reference
Non-wireless, single-sided, Atmega32u4 based. Uses Micro USB connector. Usually cheap replicas of the original Sparkfun Pro Micro. MicroUSB connector is surface mounted and prone to breaking off.
Black ones have tougher connector, you can buy them here: https://www.aliexpress.com/item/32849563958.html
There are also USB-C boards, fully compatible with black Pro Micros but with top-mount USB-C (makes it ~ 1 mm taller than MicroUSB versions, about 1.6+3.2=4.8 mm overall, connector takes 3.2 mm so you can't use it with the Japanese 2.5mm con-through headers). Only comes in blue color up to date. The board is also ~ 2 mm longer to account for the USB-C connector.
Note that Purple Pro Micros with USB-C (Blue probably too) are incompatible with Japanese Con-Through (spring) pins, see Sockets#spring-pin-headers.
Larger USB-C boards don't have 5.1K pull-downs so they don't support C-C cables, see https://github.com/joric/jorne/issues/19
There is also a double sided version (it's about 1 mm thicker). Doesn't have CC pull-downs so no C-C cables support.
Non-wireless, Atmega32u4 based. V4 version introduces midmount connector to make board thinner.
- https://www.hidtech.ca/?product=elite-c
- https://deskthority.net/wiki/Elite-C
- https://keeb.io/products/elite-c-usb-c-pro-micro-replacement-arduino-compatible-atmega32u4
Non-wireless, STM32-based. Official QMK hardware (split keyboard support has been recently pushed to upstream)
Custom, closed source (apparently) Pro Micro with USB-C board branded by https://keycapsss.com. Sells for 16.40 EUR a piece. Very few mentions. Puchi means "small" in Japanese (プチ). It also supports the spring header.
- https://keycapsss.com/media/pdf/78/e9/b9/puchi-c-pinout.pdf (Pinout)
- https://keycapsss.com/keyboard-parts/parts/141/puchi-c-pro-micro-replacement-with-usb-c-and-atmega32u4
- https://twitter.com/keycapsss/status/1356603549430472705
AKA Raspberry pi PICO RP2040. Pro Micro-compatible pinout. Works with QMK.
There are two versions, this one is bad, and fails a lot:
The "correct" version has smaller components and they are spaced more evenly:
Non Pro Micro-compatible. Very cheap (about $1). Works with QMK.
Non-wireless, Atmega32u4-based, uses midmount USB-C connector.
Front | Back |
---|---|
Non-wireless, Atmega32u4 based. Also known as AoMicro but in blue (Ao in Japanese).
- https://github.com/elfmimi/MMCProMicro
- https://www.reddit.com/r/crkbd/comments/gsomak/ao_blue_crkbd_with_aomicros/
Non-wireless, Atmega32u4 based. Forked from ShirtMicro by Ariamelon. Features USB-C and extra pins.
Non-wireless, Atmega32u4 based. Heavily-modified Goldfish Rev. C. by Ariamelon.
Pro-Micro/Elite-C replacement with USB-C and RP2040.
- Pro-micro / Sparkfun RP2040 compatible footprint, with 5 extra pins at bottom (Elite-C style)
- Raspberry Pi RP2040 MCU
- Up to 16MB flash memory (depending on component selection and availability)
- User LED & USB VBUS detect
- Low profile USB-C mid-mount connector
- Designed to be manufactured and assembled by all common PCBA services (including JLCPCB)
Nicell announced Nuvoton m4521-based board (@a_p_u_r_o from Japanese discord was the one who discovered those Nuvoton MCU's) that has a few SMD components and it's cheap to produce. It is NOT wireless. The board is intended to be opensource.
- https://www.nuvoton.com/products/microcontrollers/arm-cortex-m4-mcus/m4521-usb-series
- ARM® Cortex®-M4 with DSP and FPU
- Max frequency of 72 MHz
- 128 KB of Flash Memory
- 32 KB of SRAM
- 2-bit ADC ( up to 16 channels )
- 16-bit PWM ( up to 12 channels )
- 4 sets of 32-bit timers
- RTC
- USB 2.0 FS Host/Device
- USB 2.0 FS Crystal-less at Device mode
- Up to 4 UART s
- Up to 2 SPI s ( 1x SPI + 1xQ SPI )
- Up to 2 I²C s ( up to 1 MHz )
- Smart card interfaces
- 22.1184 MHz internal RC oscillator
- 10 kHz internal RC oscillator
2020-11-12 Disclaimer: I have no clue if this works. It's called an m4521 from Nuvoton. Not a lot of software support, but I'm hoping to at least get Zephyr support for it. They're extremely cheap to produce. Let me see how much it's cost me to produce 5... One sec. $6 a piece including shipping/fees from 3 different vendors. Not bad.
You could also try STM32F030F4P6, CKS32F030F4P6, CS32F103RBT6 and related MCUs, they cost about $0.4 a pcs.
Looks like Pro Micro, slightly larger but fits Corne, except TX/RX pins used for TRRS and LEDs are occupied by the ILT254 BLE module. Does not have HID capabilities per se but probably can be flashed with CC254x HID firmware to be fully compatible with the current QMK codebase (atmega32u4 + HID via AT commands, though it wasn't tested). Does not have Li-Po charger on board. Virtually impossible to buy now.
- https://wiki.aprbrother.com/en/BlueDuino_rev2.html
- https://github.com/AprilBrother/BlueDuino/raw/master/docs/schematic/blueduino-r2.pdf
- https://www.aliexpress.com/i/32382255292.html
- https://www.seeedstudio.com/Blueduino-Rev2-Arduino-compatible-pius-BLE-CC2540-p-2550.html ($14)
- https://github.com/rampadc/cc254x-hidKbdM (experimental HID firmware for CC254x)
- https://www.aliexpress.com/item/32849563958.html
- https://www.aliexpress.com/item/4000457007865.html
- https://www.aliexpress.com/item/4000467394501.html
No specs and not QMK firmware tested. Looks like a regular Pro Micro with 2.4G NRF24L01 (non-bluetooth) radio on board. The board is also way too long to fit on Corne. I'm not 100% sure about schematic but looks like 24L01 is hooked to pins 7 and 8 (pin 7 is used as ROW3 on Corne), those pins are used for 24L01 very often as so:
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
It's also uses global 3.3V power and apparently overclocked at 16 MHz because NRF24L01 wants 3.3V and there's only one LDO on the board. From its Aliexpress customer reviews: The ATmega32U4 runs at 3.3V and 16MHz - that is like an overclocked 3V/8MHz pro micro, but its working perfectly fine so far.
There are 3 versions: Wired, BLE, BLE Sense. They are really nice, and highly recommended for small split keyboards.
Example keyboards:
- https://github.com/lehmanju/corne-xiao
- https://github.com/PJE66/hummingbird
- https://github.com/ergonautkb/one
nRF52840-based with onboard Li-Po charger. 11 GPIO pins plus 2 NFC pins on the back side, so 13 GPIO pins total. 11 pins give us 6x5 = 30 key matrix, should be enough for a split keyboard (maybe we can have OLED screen hooked up on NFC pins).
- Onboard PDM microphone MSM261D3526H1CPM (only in XIAO BLE Sense)
- Onboard 6-axis Gyroscope LSM6DS3TR-C IMU (only in XIAO BLE Sense)
- Powerful wireless capabilities: Bluetooth 5.0 with onboard antenna
- Powerful CPU: Nordic nRF52840, ARM® Cortex®-M4 32-bit processor with FPU, 64 MHz
- Ultra-Low Power: Standby power consumption is less than 5 uA
- Battery charging chip: Supports lithium battery charge and discharge management
- Onboard 2 MB flash
- Ultra Small Size: 20 x 17.5mm, XIAO series classic form-factor for wearable devices
- Rich interfaces: 1xUART, 1xI2C, 1xSPI, 1xNFC, 1xSWD, 11xGPIO(PWM), 6xADC
- Single-sided components, surface mounting design
Schematic is open: https://files.seeedstudio.com/wiki/XIAO-BLE/Seeed-XIAO-nRF52840-v1.0-SCH.zip
- MCU: nRF52840 (BLE) or ATSAMD21G18A-MU (wired)
- Battery charger: BQ25100, uses battery divider 1M/510K (pins 0.31/AIN7, 0.14/pulldown)
- Red charging LED (pin 0.16), common anode RGB LED (pins 0.26, 0.30, 0.06)
- Switchable power source, uses P-MOS (1x0.35mm) and Schottky diode.
- Low leak 3.3V regulator (XC6206P332MR)
- QSPI flash (2MB)
You can buy it here:
- https://www.seeedstudio.com/Seeed-XIAO-BLE-nRF52840-p-5201.html ($10 for BLE, $16 for BLE sense with a mic)
- https://wiki.seeedstudio.com/XIAO-BLE-Sense-Getting-Started/
- https://www.aliexpress.com/item/1005004021078832.html ($23.52)
- https://www.aliexpress.com/item/1005003993016972.html ($17.55)
- https://www.aliexpress.com/popular/seeeduino-xiao-ble.html (search)
Miniature Pro Micro clone with USB-C connector. Non-wireless Used in Zaphod Lite keyboard along with a GPIO expander (there are just too few GPIO pins for a keyboard). See https://wiki.seeedstudio.com/Seeeduino-XIAO/
- Powerful CPU: ARM® Cortex®-M0+ 32bit 48MHz microcontroller(SAMD21G18) with 256KB Flash,32KB SRAM.
- Flexible compatibility: Compatible with Arduino IDE.
- Easy project operation: Breadboard-friendly.
- Small size: As small as a thumb(20x17.5mm) for wearable devices and small projects.
- Multiple development interfaces: 11 digital/analog pins, 10 PWM Pins, 1 DAC output, 1 SWD Bonding pad interface, 1 I2C interface, 1 UART interface, 1 SPI interface.
Seeduino XIAO BLE Shield
- GitHub: https://github.com/aroum/proXiao (may be a dead link)
- Where to buy: search https://www.reddit.com/r/ru_mechmarket/
It messes up some pins because the layout is so different, but still works pretty well.
The XIAO board is much smaller than Pro Micro, pins don't match either. XIAO to Pro micro overlay for comparison:
Pro-Xiao is based on the schematic above. The hardware is closed source.
Supports a lot of keyboards:
More photos:
There's an open-source XIAO to Pro Micro adapter shield, called Xiao-Pro (SMD only):
- https://www.reddit.com/r/olkb/comments/1dq730z/xiao_to_pro_micro_conversion_board_open_source
- https://github.com/gargum/Xiao-Pro
Front | Back |
---|---|
I don't quite know how to call it (name pending) it's also called SuperMini NRF52840 but in RP2040-Zero form factor. Costs about the same as a Pro Micro-sized SuperMini. It's NOT compatible with XIAO BLE layout. Untested.
- https://www.adafruit.com/product/4481
- https://learn.adafruit.com/adafruit-itsybitsy-nrf52840-express
- https://cdn-learn.adafruit.com/downloads/pdf/adafruit-itsybitsy-nrf52840-express.pdf
Sells for $17.95. Uses MDBT50Q module. The pinout is NOT Pro Micro compatible. Does NOT have Li-Po charger on board (needs a Li-Po charger backpack which is sold separately for $4.95). The board size is 36x18mm, 3mm longer than Pro Micro (14 pins in a row instead of 12-13) and a little bit taller (SMD components on both sides). Has 6 power pins, 21 digital GPIO pins (6 of which can be analog in). Uses MicroUSB connector. Confirmed to work with QMK (nRF52 branch).
NOT Pro-Micro compatible. Uses MDBT50Q module. Schematic and PCB are open source. Sells for $24.95. Not QMK firmware tested.
- https://www.adafruit.com/product/4062
- https://github.com/adafruit/Adafruit-nRF52-Bluefruit-Feather-PCB
- Adafruit Feather nRF52840 Express Downloads
- Adafruit Feather nRF52840 Express Schematic
- Adafruit Feather nRF52840 Express pinout (read carefully)
NOT Pro-Micro compatible. Open source, nRF52840-based, assembled board sells for about $15. No module is used, nRF52840 soldered on board. Meets the Adafruit Feather specification in dimensions and pinout. Not QMK firmware tested.
- https://docs.particle.io/xenon
- https://store.particle.io/products/xenon
- https://docs.particle.io/datasheets/mesh/xenon-datasheet
- https://github.com/particle-iot/xenon
NOT Pro-Micro compatible (rather, Nano-compatible), does NOT have a Li-Po charger on board. Sells for $19 on arduino.cc. Uses NINA B306 module (nRF52840-based). It's much longer than Pro Micro and power pins are on the other edge of the board from the MicroUSB connector, also power pins are a little bit scrambled, note RST, GND and VCC locations. Not QMK firmware tested.
- https://store.arduino.cc/usa/nano-33-ble
- https://www.u-blox.com/sites/default/files/NINA-B3_DataSheet_%28UBX-17052099%29.pdf
CC-2540 and Atmega32u4-based Nano-sized board. Probably eligible for QMK if you flash CC2540 with RN-42 like HID firmware.
- https://github.com/joric/cc2540-keyboard
- https://github.com/rampadc/cc254x-hidKbdM (experimental HID firmware for CC254x)
- https://imgur.com/a/KWmz6 (Turning HM-10, HM-11 into Bluetooth HID modules)
side | pins |
---|---|
Original nRF52840-based USB donlge from Nordic. Does NOT have a Li-Po charger on board. USB-A PCB connector. Schematic is open. 2-layer PCB with a PCB antenna. Sells for about $18. You can use it as nRF52840 module replacement or as an USB dongle, you decide. Should work with QMK/ZMK though I didn't really check that.
- https://www.nordicsemi.com/Products/Development-hardware/nRF52840-Dongle
- https://www.aliexpress.com/item/32913393879.html
Reduced size, unoriginal nRF52840-based USB Dongle. Does NOT have a Li-Po charger on board. USB-A PCB connector. About the same as Nordic dongle but uses a small chip antenna.
A module that reuses M2-connectors. Not compatible with an actual M2 as it doesn't have PCI or SATA bus, but it routes out up to 74 pins, may be useful. Used on some DIY Korean or Chinese keyboards.
- https://learn.sparkfun.com/tutorials/micromod-nrf52840-processor-hookup-guide
- https://www.reddit.com/r/MechanicalKeyboards/comments/la327q/hardware_idea_keyboard_pcb_accepting_sparkfun/
- https://github.com/tzarc/ghoul
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.
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)
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
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 |
UART means you can control them from 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://beta.docs.qmk.fm/using-qmk/hardware-features/feature_bluetooth
- 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
It's probably also possible to use Adafruit Bluefruit LE UART Friend HID firmare for nRF51822:
- https://github.com/adafruit/Adafruit_BluefruitLE_Firmware
- https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-uart-friend/software
- https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-uart-friend/hidkeyboard
The USB host-based adapters are the last resort if you don't have access to the controller or do not want to open the keyboard. You could do much better with UART Bluetooth HID modules, as they don't use USB, they don't need 3.3V to 5V boost converter and much more battery friendly. USB Bluetooth adapters are easier to use but the battery life is not good. You need either MAX3421e or PIC32 or STM32F105 for the USB host. Note some keyboards can work from 3V some won't even start (e.g. CM Novatouch needs 5V) so those adapters use 3.7V-5V DC-DC voltage booster for all the keyboards.
- GH60 thread: https://geekhack.org/index.php?topic=40514
- Imgur album: https://imgur.com/a/eIk8Y
- Handheld SCI Bluetooth Keyboard Adapter, $39: http://handheldsci.com/kb
There's also a new version (BT-500):
- TaoBao Adapter, $20: https://world.taobao.com/item/542300386181.htm +$3 wakeup touch module https://world.taobao.com/item/548629862732.htm
Looks like there's no separate USB host (MAX3421E) on the PCB so that QFN controller could actually be STM32F105 (USB host and client) and the module on the rear side definitely looks like a CC2541 clone (I have a similar one).
There's also a funny thing, wake up touch module ($3) https://world.taobao.com/item/548629862732.htm Looks like people use it with the module above. According to the description you don't even need a physical button it's rather a proximity sensor (probably TTP223B based).
Uses a standard Bluetooth dongle as Bluetooth HID. I have no idea how that works but apparently it works. Uses PIC-32 as USB host. Firmware is closed source.
- USB2BT Adapter (PIC-32 based), $60: https://www.amazon.com/dp/B00PI7ZDOI/
- Schematics (japanese): http://sohta02.web.fc2.com/usb2bt.html
- Unboxing: https://www.youtube.com/watch?v=SRSyqky-WWk
This one is pretty cheap, recommended for starters. It uses $2 HC-06 module flashed into RN-42, $2 Arduino Mini and an $5 USB host Arduino shield.
Note you absolutely need an USB-host capable microcontroller such as MAX3421E, Atmega32u4 is USB-client only and can't work as a host.
- DIY HID Relay (Arduino Mini + USB Host Shield, MAX3421E based): https://hackaday.com/2016/09/04/convert-any-usb-keyboard-to-bluetooth/
USB Host Shield in question (costed about $5): https://www.aliexpress.com/item/32942427334.html
The battery doesn't last long because of RN-42 and 5V booster but you can try optimizing the firmware/using 3V power.
You can also make wired USB to QMK converter out of it:
- https://geekhack.org/index.php?topic=69169.0 (Hasu's USB2USB converter, costs $80)
- https://geekhack.org/index.php?topic=80421.0 (DIY from pro micro and USB host shield)
- https://testchamber.one/posts/qmk-usb-usb-converter (DIY instruction in Russian)
Also see the infamous GH60 thread: https://geekhack.org/index.php?topic=40514
"USB Keyboard Bluetooth 5.3 Converter Wired Keyboard To Wireless Adaptor Converter Bluetooth Module for DIY Keyboard Adapter"
Relatively cheap ($15), maybe cheaper than MAX3421E host shield and all the parts.
- Keyboard only: https://aliexpress.com/item/1005003539180801.html
- Keyboard+mouse: https://aliexpress.com/item/1005002351838917.html
- Video: https://www.youtube.com/watch?v=NLS1afRVkV8
"2.4G And Bluetooth 5.3 Wireless Converter USB Wired Keyboard To Bluetooth Wireless Adaptor Adapter DIY"
A good conversion kit, from the look of it. Costs about $15 as well.
Those pass-through adapters allow to use QMK firmware on any USB keyboard. They usually use a dedicated chip for the USB host, MAX3421e (Atmega 32U4 doesn't have USB host, only USB client).
Made by Hasu. Uses MAX3421e for the USB host.
Arrived on Aliepress in Oct 2023. Pretty small size. Costs about $20.
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):
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
Video:
- https://github.com/joric/qmk/wiki/hhkb_ble HHKB Pro 2 wireless mod (Pro-Micro based, so also could be wired)
There's also ZMK version for Nicenano, wiring is a bit different, uses only one side (top 2 pairs are crossed because of GND pins).
Another module from Taobao:
Uses nRF52840 and USB-C on board. Unfortunately, there's no USB-hub so you have to use stickers to cover the holes.
wireless controller | rear view |
---|---|
Something obscure from Taobao for HHKB Classic (two batteries, probably because there's no space for a single large battery).
- https://www.zfrontier.com/app/flow/ZlxXqkabX9JA
- https://item.taobao.com/item.htm?spm=a21n57.1.0.0.578f523csL2FmJ&id=715088039960&ns=1&abbucket=9#detail
board | receiver front | receiver back |
---|---|---|
Looks like they never managed to solder BT module to the existing spot and make it work. Too much reverse engineering.
Not a hardware but rather nRF51822 firmware that supports both Bluetooth host and RF (Gazell) protocol. True wireless, supports custom RF receiver as well. You can switch between Bluetooth and RF protocol in real time. Originally written for Mitosis, hence the name. Left half is RF, right half is BT+RF. Does NOT support 24l01+ (Gazell only supported in nRF5x). Very early, experimental stage. Does not support keyboard matrix, direct pin only.
- https://github.com/joric/bluetosis
- https://github.com/joric/bluetosis/wiki
DISCLAIMER: I do not recommend any of that, there's ZMK dongle setup (nRF52-based) if you want a receiver for some reason.
- The Unifying Receiver uses nRF24LU1+ (single chip solution for compact USB dongles, 8051-based CPU with 16/32 kB FLASH, 512b RAM). It is possible to flash custom firmware on it, rendering it incompatible with Logitech devices.
- It is possible to communicate with nRF24LU1+ via Enhanced ShockBurst (ESB) protocol using nRF52832 chip (e.g. MX Master Mouse): https://devzone.nordicsemi.com/f/nordic-q-a/13878/any-advice-for-nrf52832-to-nrf24l01-communication
- New! There's a reverse-engineered Logitech-compatible firmware that works with the unmodified Logitech Unifying receiver: https://github.com/bilogic/logitech-unifying-device (uses ESP8266, NRF24L01+ and a 5v power board)
A guy named Spindle managed to flash unifying reciever (nRF24LU1+) with his own TMK fork. For the keyboard halves he used two 24l01+ and two 328p's as GPIO extenders for the keyboard matrix.
- https://www.reddit.com/r/MechanicalKeyboards/comments/57vf0w/photos_i_got_my_split_wireless_build_to_run_off_a/
- https://www.reddit.com/r/MechanicalKeyboards/comments/4r13ab/modification_my_3way_split_keyboard_setup/
- https://imgur.com/a/obCG2 (more pictures)
- https://github.com/ahtn/tmk_keyboard/tree/wireless/keyboard/split_keyboard
There also were DIY attempts such as Unigo66. They used two Unifying receivers plugged in something like Hasu usb2usb adapter (Atmega32U4 + MAX3421e + USB hub) for the receiver part and two Logitech k230 (cheapest Unifying keyboards on the market, about $25 each) broken and looted for the transmitter part.
- https://geekhack.org/index.php?topic=97565 [GB] UniGo66 - The Ultimate Wireless Ergo
Unigo66 front view | Unigo66 PCB |
---|---|
Since Unigo66 was made/sold in 2018/2019 before the articles about nRF24LE1 firmware dump came out, I tend to believe they resoldered the original chips from the donor Logitech keyboards.
- https://hackaday.com/2021/06/04/an-exercise-in-firmware-dumping-with-the-greatfet (dumping nRF24LE1)
- https://jamchamb.net/2021/05/29/dumping-k360-firmware.html
Video (This wireless split is wireless junk): https://youtu.be/pcNMLgUGfqg
TL;DR: it didn't go well, there were complaints about reception and signal interference. Ergonomics also was questionnable.