Which ESP32-S3 board for keeBLEr?
Development draft. Not tested against our stocked units. This note describes the linked project and source documents. Check the exact board, firmware and hardware before trying it; it does not establish compatibility of a product we sell.
keeBLEr needs very little: one ESP32-S3 board with native USB, a cable, and a Chromium browser on the computer you type from.1 Its guide lists four boards known to work, plus a generic build for any other ESP32-S3 with native USB. They all run the same firmware, so the choice comes down to size, ports, and what you want to see while it runs.
Why native USB matters
keeBLEr’s firmware takes key and mouse events from the browser over Bluetooth LE and hands them to the ESP32-S3’s own USB controller, which sends them to the target exactly as a keyboard or mouse would.2 That only works if the board wires the chip’s native USB to a connector. Native USB is what lets a board act as a keyboard, with no USB-to-serial converter in the way.3 A port that goes through a USB-to-UART bridge is for flashing and a serial console.4
The four boards
| Board | USB | Flash / PSRAM | keeBLEr build |
|---|---|---|---|
| ESP32-S3-DevKitC-1 (N8R8)4 | two ports: native USB, and a USB-to-UART bridge | 8 MB / 8 MB | default |
| Seeed XIAO ESP32S35 | USB-C | 8 MB / 8 MB | -DKEEBLER_BOARD=xiao |
| Adafruit QT Py ESP32-S3, no PSRAM3 | USB-C | 8 MB / none | -DKEEBLER_BOARD=qtpy |
| ESP32-S3 SuperMini6 | USB-C | usually 4 MB / 2 MB; varies by factory | -DKEEBLER_BOARD=supermini |
The build flags are from the guide’s flashing page.7
Which one
To work on the firmware: the ESP32-S3-DevKitC-1. It’s keeBLEr’s default build, and it has two USB ports: one to the ESP32-S3’s native USB, which becomes the keyboard, and one through a USB-to-UART bridge for flashing and a serial console.4 The guide’s summary is that two USB ports make development easy, and it calls the other three boards tiny.1 This one is a full development board, with every free GPIO on two rows of pin headers, and Espressif’s guide calls for a Micro-USB cable (Standard-A to Micro-B).4
To hide it inside something: the XIAO ESP32S3 or the QT Py ESP32-S3. Both are thumbnail-sized: 21 × 17.8 mm for the XIAO, and 21.7 × 17.8 × 5.7 mm for the QT Py.53 Adafruit made the QT Py’s pinout and shape match the XIAO’s, so they fit the same footprint.3 The differences:
- The XIAO has 8 MB of PSRAM; this QT Py has none.53 The core bridge doesn’t need it: the no-PSRAM QT Py is on keeBLEr’s list of boards that work.1
- The QT Py has an RGB NeoPixel, and a STEMMA QT connector for plug-in I2C parts.3 keeBLEr doesn’t need the connector, but your next project might.
- The boards have different battery arrangements.53 Battery wiring and charging are outside this USB-only comparison; do not treat matching size or pin placement as a compatible battery connection.
- One quirk from the guide: if a XIAO shows up as
303a:1001right after flashing, unplug it and plug it back in.7
To see what it’s doing: the ESP32-S3 SuperMini. keeBLEr uses its RGB LED as a status light: blue for Bluetooth, and a brief magenta pulse about every five seconds once the target has mounted the USB device.8 It’s close to the XIAO in size: 23.5 × 18 mm by espboards.dev’s figure, 22.5 × 18 mm by the keeBLEr guide’s.61
The catch is that the SuperMini has no single maker. Most are built on the ESP32-S3FH4R2, which has 4 MB of flash and 2 MB of PSRAM inside the chip, but they come from many factories, so check the chip marking on the one you get.6 This source-based comparison does not confirm the chip, memory or dimensions of our stock.
Something else? Any other ESP32-S3 with native USB runs the generic build, which makes no assumptions about LEDs or buttons.1
Whichever you pick
- Use a data cable. Some USB cables only carry power, and a board on one of those never shows up.4
- Flash it from the browser. The keeBLEr flasher writes the firmware over USB from Chrome, with no toolchain to install. To get the board into its bootloader, hold BOOT, press and release RESET, then release BOOT.7
- Unplug it when you’re done. keeBLEr’s Bluetooth link has no pairing step, so while no browser is connected, any nearby Bluetooth LE device can connect and type into the computer it’s plugged into.9
Sources
Read 10 October 2026.
- keeBLEr guide: What you need (bricoleur.ai)
- keeBLEr guide: How it works (bricoleur.ai)
- Adafruit QT Py ESP32-S3 WiFi Dev Board with STEMMA QT, 8 MB Flash / No PSRAM (Adafruit product 5426)
- ESP32-S3-DevKitC-1 v1.1 user guide (Espressif)
- Getting started with Seeed Studio XIAO ESP32S3 (Seeed Studio wiki)
- ESP32-S3 Super Mini (espboards.dev), a reference site; the board has no single maker
- keeBLEr guide: Flash the firmware (bricoleur.ai)
- keeBLEr guide: Modes and the button (bricoleur.ai)
- keeBLEr guide: Connect and type (bricoleur.ai)