
SeaTalk1
dotnet/iot
This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.

A 9-key hackpad on a XIAO RP2040, with a 0.91" OLED that shows the time and a fox messing about on it. Each key opens an app.
Catpas is an open-source printed circuit board by ohhjazzv, from the ohhjazzv/hackpad repository on GitHub. It is a 2-layer board of 93 × 113.5 mm with 24 parts on 23 nets, routed with 231 tracks and 8 vias.
Its parts include 9 diodes, 9 switches and 2 ICs.
A 9-key hackpad on a XIAO RP2040, with a 0.91" OLED that shows the time and a fox messing about on it. Each key opens an app.

Spotify (SW1) Discord (SW4) Slack (SW7)
Claude (SW2) Opera GX (SW5) KiCad (SW8)
Shapr3D (SW3) Snip Too (SW6) Clock (SW9)One printed part — a tray the board drops into. Nine 14 mm cutouts for the switches, a long window for the OLED, a USB-C opening in the side wall, and four M5 corner holes. 112 x 133 x 19 mm.
![]() | ![]() |
| Top down — nine key cutouts, OLED window, M5 corners | The board sitting in the tray |



![]() | ![]() |
| Layout — F.Cu red, B.Cu blue | Board render, top |

| Ref | Qty | Part | Notes |
|---|---|---|---|
| U1 | 1 | Seeed Studio XIAO RP2040 | 14-pin XIAO footprint |
| U2 | 1 | ER-OLEDM0.91_1x-I2C (SSD1306 128x32) | I2C on D4/D5 |
| SW1–SW9 | 9 | Cherry MX compatible switch, 1u PCB mount | |
| D1–D9 | 9 | 1N4148 / 1N914, DO-35 | one per key, COL2ROW |
| R1–R2 | 2 | 4.7k | I2C pull-ups; skip if your OLED module has them |
| — | 9 | MX keycaps | |
| — | 1 | PCB, 93.0 x 113.5 mm, 2 layer, 1.6 mm | production/gerbers.zip |
| — | 1 | Printed case, ~150 cm³ | production/Case.STEP |
| — | 4 | M5 bolt + nut | through the 5.3 mm corner holes |
Machine-readable copy: production/bom.csv.
| Folder | What's in it |
|---|---|
| CAD/ | Catpas_final.3mf — the full assembly: case, board and diodes |
| PCB/ | KiCad 10 project: .kicad_pro, .kicad_sch, .kicad_pcb, plus gerbers/ and a STEP export of the board |
| Firmware/ | KMK / CircuitPython source, plus the host/ companion. See Firmware/README.md |
| production/ | Fab and print output: gerbers.zip, Case.STEP, firmware/, bom.csv. See production/README.md |
| images/ | The renders on this page |
Journal is the build log.
COL2ROWA, B, Switch for oneMatrix, from the netlist:
col1 col2 col3
row1 SW1 SW2 SW3
row2 SW4 SW5 SW6
row3 SW7 SW8 SW9Note the board numbers its switches down the columns, not across the rows —
kb.coord_mapping in the firmware absorbs that, so the keymap is written in
plain reading order.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 1N914 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D3, D4, D5, D6, D7, D8, D9 |
| 9 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9 |
| 1 | ER_OLEDM0.91_1x-I2C | Display:ER_OLEDM0.91_1x-I2C | U2 |
| 1 | MOUDLE-SEEEDUINO-XIAO | RF_Module:MCU_Seeed_ESP32C3 | U1 |
The 20 most common of 24 parts.
It measures 93 × 113.5 mm and has 2 copper layers, 1.6 mm thick.
24 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 ohhjazzv/hackpad repository on GitHub, at the commit this page was made from: the board is PCB/catpas.kicad_pcb and its schematic PCB/catpas.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ohhjazzv before reusing the design.

dotnet/iot
This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.

pascallanger/DIY-Multiprotocol-TX-Module
Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models.


rusefi/rusefi
rusefi - GPL internal combustion engine control unit

DraftShift/StealthChanger
Tool changing system for Vorons and other front mount printer motion systems, not just stealthburner.

VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group

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