Skip to the content
PCBKitNew board
2 layers285.8 × 144.1 mmCqa02303v5rpi-01, the printed circuit board in 3D

Cqa02303v5rpi-01

cqa02303/hidloom

HIDloom programmable keyboard software and reproducible appliance image

Size
285.8 × 144.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
237
Nets
218
Pads
1,311
Tracks, vias
1,900, 349
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
15 Jul 2026
Updated
17 Oct 2026

Overview

Cqa02303v5rpi-01 is an open-source printed circuit board by cqa02303, from the cqa02303/hidloom repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 285.8 × 144.1 mm with 237 parts on 218 nets, routed with 1,900 tracks and 349 vias.

It is built around the 74AHC1G125GW, ADS1115IDGS and SK6812MINI-E, with the BAV70 and BAV99 among its other parts. Its parts include 119 diodes, 84 switches, 4 capacitors, 4 resistors and 3 connectors. It belongs with the keyboards and input boards of this library.

Main components

5

README

README.md

HIDloom

HIDloomは、Linux SBCをprogrammable keyboard applianceとして動かすsoftware projectです。GPIO matrix / charlieplex scan、USB HID gadget、BLE HID keyboard/mouse、Vial、HTTP UI、LED/OLED表示、analog stick、runtime keymapをまとめて扱います。cqa02303v5は最初のdevice profileです。

CQA02303v5 Keyboard

まず見る

インストール方式を選ぶ

公開 Release では、同じ source revision から作成した3つの構成を選べます。

方式適した用途配布物
Raspberry Pi OS KeyboardRaspberry Pi Zero 2 Wでの通常運用、開発、ネットワーク管理hidloom-core + keyboard-ver1 profileの.deb
Raspberry Pi OS Touch PanelRaspberry Pi 4 + Waveshare 8.8inch DSI touch kioskhidloom-core + touch-waveshare-8.8 profileの.deb
Buildroot M6 image高速起動する offline keyboard appliancehidloom-<version>-buildroot-m6.img.zst

選択基準、Release asset、導入手順: INSTALL.md。Zero 2 W向けのpackageとM6は Keyboard Package and M6 Imageにまとめています。

Keyboard Layout

KeySwitch Layouts

システム概要

現在の構成は、Raspberry Pi Zero 2 W を USB HID 複合デバイス兼 BLE HID keyboard/mouse として動かし、Vial GUI / HTTP UI / 実キー入力を logicd-core-rs / logicd-companion / hidloom-outputd の runtime keymap と output control plane に集約します。

HIDloom system overview

詳細: docs/architecture/system-overview.md

text
matrixd / httpd / i2cd / sendkey
        ↓
      logicd-core-rs + logicd-companion  ── keymap / layer / macro / output control
        ↓
      hidloom-outputd ── USB HID gadget / uinput
        └ logicd-companion ── BLE HID via btd
        ↓
PC / Linux input / log / Bluetooth host

主要 daemon:

daemon役割
matrixdGPIO matrix scan
hidloom-logicd-core / logicd-companionkeymap、layer、macro、HID report、output routing
hidloom-outputdnative output router。usb / uinput / bt / auto target へ broker frame を配送
hidloom-hiddUSB HID gadget owner、Raw HID / Vial packet bridge、LED OUT bridge
hidloom-uiddPi local console 用 uinput report sink。KC_CONSOLE の uinput target
usbdlegacy USB bridge / rollback path
vialdVial protocol、VialRGB、Matrix Test
httpdHTTPS UI、keymap editor、Lighting、Key Tester
i2cdOLED 表示、alert、analog stick 入力
leddLED animation / VialRGB direct control
btdBLE HID over GATT keyboard/mouse backend
spidSPI mouse sensor motion input

出力先の内部名と表示名:

内部名UI / OLED 表示意味
gadgetUSBUSB HID gadget
btBTBluetooth HID
uinputPiRaspberry Pi local input
debugDebugHID report log

商標

「QRコード」は株式会社デンソーウェーブの登録商標です。

HIDloomのOLED Web UI QR機能、表示仕様、権利関係の説明は OLED Web UI QRを参照してください。

Repository Layout

root 直下は、導入入口と主要 daemon の位置を見失わないための薄い入口として残しています。

Path役割
system/install/, system/systemd/install script 実体、systemd unit source
config/default/, config/boards/repository default config、board profile config
build/generated/, build/generators/tracked generated data、生成 helper
kicad/cqa02303v5rpi/編集可能なKiCad hardware source、回路図・PCB review PDF
dev/mcp/keyboard/Codex / MCP read-only keyboard diagnostics server
dev/mcp/keyboard_write/key tapと1位置keymap変更だけを許すguarded write companion
tools/実機操作、計測、手動 smoke helper
script/regression suite、install/systemd 直呼び helper、既存 live smoke 入口
daemon/logicd/, daemon/http/, daemon/matrixd/, daemon/i2cd/, daemon/ledd/, daemon/usbd/, daemon/viald/, daemon/btd/, daemon/spid/Python / native daemon 本体
setup_fresh_rpi.sh, setup_usb_gadget.sh, getkeymap.sh, setkeycode.shroot 互換 wrapper / 操作入口

導入

fresh Raspberry Pi OS では、まず project build を行わない platform 準備だけを実行します。

bash
sudo ./setup_fresh_rpi.sh --prepare-only

準備後の再起動が完了したら、x86_64 build host で作成した同じ version の hidloom-core と device profile package を同時に install し、profile を適用します。

bash
sudo apt-get install -y \
  /tmp/hidloom-core_<version>_arm64.deb \
  /tmp/hidloom-profile-keyboard-ver1_<version>_arm64.deb
sudo hidloom-profile keyboard-ver1 --apply --backup --restart

引数一覧は ./setup_fresh_rpi.sh --help で確認できます。引数なしの checkout bootstrap は 実機 native build と package 管理外 unit install を行う legacy/recovery path です。

方式の選択: INSTALL.md

詳しい Raspberry Pi OS 導入手順: FRESH_INSTALL.md

実機への反映

現在の標準反映手順は Debian package です。実機側 checkout での git pull や native build は通常運用では使いません。

標準キーボード構成では、同じ version の core package と device profile package を 同時に install し、profile を明示適用します。

bash
make core-deb-package
make keyboard-ver1-profile-deb
scp build/packages/hidloom-core_<version>_arm64.deb \
  build/packages/hidloom-profile-keyboard-ver1_<version>_arm64.deb \
  <user>@<keyboard-ip>:/tmp/
ssh <user>@<keyboard-ip> 'sudo apt-get install -y \
  /tmp/hidloom-core_<version>_arm64.deb \
  /tmp/hidloom-profile-keyboard-ver1_<version>_arm64.deb && \
  sudo hidloom-profile keyboard-ver1 --apply --backup --restart'

実際の package build / deploy / verify / rollback 手順は docs/ops/release-packaging-runbook.md を正とします。

Legacy / Recovery Deploy

checkout rsync、/opt release、pre-.deb layout は比較・復旧専用です。これらを使う場合も project binary は x86_64 build host で ARM64 cross-buildし、Raspberry Pi 実機では build しません。通常更新へ混在させず、先に dry-run と rollback path を確認します。

詳細は tools/package/README.md と release-packaging-runbook.md を参照してください。

動作確認

bash
systemctl status hidloom-usb-gadget hidloom-hidd hidloom-uidd hidloom-outputd hidloom-logicd-core logicd-companion matrixd i2cd ledd httpd viald btd --no-pager
systemctl is-active logicd usbd || true  # legacy/rollback owner は通常 inactive
ls -l /dev/hidg0 /dev/hidg1
test ! -e /dev/hidg2 || ls -l /dev/hidg2
test ! -e /dev/hidg4 || ls -l /dev/hidg4
journalctl -u viald -u logicd-companion -u hidloom-logicd-core -u hidloom-outputd -u hidloom-uidd -u btd -u ledd -u hidloom-hidd -n 200 --no-pager
curl -k -u admin:$(hostname) https://127.0.0.1/api/status

USB gadget の割り当て:

Device用途
/dev/hidg0Keyboard / Mouse / Consumer Control multi-report HID
/dev/hidg1Raw HID / Vial
/dev/hidg2Optional US sub keyboard HID
/dev/hidg4Optional Windows IME custom HID

現在含まれている主な機能

  • GPIO matrix scan によるキー入力
  • logicd-core-rs / logicd-companion による runtime keymap / layer / macro 処理
  • USB HID keyboard / mouse / consumer control
  • BLE HID over GATT keyboard/mouse backend
  • Vial Raw HID bridge
  • Vial GUI からの keymap 編集
  • .vil keymap export / import
  • VialRGB / LED direct control
  • HTTP UI による keymap 編集・Lighting 操作・Key Tester
  • OLED 表示 / alert 通知
  • analog stick 入力
  • sendkey.py による CLI キー入力
  • getkeymap.sh / setkeycode.sh による runtime keymap 操作
  • OutputRouter による gadget/uinput/bt/debug output backend モデル
  • debug output による HID report ログ確認
  • HTTP System panel からの Bluetooth Pair on/off
  • LED video demo 再生の実験機能

詳細情報

項目ドキュメント
詳細ドキュメント目次docs/README.md
導入方式の選択INSTALL.md
Raspberry Pi OSへの導入FRESH_INSTALL.md
リリース確認RELEASE_CHECKLIST.md
全体仕様・構成docs/architecture/README.md
方針・決定事項docs/policy/README.md
daemon / IPCdocs/daemon/README.md
keycode / QMK / Vial 互換docs/keycode/README.md
lighting / VialRGBdocs/lighting/README.md
Bluetooth / BLEdocs/bluetooth/README.md
MCP / Codex 診断docs/ops/keyboard-mcp-server.md
MCP guarded write companiondocs/ops/keyboard-write-mcp-server.md
MCP write-capable 境界設計docs/policy/mcp-write-capable-tool-design.md
Technical design backlogdocs/feature/design-todo-backlog.md
開発・貢献手順CONTRIBUTING.md
実機失敗パターンdocs/ops/failure-patterns.md
ドキュメント方針docs/policy/documentation-policy.md

よく使う補助コマンド

bash
./sendkey.py tap 0x04
./getkeymap.sh --pretty
./setkeycode.sh 7,0 KC_ESC
./script/showlog.sh -s all -f

詳細:

ドキュメント運用

README は概要と入口に留め、長い手順・プロトコル詳細・設計メモは docs/ 配下へ分割します。方針は docs/policy/documentation-policy.md を参照してください。

ライセンス

HIDloom自身のsource codeはGPL-3.0-or-laterで提供します。 著作権は個々のcontributorに残り、包括的な権利譲渡は求めません。公開上の表記と contribution条件はAUTHORS.mdとCONTRIBUTING.mdを参照してください。 Buildroot、Linux kernel、BusyBox、Python/Rust dependencies、KiCad library、画像などの 第三者componentにはそれぞれのライセンスが適用されます。第三者componentの一覧と 再配布条件の確認状況はTHIRD_PARTY_NOTICES.mdに生成します。 公開exportはCycloneDX 1.7 SBOM.cdx.jsonと全export fileのSHA-256 manifestも生成します。

Parts

237
QtyValueFootprintReferences
81SK6812MINIHF:YS-SK6812MINI-E_slimLED1, LED2, LED10, LED11, LED12, LED13, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23, LED24, LED25 +65
79SW_PUSHHF:hf_kbd_GateronKS33B_w_chocSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +63
38BAV70Package_TO_SOT_SMD:SOT-23D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D22, D23, D24 +22
10BAV99Package_TO_SOT_SMD:SOT-23BAV1, BAV2, BAV3, BAV4, BAV5, BAV6, BAV7, BAV8, BAV9, BAV10
7~HF:2mmScrew2mm1, 2mm2, 2mm3, 2mm4, 2mm5, 2mm6, 2mm7
3100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2, C4
22.2KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
2SW_PUSHHF:SW_V6x36x15SW55, SW90
2SW_PUSHHF:hf_kbd_kailh_hotswap_MXSW49, SW51
110uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3
1220-470Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6
13.3KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3
174AHC1G125HF:SOT23-5U2
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU1
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ1
1Conn_01x07_PinConnector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ3
1LOGOLOGOG***
1NetTie_2NetTie:NetTie-2_SMD_Pad0.5mmNT1
1Raspberry_Pi_4HF:Raspberry_Pi_Zero_Socketed_THT_FaceDown_MountingHolesJ2
1RotaryEncoderHF:MouseEncoderSW91
1~HF:OLEDOLED1
1~HF:AnalogJoyCon_cutScrewJOY1

Questions

How big is the Cqa02303v5rpi-01 PCB?

It measures 285.8 × 144.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Cqa02303v5rpi-01 use?

237 parts, built around the 74AHC1G125GW, ADS1115IDGS, SK6812MINI-E and BAV70. 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.

Where can I download the Cqa02303v5rpi-01 KiCad files?

From the cqa02303/hidloom repository on GitHub, at the commit this page was made from: the board is kicad/cqa02303v5rpi-01/cqa02303v5rpi-01.kicad_pcb and its schematic kicad/cqa02303v5rpi-01/cqa02303v5rpi-01.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Cqa02303v5rpi-01 design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers285.8 × 95.3 mmCqa02303v4 cad, the printed circuit board in 3D

    Cqa02303v4 cad

    cqa02303/cqa02303v4

    v4 keyboard config for vial

    260 partsGPL-3.0
  • 2 layers130 × 80 mmSmu main 1, the printed circuit board in 3D

    Smu main 1

    jaromir-sukuba/J-SMU

    DIY source-measure unit

    210 parts244
  • 2 layers92.5 × 71.5 mmAeris Lite, the printed circuit board in 3D

    Aeris Lite

    Fabiancrg/Aeris_Lite

    Air quality sensor (CO2, VOC, NOx, T and RH)

    46 parts
  • 2 layers57.3 × 78.2 mmMacro pad, the printed circuit board in 3D

    Macro pad

    poggersv2/macro-pad

    40 parts
  • 2 layers57.2 × 78.6 mmKeyboard, the printed circuit board in 3D

    Keyboard

    Yusufumben08/My-macropad

    first electronics project. I found this last second so i couldnt do much more than this because of the time constraint. Made in 5 hours.

    30 parts
  • 4 layers192.5 × 80 mmPlugInDC Load, the printed circuit board in 3D

    PlugInDC Load

    janni0609/DC-Load

    A programmable DC electronic load built on the Raspberry Pi Pico 2 (RP2350). It sinks a user-defined current from a DC source under test and measures voltage, current, power, capacity, and energy in real time on a…

    525 parts
  • 2 layers84.5 × 94.5 mmLandyGauge, the printed circuit board in 3D

    LandyGauge

    paulrbarnard/LandyGauge

    Open-source ESP32-S3 vehicle instrument gauge

    129 parts
  • 2 layers137.1 × 85 mmWombat2, the printed circuit board in 3D

    Wombat2

    Rollpopptery/wombat2

    Wombat2 Pulse Induction Metal detector

    134 parts