
Open micro top
TomBonness/open-micro
Open-source USB/BLE desktop programming controller with RGB status integration

Open-source USB/BLE desktop programming controller with RGB status integration
Open micro sister is an open-source printed circuit board by TomBonness, from the TomBonness/open-micro repository on GitHub. It is a 4-layer board of 91 × 91 mm with 93 parts on 77 nets, routed with 1,317 tracks and 134 vias.
It is built around the E73-2G4M08S1C, BQ24074RGTR and SN74AHCT1G125DBVR(UMW), with the EVQP7A01P, PCM12SMTR and S2B-PH-K-S(LF)(SN) among its other parts. Its parts include 30 capacitors, 17 resistors, 9 diodes, 6 ICs and 3 connectors. It belongs with the radio and wireless boards of this library.
Open Micro is an original open-source 96 × 96 mm desktop programming controller. Its industrial stack uses a CNC 6061-T6 aluminum bottom, a continuous neutral-frosted polycarbonate light-carrying wall, and a matte-black control PCB as the exposed structural top. A lower sister PCB carries the MCU, power, USB, RF, and eight hidden wall emitters.
This repository describes an unqualified two-board first article. Automated source, protocol, host, firmware, fabrication, CAD, collision, and artifact checks are design evidence only. No fabricated unit has completed docs/qualification.md; do not represent the design as production-qualified.
Build the host tools, then run the simulator and daemon in separate terminals:
cd host
cargo build --locked --workspace
./target/debug/open-micro-simcd host
./target/debug/open-microd --transport sim
./target/debug/open-microctl doctor
./target/debug/open-microctl led set agent-1 --effect breathe --primary '#4D8DFF' --period 1400 --ttl 15The simulator device endpoint is 127.0.0.1:47950; its control endpoint is 127.0.0.1:47951. The daemon creates a private local socket at $TMPDIR/open-micro-$UID.sock on macOS, $XDG_RUNTIME_DIR/open-micro.sock on Linux when available, and \\.\pipe\open-micro on Windows.
python3 protocol/generate.py --check
python3 hardware/generate.py --check
python3 hardware/check.py
python3 firmware/check.py
cargo test --manifest-path host/Cargo.toml --workspace
python3 hardware/export.py --output hardware/generated/fabrication-release
.venv-cad/bin/python mechanical/export.py --output mechanical/generatedThe hardware export contains independent top/ and sister/ manufacturing jobs. The mechanical export contains aluminum-bottom and frosted-wall production solids, two PCB envelopes, vendor keycap fit references, a validated full assembly, GLB/3MF, and 2200 × 1600 hero/cutaway renders. Vendor keycap references are not printable production keycaps.
| Path | Purpose |
|---|---|
protocol/ | Canonical 20-byte device protocol 1.1, local IPC schema, generator, and fixtures |
hardware/ | Two-board KiCad sources, electrical/interconnect manifests, routes, fabrication exporter, and checks |
firmware/ | Pinned ZMK board/shield, Open Micro module, tests, and UF2 bootloader configuration |
host/ | Rust protocol crate, daemon, CLI, and simulator |
integrations/omp/ | OMP lifecycle, command-light, selection, and encoder-thinking adapter |
integrations/generic/ | Standalone newline-delimited JSON state producer |
mechanical/ | Shared enclosure/board stack contract, CadQuery sources, production exporter, and checks |
docs/ | Assembly, flashing, setup, SDK, inspection, and first-article qualification |
releases/ | Deterministic versioned release builder |
docs/assembly.md — dual-board ordering, vendor keycaps, and plate-free physical assembly.docs/flashing.md — initial SWD recovery, UF2 updates, ZMK, pairing, and encoder bond recovery.docs/setup.md — daemon, CLI, simulator, platform permissions, and OMP installation.docs/sdk.md — local IPC and raw protocol 1.1 contracts.docs/inspection.md — electrical, optical, mechanical, RF, and control inspection.docs/qualification.md — explicitly unperformed first-article evidence gate.The first article uses provisional USB identity 0x1209:0x4D50, device protocol 1.1, vendor HID report ID 5, and BLE name Open Micro. The VID/PID is not an assigned production identity. Obtain an appropriate assignment before distribution and change only the canonical protocol manifest before regenerating every consumer.
Hardware and mechanical sources: CERN-OHL-S-2.0. Software: Apache-2.0. Documentation: CC-BY-4.0. Third-party notices remain under LICENSES/ and generated release notices. See LICENSE, NOTICE, and REUSE.toml.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 100nF | Capacitor_SMD:C_0402_1005Metric | C12, C13, C15, C18, C19, C20, C34, C36, C37, C38, C39, C40, C41, C42, C43 |
| 8 | SK6812MINI-E side-facing | OpenMicro:SK6812MINI-E_SideEmitter | D14, D15, D16, D17, D18, D19, D20, D21 |
| 4 | M2 mounting hole | MountingHole:MountingHole_2.4mm_M2 | H1, H2, H3, H4 |
| 2 | 4.7uF SYS | Capacitor_SMD:C_0402_1005Metric | C5, C17 |
| 1 | 100k CHG pullup | Resistor_SMD:R_0402_1005Metric | R10 |
| 1 | 100k NPN off | Resistor_SMD:R_0402_1005Metric | R13 |
| 1 | 100k PGOOD pullup | Resistor_SMD:R_0402_1005Metric | R11 |
| 1 | 100k PNP off | Resistor_SMD:R_0402_1005Metric | R15 |
| 1 | 100k boost low | Resistor_SMD:R_0402_1005Metric | R17 |
| 1 | 10k EN1 default | Resistor_SMD:R_0402_1005Metric | R12 |
| 1 | 10k TS | Resistor_SMD:R_0402_1005Metric | R5 |
| 1 | 10nF Cs | Capacitor_SMD:C_0402_1005Metric | C14 |
| 1 | 10uF VDD | Capacitor_SMD:C_0402_1005Metric | C8 |
| 1 | 12pF feed-forward | Capacitor_SMD:C_0402_1005Metric | C11 |
| 1 | 1M battery high | Resistor_SMD:R_0402_1005Metric | R6 |
| 1 | 1uF SYS | Capacitor_SMD:C_0402_1005Metric | C4 |
| 1 | 1uF touch | Capacitor_SMD:C_0402_1005Metric | C16 |
| 1 | 20pF XL1 | Capacitor_SMD:C_0402_1005Metric | C6 |
| 1 | 20pF XL2 | Capacitor_SMD:C_0402_1005Metric | C7 |
| 1 | 22uF SYS | Capacitor_SMD:C_1206_3216Metric | C3 |
| 1 | 22uF SYS bulk | Capacitor_SMD:C_1206_3216Metric | C31 |
| 1 | 22uF boost in | Capacitor_SMD:C_1206_3216Metric | C9 |
| 1 | 22uF boost out | Capacitor_SMD:C_1206_3216Metric | C10 |
| 1 | 3.16k 1% ILIM | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 3.6k 1% ISET | Resistor_SMD:R_0402_1005Metric | R3 |
| 1 | 330R RGB | Resistor_SMD:R_0402_1005Metric | R9 |
| 1 | 330k battery low | Resistor_SMD:R_0402_1005Metric | R7 |
| 1 | 4.7k touch series | Resistor_SMD:R_0402_1005Metric | R8 |
| 1 | 4.7uF BAT local | Capacitor_SMD:C_0402_1005Metric | C35 |
| 1 | 4.7uF VBUS local | Capacitor_SMD:C_0402_1005Metric | C1 |
| 1 | 47k USB auto base | Resistor_SMD:R_0402_1005Metric | R14 |
| 1 | 5.1k CC1 | Resistor_SMD:R_0402_1005Metric | R1 |
| 1 | 5.1k CC2 | Resistor_SMD:R_0402_1005Metric | R2 |
| 1 | 5V_LED | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT5 |
| 1 | 750k boost high | Resistor_SMD:R_0805_2012Metric | R16 |
| 1 | AT42QT1010-TSHR | Package_TO_SOT_SMD:SOT-23-6 | U5 |
| 1 | BAT | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT6 |
| 1 | BC856A PNP | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | BQ24074RGTR | Package_DFN_QFN:VQFN-16-1EP_3x3mm_P0.5mm_EP1.68x1.68mm | U2 |
| 1 | CHG_SYS | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT2 |
| 1 | DF40HC(4.0)-24DP-0.4V(51) | OpenMicro:DF40HC-4.0-24DP-0.4V_24 | JBOT |
| 1 | E73-2G4M08S1C | OpenMicro:E73-2G4M08S1C | U1 |
| 1 | ENCODER_GROUP | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT14 |
| 1 | EVQP7A01P | OpenMicro:EVQP7A01P | SW14 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT7 |
| 1 | MMBT3904 NPN | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | MX_GROUP | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT13 |
| 1 | NLCV32T-100K-EF 10uH | Inductor_SMD:L_1210_3225Metric | L1 |
| 1 | PCM12SMTR | Button_Switch_SMD:SW_SPDT_PCM12 | SW13 |
| 1 | Q13FC13500004 32.768kHz | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1 |
| 1 | RESET | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT8 |
| 1 | RGB_DATA | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT11 |
| 1 | RGB_RETURN | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT12 |
| 1 | S2B-PH-K-S(LF)(SN) | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J2 |
| 1 | SMD1206P075TF | Fuse:Fuse_1206_3216Metric | F1 |
| 1 | SN74AHCT1G125DBVR | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | SWCLK | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT10 |
| 1 | SWDIO | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT9 |
| 1 | SYS_SW | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT3 |
| 1 | TC2030-NL | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical | J3 |
| 1 | TOUCH_OUT | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT15 |
| 1 | TPS22919DCKR | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U6 |
| 1 | TPS61023DRLR | Package_TO_SOT_SMD:SOT-563 | U3 |
| 1 | TYPE-C-31-M-12 | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | D22 |
| 1 | VBUS | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT1 |
| 1 | VDD | TestPoint:TestPoint_Pad_D1.0mm | TP_BOT4 |
| 1 | XAL4020-102MEC 1uH | OpenMicro:XAL4020 | L2 |

TomBonness/open-micro
Open-source USB/BLE desktop programming controller with RGB status integration
zgeez/Pixel-Badge
Wearable 32x32 LED badge with Zephyr firmware, BLE control, passive NFC, and a Flutter Android app, built around a custom nRF52840 PCB.

kartben/hw-testing-rack
3D-printed, tilted test shelf for 16 dev boards: sliding drawers, per-bay ESP32-S3 running Zephyr (USB/IP, power switching, metering), KiCad PCBs, OpenSCAD parts, BOM and an interactive 3D viewer

danieltyukov/owltunes
Owl-shaped Spotify remote for your desk and pocket: ESP32-S3 firmware, LVGL UI, KiCad PCB, 3D-printed enclosure, and owl v0 on the Waveshare AMOLED kit


laforestlabs/KiCraft
KiCad PCB automation toolkit — placement, routing, scoring, and experiment management

Raphi25/Camera-Project
This project investigates the development of a low-cost wearable camera system intended to support caregivers by capturing images throughout the wearer's daily life.

noellayang/chipsat-v1
Custom ESP32-C3 power-management testbed for small satellite firmware experiments

It measures 91 × 91 mm and has 4 copper layers, 1.6 mm thick.
93 parts, built around the E73-2G4M08S1C, BQ24074RGTR, SN74AHCT1G125DBVR(UMW) and EVQP7A01P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the TomBonness/open-micro repository on GitHub, at the commit this page was made from: the board is hardware/kicad/open-micro-sister.kicad_pcb and its schematic hardware/kicad/open-micro-sister.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask TomBonness before reusing the design.