Skip to content

Alternatives

joric edited this page Nov 9, 2024 · 1389 revisions

Most DIY keyboards are Pro Micro-based, so I emphasize on that, but the smaller the board - the more space for the battery.

Pro Micro Compatible

SuperMini NRF52840

This is absolutely the best nRFMicro replacement by far, full featured, and costs only $3. I strongly recommend buying it.

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.

Untitled-2

supermini_nicenano

SuperMini pinout by @pdcook, see https://github.com/pdcook/nRFMicro-Arduino-Core

Seller's description (click to expand)

Sbd991c4c0fa24292818ae72e4d1f8cb6g

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)

Supermini Issues

  • 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
photo_2024-08-30_02-22-27 -2147483648_-213062 photo_2024-08-30_02-25-08
  • April 2024 revision has 10M pull-up resistor, no leak issues anymore (see ZMK discord)

image

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:

image

Update 2024-09-29, new schematics (Discord):

O1CN01dX5XEt1lwSylaBst7_!!3009214883

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:

SuperMini NRF52840 Red

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.

IMG_4988

52840nano

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.

As explained in the Taobao lot, there are two batches, one with a refirbished/relabeled MCU (cheaper).

nrf52840nano

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
photo_2023-07-27_15-52-33 photo_2023-07-27_16-59-44

More pictures: 52840nano

52840nano V2

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.

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
vebo_front vebo_back

SMA (IPEX) connector version, no ceramic antenna on board:

vebo_sma

nice!nano

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).

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:

nicenano20

2021-07-19: Actually, it's bq24075. See new schematic https://nicekeyboards.com/docs/nice-nano/pinout-schematic

pinout-v2

image

Puchi-BLE

Officialy endorsed preassembled nRFMicros (version 1.4+ with a built in hardware switch).

puchi

BLE-Micro-Pro

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.

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.

BlueMicro

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.

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.

There also new BlueNano boards in the repository but they still don't support USB connectivity (nRF52832-based).

Bluephage

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.

Mikoto

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.

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.

image

The panel looks like this:

image

Upd. version 5.1 uses nicenano 2.0 schematic. This one is assembled at home (issues with pin 1.11, discord):

unknown

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):

image

Sadly 5.x stopped provide production files for JLCPCB so you can revert to 4.7, or (better) add BOM to 5.x.

image

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.

IFNano

Another open source board, 2-layer

Atlas Micro BLE

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.

atlas

Wired commercial boards

This section is for reference

Pro Micro

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.

Pro Micro with USB-C

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.

pro-micro-double-sided

Elite-C

Non-wireless, Atmega32u4 based. V4 version introduces midmount connector to make board thinner.

elite-c

Proton-C

Non-wireless, STM32-based. Official QMK hardware (split keyboard support has been recently pushed to upstream)

Puchi-C

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.

RP2040 Pro Micro

AKA Raspberry pi PICO RP2040. Pro Micro-compatible pinout. Works with QMK.

pi_pico

There are two versions, this one is bad, and fails a lot:

photo_2024-09-27_01-27-38

The "correct" version has smaller components and they are spaced more evenly:

photo_2024-09-27_01-28-53

RP2040-Zero

Non Pro Micro-compatible. Very cheap (about $1). Works with QMK.

RP2040-Zero-details-7

Wired DIY boards

Goldfish

Non-wireless, Atmega32u4-based, uses midmount USB-C connector.

Front Back

ShiroMicro

Non-wireless, Atmega32u4 based. Also known as AoMicro but in blue (Ao in Japanese).

ShiroMicroFish

Non-wireless, Atmega32u4 based. Forked from ShirtMicro by Ariamelon. Features USB-C and extra pins.

ariamelon-shiromicrofish

Alvaro

Non-wireless, Atmega32u4 based. Heavily-modified Goldfish Rev. C. by Ariamelon.

alvaro

alvaro-krikun

Splinky

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)

splinky_v1_photo

Nuvoton-based

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.

Partially Pro-Micro Compatible

BlueDuino Rev2

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.

Micro with 2.4G

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.

Non Pro Micro Compatible

XIAO

There are 3 versions: Wired, BLE, BLE Sense. They are really nice, and highly recommended for small split keyboards.

Example keyboards:

Seeduino XIAO BLE (Sense)

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:

Seeduino XIAO (Wired)

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.

xiao

ProXiao

Seeduino XIAO BLE Shield

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:

photo_2022-09-21_23-19-07 photo_2022-09-21_23-13-13

Pro-Xiao is based on the schematic above. The hardware is closed source.

Supports a lot of keyboards:

image

More photos:

1 2 photo_2023-03-08_14-32-09 photo_2023-03-08_14-32-10 (2) photo_2023-03-08_14-32-10 photo_2023-03-10_18-03-33 prociao

XiaoPro

There's an open-source XIAO to Pro Micro adapter shield, called Xiao-Pro (SMD only):

Front Back
front back

SuperMini NRF52840 Zero

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.

Screenshot 2023-11-13 213508

S45d49603df694fcdbb6da829e60e1c13j S82aa3c8d07784c10b9c2ef50d044606dv

Adafruit ItsyBitsy nRF52840 Express

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).

Adafruit Feather nRF52840 Express

NOT Pro-Micro compatible. Uses MDBT50Q module. Schematic and PCB are open source. Sells for $24.95. Not QMK firmware tested.

Particle.io Xenon

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.

Arduino Nano 33 BLE

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.

BLE-Nano

CC-2540 and Atmega32u4-based Nano-sized board. Probably eligible for QMK if you flash CC2540 with RN-42 like HID firmware.

side pins
image image

nRF52840 Dongle

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.

image

nRF52840 Micro Dev Kit USB Dongle

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.

image

SparkFun MicroMod nRF52840 Processor (M2)

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.

image

image

Modules

nRF52840 Core Board

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.

nRF52840 Core Board

E73-2G4M08S1C

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-2G4M08S1C Pinout

E73-2G4M08S1CX

E73-2G4M08S1CX schematic (with the IPEX antenna) is IDENTICAL. Does not need an extra XTAL or anything.

image

E73-2G4M08S1E

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).

Raytac MDBT50Q

Used in Adafruit Feather nRF52840 Express, nRF52840-based, 10.5x15.5mm, sells for $8.89

Lairdtech BL654

Used in BLE-Micro-Pro, nRF52840-based, 10x15mm, sells for $15.97. There also BL651 modules without SMA socket.

Holyiot YJ-18010

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.

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).

image

SKYLAB SKB501

nRF52840-based, 13.7x14.7mm, sells for $8.53 ($6 in bulks)

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.

NINA-B3

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.

MS88SF2

nRF52840-based, costs $3-$4. Too large for the Pro Micro footprint (17.4mm wide, need 13mm).

MS88SF3

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

MS88SF3

PTR9618

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).

PTR9618-pinout

PTR9813

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).

SparkFun Artemis Module

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.

Comparison table

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

Adapters

UART Bluetooth HID Adapters

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.

Adafruit Bluefruit LE UART

It's probably also possible to use Adafruit Bluefruit LE UART Friend HID firmare for nRF51822:

USB-to-BT Adapters

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.

dirty_bullshit

Handheld SCI

sci1

sci2

There's also a new version (BT-500):

Taobao Adapter

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).

taobao

taobao2

USB2BT

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.

image

image

DIY HID Relay

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.

hid-relay-novatoucn

hid-relay-breadboard

USB Host Shield in question (costed about $5): https://www.aliexpress.com/item/32942427334.html

usb-host-shield

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:

Also see the infamous GH60 thread: https://geekhack.org/index.php?topic=40514

Aliexpress adapters

Dongle Kit

"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.

aliexpress adapter

Sf9488a20fd1e497cb3de532aebcfd7c2X jpg_640x640

Conversion Kit

"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.

Seced5e7b4b7c4baa89a35e74ed099942O

USB-to-USB Adapters

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).

Hasu USB-USB Converter

Made by Hasu. Uses MAX3421e for the USB host.

Hasu_USB-USB_Converter

VIA Software Module

Arrived on Aliepress in Oct 2023. Pretty small size. Costs about $20.

photo_2023-10-22_07-25-53

Misc

STM32WB55

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.

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).

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):

CC254x

You can unofficially (licensing is expensive) code/program a keyboard using CC245x modules (same as used in HM-10/HM-11).

Video:

World's smallest keyboard

HHKB Pro 2 Wireless Mod

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).

zmk-nicenano-hhkb

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.

photo_2024-01-28_16-51-26 (3)

wireless controller rear view
photo_2024-01-28_16-51-26 photo_2024-01-28_16-51-26 (2)

HHKB Classic Wireless Mod

Something obscure from Taobao for HHKB Classic (two batteries, probably because there's no space for a single large battery).

board receiver front receiver back
294517086-92d8f751-ff6c-4950-b322-1c81fbd5d079 image image

Looks like they never managed to solder BT module to the existing spot and make it work. Too much reverse engineering.

Bluetosis

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.

bluetosis

Logitech Unifying Receiver

DISCLAIMER: I do not recommend any of that, there's ZMK dongle setup (nRF52-based) if you want a receiver for some reason.

Spindle

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.

image

Unigo66

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.

Unigo66 front view Unigo66 PCB
unigo-66 unigo66

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.

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.

Unigo66 vs Ergodox (picture)

Unigo66-thumbs

References

Clone this wiki locally