Modulus
advaitconty·Modulus·PCB/Modulus Keyboard/Modulus.kicad_pcb
About the Modulus PCB
Modulus is an open source RP2040/RP2350 PCB design by advaitconty, published on GitHub. It is a 2-layer board measuring 295.6 × 183 mm, with 230 components from 37 distinct parts.
Its main chip is the C2040, from the RP2040/RP2350 family. Other key parts include the C97521 and C26537. By type, the board carries 59 diodes, 29 switches, 25 capacitors, 24 fuses, 15 resistors and 7 connectors.
It belongs with the keyboards designs in this gallery.
From the project
A keyboard, designed to be completely modular via USB Type-C ports
A keyboard, built with the idea of expansion in the future, through SPI.
Things I will do later in the future (with other Hack Club events, or with my own money): - Numpad over SPI - Macropad over SPI
Just use it like a keyboard! However, any SPI accessories should be connected while the keyboard is powered down. This is mainly a limitation of SPI, as it is not hot-plug compatible. The USB ports are USB 2.0 only, so it's better to be used for stuff like USB sound cards and mice. I don't actually know how much lag will the ports create, because they're bottom mounted, in direct contact with…

Main components on the Modulus
Modulus bill of materials (BOM)
230 components, 37 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | C2040 RP2040 | QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U1 |
| 1 | C97521 W25Q128JVS | SOIC-8_5.3x5.3mm_P1.27mm | U3 |
| 1 | C26537 NCP1117-3.3_SOT223 | SOT-223-3_TabPin2 | U4 |
| 1 | C41430893 Keyswitch | SW_Hotswap_Kailh_MX_1.00u | Q1 |
| 2 | C9002 12MHz | Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1, Y2 |
| 2 | C368521 XLR3 | NEUTRIK_NC3FAAH | J1, J5 |
| 1 | C165948 USB_C_Receptacle_USB2.0_16P | USB_C_HRO_TYPE-C-31-M-12 | J2 |
| 2 | C6307429 USB_A | GCT_USB1046-GF-0190-L-B-A_REVB4 | J3, J4 |
| 1 | OLED_128X32 OLED_128x32 | OLED_128x32 | J6 |
| 1 | C41430893 Keyswitch | SW_Hotswap_Kailh_MX_1.00u | P1 |
| 15 | Keyswitch | SW_Hotswap_Kailh_MX_1.00u | 0)1, 1!1, 2@1, 3#1, 4$1, 5%1, 6^1, 7&1 +7 |
| 13 | Diode | D_SMA | 0)D1, 1!D1, 2@D1, 3#D1, 4$D1, 5%D1, 6^D1, 7&D1 +5 |
| 24 | C41430893 Keyswitch | SW_Hotswap_Kailh_MX_1.00u | Backspace1, Backspace2, Command1, Command2, Control1, Del1, Del2, Down1 +16 |
| 5 | C81598 Diode | D_SMA | BackspaceD1, BackspaceD2, DelD1, DelD2, EscD1 |
| 12 | C41430893 Keyswitch | SW_Hotswap_Kailh_MX_1.00u | F1, F2, F3, F4, F5, F6, F7, F8 +4 |
| 12 | Diode | D_SMA | F1D1, F2D1, F3D1, F4D1, F5D1, F6D1, F7D1, F8D1 +4 |
| 1 | GL850G | 28SSOP | GL850G1 |
| 1 | Keyswitch | SW_Hotswap_Kailh_MX_1.75u | S45 |
| 23 | C41430893 Keyswitch | SW_Hotswap_Kailh_MX_1.00u | S46, S47, S48, S49, S50, S51, S52, S53 +15 |
| 3 | Keyswitch | SW_Hotswap_Kailh_MX_1.25u | S58, S59, S60 |
Show 17 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | Keyswitch | SW_Hotswap_Kailh_MX_1.50u | S72 |
| 1 | C2888566 Push_Button | SW_PUSH_6mm | SW1 |
| 6 | Keyswitch | SW_Hotswap_Kailh_MX_1.50u | Space1, Space2, Space3, Space4, Tab1, \|1 |
| 1 | C41430893 Keyswitch | SW_Hotswap_Kailh_MX_1.00u | T1 |
| 58 | C81598 Diode | D_SMA | D31, D32, D33, D34, D35, D36, D37, D38 +50 |
| 1 | C2290 LED | LED_D5.0mm | D91 |
| 2 | C1848 1uF | C_1206_3216Metric | C1, C10 |
| 11 | C24497 0.1uF | C_1206_3216Metric | C2, C3, C4, C5, C6, C7, C8, C9 +3 |
| 2 | C13585 10uF | C_1206_3216Metric | C13, C14 |
| 4 | C107115 33pF | C_0805_2012Metric | C15, C16, C20, C21 |
| 6 | C1848 100nF | C_1206_3216Metric | C22, C23, C24, C25, C26, C27 |
| 1 | C17798 680 | R_0805_2012Metric | R1 |
| 2 | C17594 27 | R_0805_2012Metric | R3, R4 |
| 3 | C4410 1K | R_1206_3216Metric | R5, R6, R14 |
| 5 | C17902 10K | R_1206_3216Metric | R7, R12, R15, R16, R17 |
| 3 | C27834 5.1K | R_0805_2012Metric | R8, R9, R13 |
| 1 | C25922 88.7K | R_0402_1005Metric | R11 |
Modulus design files
The KiCad project lives in the advaitconty/Modulus repository on GitHub; these links point at the commit this page was built from.
Modulus: common questions
What microcontroller does the Modulus use?
The Modulus is built around the C2040, from the RP2040/RP2350 family.
How big is the Modulus PCB?
The Modulus measures 295.6 × 183 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the Modulus?
230 components, from 37 distinct parts, with part numbers taken from the project's own BOM. The full bill of materials is listed on this page.
Where can I download the Modulus design files?
From the advaitconty/Modulus repository on GitHub, which has the KiCad layout, the schematic and the BOM; the links under Design files point to each one.
Can I use the Modulus design in my own project?
The repository has no license, so all rights stay with advaitconty. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the Modulus without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug RP2040/RP2350 firmware against it before you order a PCB.
More boards in Modulus
Similar boards
RP2040/RP2350
Open Book Abridged Edition
joeycastillo
85 × 115 mm29 parts2LCC-BY-SA-4.08.1kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
Jitx design
gusmanb
55.5 × 65 mm26 parts4LGPL-3.05.0kRP2040/RP2350
LogicAnalyzer
gusmanb
57 × 55.2 mm6 parts2LGPL-3.05.0kRP2040/RP2350
Main
google
98 × 71 mm102 parts2LApache-2.02.9k