
Easyduino RP2040
Hanqaqa/Easyduino
Easily dive into different PCB KiCad designs of the most popular microcontroller devboards

Keyboard with Trackpoint for Framework 16 laptop: hardware design
MicrocontrollerInputModule is an open-source printed circuit board by cscott, from the cscott/X1CarbonGen10 repository on GitHub. It is a 2-layer board of 86.4 × 50.8 mm with 57 parts on 73 nets, routed with 1,450 tracks and 157 vias.
It is built around the RP2040, W25Q16JVUXIQ and 0.3K-HX-45PWB. Its parts include 23 capacitors, 9 resistors, 5 diodes, 3 ICs and 2 connectors. It belongs with the RP2040 boards of this library.

This module is based on the "Microcontroller Input Module" example from https://github.com/FrameworkComputer/InputModules which in turn is based on the Adafruit Feather RP2040 (https://www.adafruit.com/product/4884).
More discussion of this project, and of replacement keyboards for the Framework 16 laptop generally, can be found in the Framework forums.
Input Modules © 2023 by Framework Computer Inc is licensed under CC BY 4.0.
This module for the Thinkpad X1 Carbon Gen 10 keyboard is © 2024 by C. Scott Ananian and is also licensed under CC BY 4.0.
To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
A 0.8mm PCB is recommended.
All components are SMT on the bottom side of the board.
To enter boot mode on the RP2040 to reflash, hold down the "Fn" key on the keyboard as power is applied.
You can find alternatives for just about each of these components except for the microcontroller. The keyboard FPC is designed to be inserted with contacts facing down toward the PCB, which is "up" (since the connector is on the bottom side of the board) and thus will require folding the keyboard's FPC cable to achieve the proper orientation.
Notes: 1uF caps are 2.2uF in pico reference design and it had one more 100nF cap on 1v1; match crystal caps to crystal selected.
| Item # | Designator | Qty | Manufacturer | Mfg Part # | Description / Value | Package/Footprint | Type |
|---|---|---|---|---|---|---|---|
| 1 | C1, C4, C6, C9, C11, C12, C13, C14, C15, C16, C17, C18, C20 | 13 | Samsung | CL05B104KO5NNNC | 100nF | Capacitor_SMD:C_0402_1005Metric | SMT |
| 2 | C2, C3 | 2 | Murata | GRM1555C1H150JA01D | 15pF | Capacitor_SMD:C_0402_1005Metric | SMT |
| 3 | C5, C8, C19, C21, C22, C23 | 6 | TDK | C1608X5R1A106M080AC | 10uF | Capacitor_SMD:C_0603_1608Metric | SMT |
| 4 | C7, C10 | 2 | Samsung | CL05A105KO5NNNC | 1uF | Capacitor_SMD:C_0402_1005Metric | SMT |
| 5 | D1, D2, D3, D4, D5 | 5 | Littelfuse | SP0402B-ULC-01ETG | D_TVS | Diode_SMD:D_0402_1005Metric | SMT |
| 6 | H1, H2 | 2 | Keystone | 24929 | 24929 | InputModule:MountingHole_3.7mm_Pad_24929 | SMT |
| 7 | J2 | 1 | HDGC | 0.3K-HX-45PWB | 45-pin FPC connector | 20655-045E-01:0.3K-HX-45PWB | SMT |
| 8 | R1, R3 | 2 | Yageo | RC0402FR-071KL | 1k | Resistor_SMD:R_0402_1005Metric | SMT |
| 9 | R2 | 1 | Yageo | RC0402FR-07330KL | 330k | Resistor_SMD:R_0402_1005Metric | SMT |
| 10 | R4, R5 | 2 | Panasonic | ERJ-2RKF27R0X | 27 | Resistor_SMD:R_0402_1005Metric | SMT |
| 11 | R6, R7, R8, R9 | 4 | Panasonic | ERJ-2RKF1000X | 100 | Resistor_SMD:R_0402_1005Metric | SMT |
| 12 | U1 | 1 | Winbond | W25Q16JVUXIQ | W25Q16JVUXIQ | InputModule:SON-8-1EP_3x2mm_P0.5mm_EP0.2x1.6mm | SMT |
| 13 | U2 | 1 | Raspberry Pi | RP2040TR7 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | SMT |
| 14 | U3 | 1 | Microchip | MCP23S17_ML | MCP23S17_ML | Package_DFN_QFN:QFN-28-1EP_6x6mm_P0.65mm_EP4.25x4.25mm | SMT |
| 15 | Y1 | 1 | Abracon | ABM8G-12.000MHZ-18-D2Y-T | 12.000MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | SMT |
| Qty | Value | Footprint | References |
|---|---|---|---|
| 13 | 100nF | Capacitor_SMD:C_0402_1005Metric | C1, C4, C6, C9, C11, C12, C13, C14, C15, C16, C17, C18, C20 |
| 6 | 10uF | Capacitor_SMD:C_0603_1608Metric | C5, C8, C19, C21, C22, C23 |
| 5 | D_TVS | Diode_SMD:D_0402_1005Metric | D1, D2, D3, D4, D5 |
| 4 | 100 | Resistor_SMD:R_0402_1005Metric | R6, R7, R8, R9 |
| 4 | Tooling Hole | 20655-045E-01:JLCPCB Tooling Hole | H5, H6, H7, H8 |
| 2 | 15pF | Capacitor_SMD:C_0402_1005Metric | C2, C3 |
| 2 | 1k | Resistor_SMD:R_0402_1005Metric | R1, R3 |
| 2 | 1uF | Capacitor_SMD:C_0402_1005Metric | C7, C10 |
| 2 | 24929 | InputModule:MountingHole_3.7mm_Pad_24929 | H1, H2 |
| 2 | 27 | Resistor_SMD:R_0402_1005Metric | R4, R5 |
| 2 | MountingHole | MountingHole:MountingHole_2.1mm | H3, H4 |
| 1 | 0.3K-HX-45PWB | 20655-045E-01:0.3K-HX-45PWB | J2 |
| 1 | 12.000MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 330k | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 3V3 | TestPoint:TestPoint_Pad_D1.0mm | TP2 |
| 1 | BOOTSEL | TestPoint:TestPoint_Pad_D1.0mm | TP1 |
| 1 | CLK | TestPoint:TestPoint_Pad_D1.0mm | TP3 |
| 1 | Conn_02x04_Odd_Even | InputModule:PogoPads_2x4_P2.0mm | J1 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.0mm | TP5 |
| 1 | INT | TestPoint:TestPoint_Pad_D1.0mm | TP6 |
| 1 | MCP23S17_ML | Package_DFN_QFN:QFN-28-1EP_6x6mm_P0.65mm_EP4.25x4.25mm | U3 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U2 |
| 1 | SWD | TestPoint:TestPoint_Pad_D1.0mm | TP4 |
| 1 | W25Q16JVUXIQ | InputModule:SON-8-1EP_3x2mm_P0.5mm_EP0.2x1.6mm | U1 |

Hanqaqa/Easyduino
Easily dive into different PCB KiCad designs of the most popular microcontroller devboards


FrameworkComputer/InputModules
Reference designs and documentation for the Input Module system in the Framework Laptop 16


16n-faderbank/16nx
16nx is a controller for musical instruments. Sixteen faders,MIDI over USB and jack, CV out, and I2C out. Based around RP2040.

Nuclear-Squid/Quacken
Libre, ergonomic, polymorphic: a single PCB for many possible layouts.

RetroScaler/RP2040-PICO-BOOT
Raspberry PI RP2040 PICOBOOT for the Game cube console

It measures 86.4 × 50.8 mm and has 2 copper layers, 0.8 mm thick.
57 parts, built around the RP2040, W25Q16JVUXIQ and 0.3K-HX-45PWB. 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 cscott/X1CarbonGen10 repository on GitHub, at the commit this page was made from: the board is MicrocontrollerInputModule.kicad_pcb and its schematic MicrocontrollerInputModule.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 cscott before reusing the design.