Skip to the content
4 layers149.9 × 152.5 mmTMR2615F osu pad, the printed circuit board in 3D

TMR2615F osu pad

dubnubdubnub/Giris4

open source 32 key/half (64 total) analog TMR split ortholinear keyboard w/ 8kHz USB HS

Size
149.9 × 152.5 mm
Copper layers
4
Thickness
1.62 mm
Parts
168
Nets
118
Pads
618
Tracks, vias
1,766, 636
Pours
19
Routed
Yes
KiCad
KiCad 10.99 (file 20260623)
Created
8 May 2026
Updated
29 Sep 2026

Overview

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.

Main components

12

README

README.md

Giris

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:

  • standalone
  • half A --> half B --> computer
  • computer A <-- half A <--> half B --> computer B
    • Giris doubles as a KVM, you can control which computer you're typing on with a programmable macro
    • Relevant power circuitry to prevent backfeeding (GROUNDS ARE STILL BONDED!!!)

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/.

Schematics and photos

First-revision osu!pad dev board enumerating over USB

PDFs:

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.

Setup

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:

bash
git clone --recurse-submodules https://github.com/dubnubdubnub/Giris.git

If you already cloned without --recurse-submodules, initialize them after the fact:

bash
git submodule update --init --recursive

Note: hw/marbastlib may print an error while recursing into a nested .history submodule. That is harmless — it is upstream and holds no 3D models the boards need.

3D models

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.

Licence

Giris uses two licences:

WhatLicenceFile
Firmware, host tools, web configurator, docsApache-2.0LICENSE
Hardware — schematics, PCB, magnet models (hw/)CERN-OHL-P v2hw/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:

c
/* SPDX-License-Identifier: Apache-2.0
 * Copyright 2026 Isaac Chiu
 */

Third-party code

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.

Why the firmware is not GPL

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.

Parts

168
QtyValueFootprintReferences
22CL05B104KB54PNCCapacitor_SMD:C_0402_1005MetricC11, C19, C23, C25, C26, C27, C28, C29, C30, C35, C36, C39, C40, C43, C44, C47 +6
22TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP3, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19, TP20, TP21, TP22 +6
150402WGF5101TCEResistor_SMD:R_0402_1005MetricR8, R12, R13, R15, R17, R18, R19, R20, R22, R29, R30, R31, R32, R33, R34
120402CG300J500NTCapacitor_SMD:C_0402_1005MetricC15, C16, C17, C18, C31, C32, C33, C37, C41, C45, C49, C53
80402WGF1002TCEResistor_SMD:R_0402_1005MetricR1, R2, R4, R5, R6, R9, R10, R28
7CL10B332KB8NNNCCapacitor_SMD:C_0603_1608MetricC10, C34, C38, C42, C46, C50, C54
7SK6812MINI-ELED__C:LED-SMD_4P-L3.2-W2.8-LS5.9_SK6812MINI-EU12, U14, U16, U18, U20, U22, U24
60402WGF1200TCEResistor_SMD:R_0402_1005MetricR3, R7, R14, R16, R21, R27
6CL21A226MAQNNNECapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4, C5, C6
6CPG151101S11-16HOTSWAP__C:SMD_KEYBOARD-SWSW3, SW4, SW5, SW6, SW7, SW8
6TMR2615F-AAC-1.500-500Sensor_Motion__C:DFN3L(1.6x1.6x0.5)U13, U15, U17, U19, U21, U23
5CL21A106KAYNNNECapacitor_SMD:C_0805_2012MetricC7, C12, C13, C20, C21
3FiducialFiducial:Fiducial_1mm_Mask2mmFID1, FID2, FID3
3LOGOLOGOG***, G***, G***
3MountingHole_PadMountingHole:MountingHole_2.2mm_M2_Pad_ViaH1, H2, H3
3SRV05-4ADiode__C:SOT-23-6U1, U5, U9
3TYPE-C-31-M-12Connector_USB__C:USB-C_SMD-TYPE-C-31-M-12_1J1, J2, J3
20402WGF3300TCEResistor_SMD:R_0402_1005MetricR23, R24
2CL05A105KA5NQNCCapacitor_SMD:C_0402_1005MetricC14, C22
2KT-0603WLED__C:LED0603-R-RD_WHITELED1, LED2
2LM66100DCKPackage_TO_SOT_SMD:SOT-363_SC-70-6U2, U7
2PESD5V0R1BSFYLDiode__C:SOD-962_L0.6-W0.3-BIU25, U26
2SKSGPAE010Switch__C:SW-SMD_SKSGAAE010SW1, SW2
10402WGF1202TCEResistor_SMD:R_0402_1005MetricR25
10402WGF2202TCEResistor_SMD:R_0402_1005MetricR11
10402WGF3301TCEResistor_SMD:R_0402_1005MetricR26
11N4148WS_T4Diode_SMD:D_SOD-323_HandSolderingD1
1AP22653W6-7Power_Switch__C:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BRU3
1AT32F405RBT7-7MCU_Artery__C:LQFP-64_L7.0-W7.0-P0.40-LS9.0-BLU10
1CL10A475KO8NNNCCapacitor_SMD:C_0603_1608MetricC24
1CL21A476MQYNNNECapacitor_SMD:C_0805_2012MetricC9
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ8
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ7
1Conn_01x10Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ5
1Conn_01x23Connector_PinHeader_2.54mm:PinHeader_1x23_P2.54mm_VerticalJ6
1GZ1608D601TFInductor_SMD:L_0603_1608MetricL1
1TMUX1574RSVRMUX__C:UQFN-16_L2.6-W1.8-P0.40-BLU11
1TPS7A4700Regulator_Linear__C:VQFN-20_L5.0-W5.0-P0.65-TL-EPU4
1X322512MSB4SIOscillator__C:X322512MSB4SIX1
1XC6206P332MRRegulator_Linear__C:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BRU8
1XY-SH1_0-4A61Connector_SH1.0__C:CONN-SMD_4P-P1.00_XYECONN_XY-SH1.0-4A61J4
1~Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ9

Similar boards

  • 6 layers60 × 20.4 mmRp3a0-mini, the printed circuit board in 3D

    Rp3a0-mini

    CopperPilot/rpi-zero-2w-kicad

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

    124 parts1
  • 6 layers49.8 × 49.7 mmLeaf, the printed circuit board in 3D

    Leaf

    sprhawk/leaf-rv1126

    This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

    290 parts12
  • 4 layers22.8 × 18.4 mmEsp32-d2dw, the printed circuit board in 3D

    Esp32-d2dw

    lbernstone/esp32-d2wd

    Module for esp32-d2wd

    32 parts8
  • 4 layers35 × 35 mmLemon pepper, the printed circuit board in 3D

    Lemon pepper

    VIPQualityPost/lemon-pepper-stepper

    simplefoc all-in-one 50W hybrid stepper + bldc driver

    87 parts75MIT
  • 6 layers90 × 89 mmModular processing board, the printed circuit board in 3D

    Modular processing board

    igorwolfs/modular-processing-hw

    MCU Breakout board with Hirose BM28B connector

    177 parts1
  • 2 layers290.1 × 131 mmKoca58, the printed circuit board in 3D

    Koca58

    Hardware7253/Koca58

    A split keyboard design.

    156 parts
  • 2 layers46 × 22 mmPower supply, the printed circuit board in 3D

    Power supply

    bburan/ldo-dual-supply

    Low drop out dual supply voltage regulator circuit

    29 parts1
  • 4 layers72.4 × 87.3 mmUi tile kicad, the printed circuit board in 3D

    Ui tile kicad

    arista/ultranetMonitor

    Project for creating an ultranet audio monitor

    64 parts

Questions

How big is the TMR2615F osu pad PCB?

It measures 149.9 × 152.5 mm and has 4 copper layers, 1.62 mm thick.

What parts does the TMR2615F osu pad use?

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.

Where can I download the TMR2615F osu pad KiCad files?

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.

Can I use the TMR2615F osu pad design in my own project?

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).