

Flow 75
A premium, programmer-focused 75% mechanical keyboard designed for maximum cognitive flow and zero hand displacement.
- Size
- 310 × 120 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 214
- Nets
- 151
- Pads
- 956
- Tracks, vias
- 1,587, 312
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 20 Aug 2026
- Updated
- 7 Oct 2026
Overview
Flow 75 is an open-source printed circuit board by danigit, from the danigit/flow_75 repository on GitHub. It is a 2-layer board of 310 × 120 mm with 214 parts on 151 nets, routed with 1,587 tracks and 312 vias.
It is built around the RP2040, AP2112K-3.3 and 1N4148W, with the SK6812MINI-E among its other parts. Its parts include 87 diodes, 59 switches, 19 capacitors, 11 resistors and 2 ICs. It belongs with the keyboards and input boards and the RP2040 boards of this library.
Main components
4RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)AP2112K-3.3
SOT253.3V 600mA CMOS Low Dropout Linear Regulator with EnableDiodes IncorporatedUncategorised1N4148W
SOD-123150mA 1A 1V@50mA 1uA@75V 400mW 4ns 75V Independent SOD-123 Switching Diodes ROHSSTMicroelectronicsSwitching DiodesSK6812MINI-E
SMD-40℃~+85℃ 0.6mA 1.78mm 120mcd~240mcd 120° 160mcd~320mcd 1kHz 2.8mm 2000V 3.2mm 3.7V~5.5V 460nm~470nm 515nm~525nm 620nm~625nm 800Kbit/s 815mcd~1275mcd Semi-transparent lens SMD RGB LEDs(Built-in IC) ROHSOPSCO OptoelectronicsRGB LEDs(Built-In IC)
README
README.mdFlow 75 — Programmer's Layered Keyboard
A premium, programmer-focused 75% mechanical keyboard designed for maximum cognitive flow and zero hand displacement.
The Core Concept
Traditional keyboards force software developers to constantly lift and stretch their hands to reach symbols, arrows, navigation keys, and mouse controls. Flow 75 brings full ergonomic layer power into a standard 75% unibody form factor using a 3-way split spacebar and an intuitive Left-Column Modifier Cascade.
graph TD
%% Styling
classDef spacebar fill:#2d3748,stroke:#4a5568,stroke-width:2px,color:#fff,font-weight:bold;
classDef layer fill:#3182ce,stroke:#2b6cb0,stroke-width:2px,color:#fff;
classDef standard fill:#4a5568,stroke:#2d3748,stroke-width:2px,color:#fff;
subgraph The 3-Way Split Spacebar
direction LR
LS[Left Space<br>2.25u]:::spacebar
C[Center Key<br>1.25u]:::spacebar
RS[Right Space<br>2.75u]:::spacebar
LS -->|Hold| IL((INPUT LAYER<br>Symbols & Operators)):::layer
C -->|Tap| ENT((Fast ENTER)):::standard
RS -->|Hold| AL((ACTION LAYER<br>Vim, Mods, Nav)):::layer
end
subgraph Left-Column Modifier Cascade
direction LR
P1[Physical Caps Lock]:::standard -->|Maps to| M1(SHIFT<br>Zero-stretch):::layer
P2[Physical L-Shift]:::standard -->|Maps to| M2(CTRL<br>Comfort reach):::layer
P3[Physical L-Ctrl]:::standard -->|Maps to| M3(CAPS LOCK<br>Cornered):::layer
endKey Highlights
- Left Space (
INPUT): Tap for space, hold for programming symbols ({,},[,],(,),=, etc.) mapped directly on the home row. - Right Space (
ACTION): Tap for space, hold for VIM navigation (I/J/K/L), word jumps, text edits (delete word, copy/paste, undo), and mouse emulation. - Center Key (
ENTER): Fast thumb Enter without moving the right pinky off the home row. - Left-Column Shift: Caps Lock becomes
Shift, Left Shift becomesControl, Left Ctrl becomesCaps Lock. - Dumb / Game Mode: A dedicated physical switch (or secondary firmware chord) to instantly switch to a standard ANSI layout for gaming or sharing.
- Ambient Pomodoro LED: Hardware-level focus sprint indicator (25m focus / 5m rest) embedded beneath the center key.
- Plug & Play: Powered by QMK firmware. No background software or drivers required.
Repository Structure
flow_75/
├── .gemini/ # Workspace rules, guidelines, and context
├── docs/ # Architectural guides, firmware instructions, and history
│ ├── 01_system_architecture.md # Concept, hardware specs, and layers mental model
│ ├── 02_keymap_and_layers.md # Exact keymap matrix, Input & Action logic
│ ├── 03_firmware_and_compilation.md # QMK environment setup and flashing instructions
│ └── CHANGELOG.md # Iteration history and bug fixes
├── firmware/
│ └── qmk/ # QMK firmware source, rules, config, and keymaps
├── hardware/ # Hardware design assets (KiCad schematics, CAD case models)
│ ├── pcb/
│ ├── cad/
│ └── keycaps/
├── tools/
│ └── simulator/ # Reserved for future browser keymap simulator
├── brainstorming/ # Initial ideation records and Six Hats debates
│ ├── ideation_memory_input.md
│ ├── ideation_memory_action.md
│ ├── six_hats_debate_input.md
│ ├── six_hats_debate_action.md
│ └── roadmap.md
└── README.mdRoadmap
Phase 0: Ideation & Concept Validation (In Progress)
- Initial Brainstorming & Six Hats debate
- Core Concept Definition (3-way split spacebar, Modifier cascade)
-
INPUTLayer Definition (Symbols & Operators mapping) -
ACTIONLayer Definition (Vim nav, text mutations, mouse emulation) - Base Layer Layout finalization (ANSI layout confirmed)
- Finalize Architecture & Keymap Specification documentation
Phase 1: Firmware & Frankenstein Prototype (Completed)
- Setup QMK Environment and scaffold
flow_75project - Draft Base Layer Matrix in C
- Implement
INPUT&ACTIONLayers logic - Flash and validate on a commercial split-space board (Frankenstein prototype)
- Initial tuning of Tap-Hold mechanics (
TAPPING_TERM,PERMISSIVE_HOLD)
Phase 2: User Testing & Calibration
- 2-week daily driving feedback loop
- Timing optimization (zero space-lag vs false triggers)
- Refine text mutation macros (e.g., delete line, undo/redo)
Phase 3: Hardware Engineering (PCB & MCU)
- Component Selection (RP2040 MCU, Kailh hotswap sockets, ESD protection)
- KiCad Schematics drafting (MCU, USB, Matrix, LED)
- Custom Pomodoro LED circuit design
- PCB Layout & Routing
Phase 4: Industrial Design & Enclosure
- 75% unibody footprint definition (gasket mount)
- CNC Aluminum Chassis CAD modeling (STEP/STL)
- Custom side-printed keycap geometry and SVG legend art
Phase 5: Production & Launch
- Order initial PCB and CNC prototype batch
- Assembly & QA testing
- Finalize Open Source release and build guides
Contributing
Flow 75 is an open-source project and we welcome contributions from the community! Whether you want to optimize the QMK firmware, tweak the layer maps, or contribute to the PCB design, please check out our Contributing Guidelines first.
Please note that this project is released with a Code of Conduct. By participating in this project you agree to abide by its terms.
License
Flow 75 uses a dual-licensing model:
- Hardware designs: CERN Open Hardware Licence Version 2 - Permissive (CERN-OHL-P)
- Firmware & Software: GNU General Public License v2.0 (GPL-2.0)
See the LICENSE file for full details.
Parts
214| Qty | Value | Footprint | References |
|---|---|---|---|
| 86 | 1N4148W | Diode_SMD:D_SOD-123 | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +70 |
| 12 | 100nF | Capacitor_SMD:C_0805_2012Metric | C2, C3, C4, C5, C6, C7, C8, C9, C11, C13, C14, C16 |
| 3 | 1uF | Capacitor_SMD:C_0805_2012Metric | C1, C10, C12 |
| 2 | 10k | Resistor_SMD:R_0805_2012Metric | R5, R8 |
| 2 | 15pF | Capacitor_SMD:C_0805_2012Metric | C17, C18 |
| 2 | 27 | Resistor_SMD:R_0805_2012Metric | R3, R4 |
| 2 | 27R | Resistor_SMD:R_0805_2012Metric | R6, R7 |
| 2 | 5.1k | Resistor_SMD:R_0805_2012Metric | R1, R2 |
| 2 | SW_Push | SW_SPST_B3U-1000P | SW_BOOT, SW_RESET |
| 1 | 100MHz | Resistor_SMD:R_0805_2012Metric | FB1 |
| 1 | 100nF | C_0805_2012Metric | C19 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric | C15 |
| 1 | 12MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 1M | Resistor_SMD:R_0805_2012Metric | R9 |
| 1 | 1k | R_0805_2012Metric | R11 |
| 1 | 1k | Resistor_SMD:R_0805_2012Metric | R10 |
| 1 | 500mA | Fuse:Fuse_1206_3216Metric | F1 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U1 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U3 |
| 1 | SK6812MINI | LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm | LED1 |
| 1 | SW_R0C0 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW1 |
| 1 | SW_R0C1 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW2 |
| 1 | SW_R0C10 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW11 |
| 1 | SW_R0C11 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW12 |
| 1 | SW_R0C12 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW13 |
| 1 | SW_R0C13 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW14 |
| 1 | SW_R0C14 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW15 |
| 1 | SW_R0C15 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW16 |
| 1 | SW_R0C2 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW3 |
| 1 | SW_R0C3 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW4 |
| 1 | SW_R0C4 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW5 |
| 1 | SW_R0C5 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW6 |
| 1 | SW_R0C6 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW7 |
| 1 | SW_R0C7 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW8 |
| 1 | SW_R0C8 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW9 |
| 1 | SW_R0C9 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW10 |
| 1 | SW_R1C0 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW17 |
| 1 | SW_R1C1 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW18 |
| 1 | SW_R1C10 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW27 |
| 1 | SW_R1C11 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW28 |
| 1 | SW_R1C12 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW29 |
| 1 | SW_R1C13 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW30 |
| 1 | SW_R1C14 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW31 |
| 1 | SW_R1C15 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW32 |
| 1 | SW_R1C2 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW19 |
| 1 | SW_R1C3 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW20 |
| 1 | SW_R1C4 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW21 |
| 1 | SW_R1C5 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW22 |
| 1 | SW_R1C6 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW23 |
| 1 | SW_R1C7 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW24 |
| 1 | SW_R1C8 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW25 |
| 1 | SW_R1C9 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW26 |
| 1 | SW_R2C0 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW33 |
| 1 | SW_R2C1 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW34 |
| 1 | SW_R2C10 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW43 |
| 1 | SW_R2C11 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW44 |
| 1 | SW_R2C12 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW45 |
| 1 | SW_R2C14 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW46 |
| 1 | SW_R2C15 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW47 |
| 1 | SW_R2C2 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW35 |
| 1 | SW_R2C3 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW36 |
| 1 | SW_R2C4 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW37 |
| 1 | SW_R2C5 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW38 |
| 1 | SW_R2C6 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW39 |
| 1 | SW_R2C7 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW40 |
| 1 | SW_R2C8 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW41 |
| 1 | SW_R2C9 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW42 |
| 1 | SW_R3C0 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW48 |
| 1 | SW_R3C10 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW57 |
| 1 | SW_R3C11 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW58 |
| 1 | SW_R3C12 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW59 |
| 1 | SW_R3C13 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW60 |
| 1 | SW_R3C14 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW61 |
| 1 | SW_R3C15 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW62 |
| 1 | SW_R3C2 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW49 |
| 1 | SW_R3C3 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW50 |
| 1 | SW_R3C4 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW51 |
| 1 | SW_R3C5 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW52 |
| 1 | SW_R3C6 | MX_Alps_Hybrid:MXOnly-1U-Hotswap | SW53 |
The 184 most common of 214 parts.
Questions
How big is the Flow 75 PCB?
It measures 310 × 120 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Flow 75 use?
214 parts, built around the RP2040, AP2112K-3.3, 1N4148W and SK6812MINI-E. 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 Flow 75 KiCad files?
From the danigit/flow_75 repository on GitHub, at the commit this page was made from: the board is hardware/pcb/flow_75.kicad_pcb and its schematic hardware/pcb/flow_75.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Flow 75 design in my own project?
Its repository states no licence, so its author keeps all rights: ask danigit before reusing the design.
Similar boards
- 2 layers308.8 × 99.3 mm

- 2 layers100 × 56.8 mm

JoyKey
techy-robot/JoyKey
A small macropad that simultaneously acts as game controller and an entertainment device.
64 parts1CERN-OHL-S-2.0 - 2 layers344.6 × 125.9 mm

ISOish87
seancaulfield/ISOish87
h87 compatible keyboard PCB for my own preferred layout
290 partsGPL-3.0 - 2 layers344.6 × 117.8 mm

ISOish88e
seancaulfield/ISOish88e
Evo80 compatible keyboard PCB for my own preferred layout
276 partsGPL-3.0 - 4 layers100 × 142.5 mm

Keeb4x4
TheRealBluesun/keeb4x4
4x4 macropad: STM32G431, per-key RGB, ScreenKey display keycaps, encoder. KiCad + Rust/Embassy firmware, USB bootloader, host CLI, printable base.
127 partsCERN-OHL-P-2.0 - 2 layers291.8 × 134.6 mm

- 2 layers226 × 92 mm

Chameleon v1 0
TweetyDaBird/Fat-Chameleon
A Grid Ortho keyboard for BM40, JJ40/JJ50 cases inspired by Planck and Preonic
205 parts14CC-BY-SA-4.0 - 6 layers90 × 90 mm

Codex micro wired revA route nognd
slopus/codex-keybored
A 100% vibe-coded hardware build: Fusion 360, six-layer KiCad PCB, STM32 firmware, and live JLC factory handoff.
97 parts10