
Rp3a0-mini
CopperPilot/rpi-zero-2w-kicad
KiCad port of jonny12375/rp3a0: Raspberry Pi Zero 2W's RP3A0 on a Pi Pico-sized board

open source 32 key/half (64 total) analog TMR split ortholinear keyboard w/ 8kHz USB HS
TMR2615F osu pad is an open-source printed circuit board by dubnubdubnub, from the dubnubdubnub/Giris repository on GitHub, published under the Apache-2.0 licence. It is a 4-layer board of 149.9 × 152.5 mm with 168 parts on 118 nets, routed with 1,766 tracks and 636 vias.
It is built around the AT32F405RBT7-7, SK6812MINI-E and SRV05-4A, with the LM66100DCK, PESD5V0R1BSFYL and TMUX1574RSVR among its other parts. Its parts include 56 capacitors, 34 resistors, 25 ICs, 9 connectors and 8 switches. It belongs with the keyboards and input boards of this library.
An open source 32 key/half (64 total) analog TMR split ortholinear keyboard & 6 key macropad/dev board (hw/TMR2615F_osu_pad).
Layout is similar to Keeb.io Iris with an extra column. Uses TMR2615F, 4:8 TMUX1574RSVR mux, & AT32F405. Link is UART over type-c cable.
There are 3 unique modes of operation:
Done by Human:
hw/ — KiCad schematics and layout. TMR2615F_osu_pad is the 6-key development board the
firmware is brought up on; giris is the full-size split.mech/ — plates and frames.Done by LLM + Human:
fw/ — firmware, written from scratch in C on the Artery BSP with TinyUSB. 8 kHz USB HS polling,
8 kHz inter-half link. Host tools and a WebHID configurator live in fw/tools/.
PDFs:
docs/photos/The schematic PDFs draw the per-key sheet once and list each key's designators at the end;
regenerate them with hw/tools/sch_pdf.py.
This repo uses git submodules for its shared footprint/3D-model library (hw/library) and hw/marbastlib. The 3D bodies will not appear in KiCad's 3D viewer unless the submodules are checked out; .step files live in hw/library/packages3d/.
Clone with submodules:
git clone --recurse-submodules https://github.com/dubnubdubnub/Giris.gitIf you already cloned without --recurse-submodules, initialize them after the fact:
git submodule update --init --recursiveNote:
hw/marbastlibmay print an error while recursing into a nested.historysubmodule. That is harmless — it is upstream and holds no 3D models the boards need.
Footprint 3D bodies resolve from three locations:
${KICAD10_3DMODEL_DIR}/… — the standard models shipped with KiCad.${KIPRJMOD}/../library/packages3d/… — this repo's hw/library submodule (must be checked out; see Setup).When adding new 3D models to a board, reference them with one of the path variables above rather than a bare relative path (e.g. ../../packages3d/…), so they resolve regardless of where the repo is cloned.
Giris uses two licences:
| What | Licence | File |
|---|---|---|
| Firmware, host tools, web configurator, docs | Apache-2.0 | LICENSE |
Hardware — schematics, PCB, magnet models (hw/) | CERN-OHL-P v2 | hw/LICENSE |
Both are permissive: use it, change it, build it, sell it, no obligation to publish your changes. Apache-2.0 additionally carries an explicit patent grant. CERN-OHL-P is the hardware equivalent — software licences are written about copying source, not about manufacturing a board.
New source files should carry an SPDX header:
/* SPDX-License-Identifier: Apache-2.0
* Copyright 2026 Isaac Chiu
*/THIRD_PARTY.md is the full inventory; NOTICE
carries the attributions that must accompany a distributed binary.
The short version: TinyUSB (MIT) and the ArteryTek BSP are fetched at build time
by fw/tools/fetch-deps.sh and are not in this repository, though both are linked
into firmware binaries. Three Artery-derived files are committed — the startup
file, the linker script and at32f402_405_conf.h — and keep Artery's notice
rather than Giris'. Note that Artery ships two licence statements that disagree;
THIRD_PARTY.md explains which one to rely on.
Giris is written from scratch. libhmk, minipad, DeskHop and the VIA app are GPL-3.0; QMK, vial-qmk and Keychron's fork are GPL-2.0. All were read as references and no source file was ever pasted out of any of them. That is a deliberate, ongoing constraint, not an accident — copying so much as a descriptor struct would make this firmware copyleft.
This matters most for the USB XUSB (Xbox controller) interface, where both reference implementations — libhmk and Keychron's QMK fork — are copyleft. Write it from Microsoft's own specification instead:
[MS-XUSBI] — Xbox Universal Serial Bus Protocol (XUSB) Interface Extension https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-xusbi/c79474e7-3968-43d1-8d2f-175d47bef43e
It gives the class triple and the 20-byte report normatively, and its Open
Specifications notice explicitly permits copying the documentation in order to
build implementations of it. THIRD_PARTY.md records the
limits of that permission — notably that no patent grant is established.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 22 | CL05B104KB54PNC | Capacitor_SMD:C_0402_1005Metric | C11, C19, C23, C25, C26, C27, C28, C29, C30, C35, C36, C39, C40, C43, C44, C47 +6 |
| 22 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP1, TP2, TP3, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19, TP20, TP21, TP22 +6 |
| 15 | 0402WGF5101TCE | Resistor_SMD:R_0402_1005Metric | R8, R12, R13, R15, R17, R18, R19, R20, R22, R29, R30, R31, R32, R33, R34 |
| 12 | 0402CG300J500NT | Capacitor_SMD:C_0402_1005Metric | C15, C16, C17, C18, C31, C32, C33, C37, C41, C45, C49, C53 |
| 8 | 0402WGF1002TCE | Resistor_SMD:R_0402_1005Metric | R1, R2, R4, R5, R6, R9, R10, R28 |
| 7 | CL10B332KB8NNNC | Capacitor_SMD:C_0603_1608Metric | C10, C34, C38, C42, C46, C50, C54 |
| 7 | SK6812MINI-E | LED__C:LED-SMD_4P-L3.2-W2.8-LS5.9_SK6812MINI-E | U12, U14, U16, U18, U20, U22, U24 |
| 6 | 0402WGF1200TCE | Resistor_SMD:R_0402_1005Metric | R3, R7, R14, R16, R21, R27 |
| 6 | CL21A226MAQNNNE | Capacitor_SMD:C_0805_2012Metric | C1, C2, C3, C4, C5, C6 |
| 6 | CPG151101S11-16 | HOTSWAP__C:SMD_KEYBOARD-SW | SW3, SW4, SW5, SW6, SW7, SW8 |
| 6 | TMR2615F-AAC-1.500-500 | Sensor_Motion__C:DFN3L(1.6x1.6x0.5) | U13, U15, U17, U19, U21, U23 |
| 5 | CL21A106KAYNNNE | Capacitor_SMD:C_0805_2012Metric | C7, C12, C13, C20, C21 |
| 3 | Fiducial | Fiducial:Fiducial_1mm_Mask2mm | FID1, FID2, FID3 |
| 3 | LOGO | LOGO | G***, G***, G*** |
| 3 | MountingHole_Pad | MountingHole:MountingHole_2.2mm_M2_Pad_Via | H1, H2, H3 |
| 3 | SRV05-4A | Diode__C:SOT-23-6 | U1, U5, U9 |
| 3 | TYPE-C-31-M-12 | Connector_USB__C:USB-C_SMD-TYPE-C-31-M-12_1 | J1, J2, J3 |
| 2 | 0402WGF3300TCE | Resistor_SMD:R_0402_1005Metric | R23, R24 |
| 2 | CL05A105KA5NQNC | Capacitor_SMD:C_0402_1005Metric | C14, C22 |
| 2 | KT-0603W | LED__C:LED0603-R-RD_WHITE | LED1, LED2 |
| 2 | LM66100DCK | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U2, U7 |
| 2 | PESD5V0R1BSFYL | Diode__C:SOD-962_L0.6-W0.3-BI | U25, U26 |
| 2 | SKSGPAE010 | Switch__C:SW-SMD_SKSGAAE010 | SW1, SW2 |
| 1 | 0402WGF1202TCE | Resistor_SMD:R_0402_1005Metric | R25 |
| 1 | 0402WGF2202TCE | Resistor_SMD:R_0402_1005Metric | R11 |
| 1 | 0402WGF3301TCE | Resistor_SMD:R_0402_1005Metric | R26 |
| 1 | 1N4148WS_T4 | Diode_SMD:D_SOD-323_HandSoldering | D1 |
| 1 | AP22653W6-7 | Power_Switch__C:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BR | U3 |
| 1 | AT32F405RBT7-7 | MCU_Artery__C:LQFP-64_L7.0-W7.0-P0.40-LS9.0-BL | U10 |
| 1 | CL10A475KO8NNNC | Capacitor_SMD:C_0603_1608Metric | C24 |
| 1 | CL21A476MQYNNNE | Capacitor_SMD:C_0805_2012Metric | C9 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J8 |
| 1 | Conn_01x06 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J7 |
| 1 | Conn_01x10 | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J5 |
| 1 | Conn_01x23 | Connector_PinHeader_2.54mm:PinHeader_1x23_P2.54mm_Vertical | J6 |
| 1 | GZ1608D601TF | Inductor_SMD:L_0603_1608Metric | L1 |
| 1 | TMUX1574RSVR | MUX__C:UQFN-16_L2.6-W1.8-P0.40-BL | U11 |
| 1 | TPS7A4700 | Regulator_Linear__C:VQFN-20_L5.0-W5.0-P0.65-TL-EP | U4 |
| 1 | X322512MSB4SI | Oscillator__C:X322512MSB4SI | X1 |
| 1 | XC6206P332MR | Regulator_Linear__C:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR | U8 |
| 1 | XY-SH1_0-4A61 | Connector_SH1.0__C:CONN-SMD_4P-P1.00_XYECONN_XY-SH1.0-4A61 | J4 |
| 1 | ~ | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical | J9 |

CopperPilot/rpi-zero-2w-kicad
KiCad port of jonny12375/rp3a0: Raspberry Pi Zero 2W's RP3A0 on a Pi Pico-sized board

sprhawk/leaf-rv1126
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


VIPQualityPost/lemon-pepper-stepper
simplefoc all-in-one 50W hybrid stepper + bldc driver

igorwolfs/modular-processing-hw
MCU Breakout board with Hirose BM28B connector



It measures 149.9 × 152.5 mm and has 4 copper layers, 1.62 mm thick.
168 parts, built around the AT32F405RBT7-7, SK6812MINI-E, SRV05-4A and LM66100DCK. 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 dubnubdubnub/Giris repository on GitHub, at the commit this page was made from: the board is hw/TMR2615F_osu_pad/TMR2615F_osu_pad.kicad_pcb and its schematic hw/TMR2615F_osu_pad/TMR2615F_osu_pad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the Apache-2.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).