
Base
google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards

Core-W is a wireless 3×3 macropad with one rotary encoder and RGB underglow support. It runs custom firmware and software on an ESP32-S3 module with BLE HID and BLE GATT support.
Core w pcb is an open-source printed circuit board by lunacrest01, from the lunacrest01/core-macropad repository on GitHub. It is a 2-layer board of 48 × 54 mm with 43 parts on 25 nets, routed with 237 tracks and 19 vias.
Core
Core-W is a wireless 3×3 macropad with one rotary encoder and RGB underglow support. It runs custom firmware and software on an ESP32-S3 module with BLE HID and BLE GATT support.
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
FEATURES
• 9 mechanical switches
• 1 rotary encoder
• RGB underglow lighting
• BLE HID/GATT
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
CAD
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
PCB
The PCB manages the switch and encoder matrix, controls the RGB features, and handles battery charging.
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
HANDWIRING
The columns of the switches need to be hand-wired, while the encoder and the switch rows will be connected individually on the PCB.
Wiring Guide
Encoder A → GPIO10 B → GPIO12
Matrix (Keypad) Rows:
Row 1 → GPIO1
Row 2 → GPIO2
Row 3 → GPIO3
Columns:
Col 1 → GPIO7
Col 2 → GPIO8
Col 3 → GPIO9
RGB DIN (D1) → GPIO4
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
OVERVIEW
Core-W is a wireless 3×3 macropad featuring a rotary encoder and RGB underglow. Powered by the ESP32-S3 microcontroller, it is designed to support BLE HID and BLE GATT for wireless communication, running on custom-developed firmware and software
When transitioning the device to wireless functionality, two main firmware options were considered ZMK and RMK
ZMK requires reserving a key for the studio interface and currently lacks proper support for encoders and reactive RGB lighting
RMK presents similar limitations, particularly in encoder functionality and advanced RGB features
Due to these constraints, I decided to develop my own firmware and software to fully leverage the hardware capabilities of the Core-W
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
Idea / Approach • Send key inputs to the host using BLE HID • Receive data for live key remapping • Communication can be done using BLE GATT services or USB
⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻⸻
HOW TO USE
Enter Flash Mode: Connect your ESP32-S3 to your computer. Press and hold the BOOT button, then press and release the RESET button. Finally, release the BOOT button. The device is now ready to receive new firmware.
Select Board in Arduino IDE: Open the Arduino IDE. Go to Tools > Board > Board Manager, search for and install the ESP32 platform if you haven't already. Then, navigate to Tools > Board > ESP32 Arduino and select the "ESP32S3 Dev Module" .
Customize Your Layout: To modify the key functions, open the keymap.cpp file in the Arduino IDE. Edit the keymap array to assign the desired keystrokes or actions to each key and encoder. Upload the sketch to your device.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 |
The 1 most common of 43 parts.
It measures 48 × 54 mm and has 2 copper layers, 1.6 mm thick.
43 parts. 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 lunacrest01/core-macropad repository on GitHub, at the commit this page was made from: the board is production/PCB/wireless/core-w pcb.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask lunacrest01 before reusing the design.

google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards

rusefi/rusefi
rusefi - GPL internal combustion engine control unit


jrsteensen/OpenHornet
OpenHornet 1:1 F/A-18C Simulator Repository


tebl/RC6502-Apple-1-Replica
An expandable SBC-version of the Apple 1 computer, easy to get started with and lot of cool stuff that can be added to it!

nodestark/mdb-esp32-cashless
ESP32-based MDB cashless device for vending machines, supporting EVA DTS DEX/DDCMP telemetry and payments over the MDB protocol via Bluetooth and MQTT

zynthian/zynthian-hw
Zynthian hardware stuff: PCBs, schemes, parts specifications, pin assignment, ...