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

Power button + Bluetooth controller wake-up for the AMD BC-250 on SteamOS: Raspberry Pi Pico 2 W firmware, PCB (KiCad + Gerbers) and perfboard build.
Bc250 power is an open-source printed circuit board by Dkhanas, from the Dkhanas/bc250-power-controller repository on GitHub. It is a 2-layer board of 57.5 × 72 mm with 15 parts on 13 nets, routed with 44 tracks and 0 vias.
Its parts include 5 connectors, 3 resistors, 1 IC, 1 diode and 1 transistor. It belongs with the radio and wireless boards and the RP2350 boards of this library.
A small board that gives an AMD BC-250 (running SteamOS) a real power button and Bluetooth controller wake-up. A Raspberry Pi Pico 2 W sits on the ATX power supply's 5 V standby rail and:
http://bc250.local): power on, shut down, your controllers
with battery, pair new ones, forget old ones. Home Assistant via MQTT (separate firmware file). Set up from your phone in a minute.
Wi-Fi runs only when you want it: on request (default), only while the console is off, always, or never| Printed board (PCB v12) | Test board (perfboard) |
|---|---|
![]() | ![]() |
| Folder | What |
|---|---|
firmware/ | Pico 2 W firmware (C, Pico SDK 2.3.1 + Bluepad32). Ready-to-flash file in firmware/release/ |
pcb/ | Printed board, v12: KiCad project, Gerbers for JLCPCB / PCBWay / Aisler, notes |
perfboard/ | Test board on a 70×90 mm perfboard: hole-by-hole map |
.github/workflows/ | Automatic firmware build on GitHub; a version tag (v8) publishes a Release with both .uf2 files |
docs/ | Build plan (wiring to the BC-250, SteamOS settings, mounting) and pin drawings of every connector |
CHANGELOG.md | Release notes: what's new, fixed and known issues in each firmware and PCB version |
bom.csv | Parts list for both boards (opens in Excel; GitHub shows it as a table) |
firmware/release/bc250_power_v8.uf2 onto the RP2350 drive
(or bc250_power_v8_ha.uf2 if you use Home Assistant).HandlePowerKey=poweroff.docs/build-plan.md (Pico GP15 -> PSU, GP17 <- button, GP16 -> LED, GP2 <- TPM pin 9).
Pin drawings of every connector (BC-250 J4003 / TPMS1, ATX, board headers, Pico): docs/pinout.md.BC250-setup; the setup page opens by itself. Pick your network, type its password, done. Then open
http://bc250.local and Add to Home Screen. Wi-Fi switches itself off when unused (Settings → "Wi-Fi is on").Testing status
BC250-setup; someone nearby could set it up first.
bc250.local doesn't open on some Android phones: use the Pico's address from your router. Without a PIN (pin 1234), anyone on your
network can use the web page's buttons.sudo cat /dev/ttyACM0) shows which one happened.pcb/README.md).
Check the first board with a multimeter before connecting the PSU (see pcb/README.md).Controllers
Power and shutdown
HandlePowerKey=poweroff. Gaming mode or an
inhibitor can swallow it; then press again, or hold 5 s.Hardware
USE_VBUS_SENSE 0 in firmware/src/config.h.USE_VBUS_SENSE 1).| Version | Date | |
|---|---|---|
| Firmware | v8 – Wi-Fi phone page (setup from the phone, controller list, pairing, forget) + Home Assistant, low-battery warning, pairing window, key guard, Bluetooth repair, event log | 2026-11-06 |
| PCB | v12 – v9 ATX pin order (confirmed with the real PSU cable) + gaps between the front headers | 2026-11-06 |
| Perfboard map | v16 (ATX header mirrored – wire it by wire colour) | 2026-10-18 |
Building: bash firmware/build.sh (library versions pinned in firmware/deps.env), or download the .uf2 from
GitHub (Actions / Releases).
Release notes for every version: CHANGELOG.md. Technical details: firmware/README.md, pcb/README.md.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 10k | R2_10k | R2 |
| 1 | 1N5819 | D1_1N5819 | D1 |
| 1 | 1k | R1_1k | R1 |
| 1 | 220R | R3_220R | R3 |
| 1 | 2N2222 | Q1_2N2222 | Q1 |
| 1 | ATX24 | J5_ATX24 | J5 |
| 1 | BUTTON | J1_BUTTON | J1 |
| 1 | FAN2 | J3_FAN2 | J3 |
| 1 | J4003 | J4_J4003 | J4 |
| 1 | M3 | H1_M3 | H1 |
| 1 | M3 | H4_M3 | H4 |
| 1 | M3 | H2_M3 | H2 |
| 1 | M3 | H3_M3 | H3 |
| 1 | Pico2WH | U1_Pico2WH | U1 |
| 1 | TPM9 | J2_TPM9 | J2 |
It measures 57.5 × 72 mm and has 2 copper layers, 1.6 mm thick.
15 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 Dkhanas/bc250-power-controller repository on GitHub, at the commit this page was made from: the board is pcb/kicad/bc250_power.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 Dkhanas before reusing the design.

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

hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

mntmn/amiga2000-gfxcard
MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

kenp-io/not-for-airpods-repairs
The content of this repository is licensed under the WTFPL License. Please have a close look at the terms before using this material.

Luos-io/luos_engine
Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

Chrismettal/EleLab_v2
Cheap DIY lab system for hobbyists and the tinkering folk
