Skip to the content
PCBKitNew board
4 layers77.2 × 86.4 mmMad RP2040, the printed circuit board in 3D

Mad RP2040

Cimos/etchy1

Fast, trustworthy PCB visual and geometric diff tool (Rust). Successor to gerber-diff.

Size
77.2 × 86.4 mm
Copper layers
4
Thickness
1.2 mm
Parts
117
Nets
105
Pads
470
Tracks, vias
952, 218
Pours
7
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 Jun 2026
Updated
6 Nov 2026

Overview

Mad RP2040 is an open-source printed circuit board by Cimos, from the Cimos/etchy repository on GitHub, published under the Apache-2.0 licence. It is a 4-layer board of 77.2 × 86.4 mm with 117 parts on 105 nets, routed with 952 tracks and 218 vias.

It is built around the SC0914(13), W25Q128JVSIQ and ECMF02-2AMX6, with the NCP1117LPST33T3G-MS, 1N4148W and SK6812MINI-E among its other parts. Its parts include 38 diodes, 22 capacitors, 17 switches, 14 resistors and 5 ICs. It belongs with the RP2040 boards of this library.

Main components

12

README

README.md

etchy — fast, trustworthy PCB visual + geometric diff

etchy

Status: v0.1 — usable. Diffs real Gerber + Excellon fab packs across the CLI, a native desktop viewer, and a web viewer, with prebuilt binaries and a distroless container. The Python predecessor is frozen at Cimos/Gerber-Diff-Tool (v0.11).

etchy is a fast, trustworthy, open-source PCB visual + geometric diff tool. Point it at two revisions of a board's fab output and it shows — and measures — exactly what changed.

Quickstart

sh
etchy old/ new/                       # terminal summary; exit 0 = no diff, 1 = diff, 2 = error
etchy old/ new/ --html diff.html      # a single self-contained HTML report
etchy old/ new/ --svg out/            # one SVG overlay per changed layer
etchy old/ new/ --format json         # machine-readable magnitudes (schema v1)

Try it right now — the repo ships two revisions of a real board (the open Mad_RP2040, Gerbers + Excellon drills):

sh
etchy crates/etchy-gui/assets/demo/old crates/etchy-gui/assets/demo/new --html diff.html
# 10 of 13 layers changed; +213.29638 / -448.70036 mm² (967+/863- regions)
# Open diff.html to see every overlay

Diff two committed revisions straight from git, no checkout:

sh
etchy v0.11 HEAD fab/                 # <refA> <refB> [subdir]

Gate CI on the magnitude and location of change:

sh
# exit 1 only if copper changed by more than 0.5 mm²; silkscreen churn is ignored
etchy old/ new/ --gate-layers copper --fail-on-area 0.5

Every PR that touches Gerbers gets a layer-by-layer diff comment — five lines add the Action to a repo (full recipe in docs/ci-recipes/etchy-pr-diff.yml):

yaml
      - uses: Cimos/etchy@v0.2.0
        with:
          old: fab/rev-a
          new: fab/rev-b
          comment: true

The job grants pull-requests: write; etchy supplies its own token and posts a sticky per-layer table (added / removed mm² and region counts).

PDF diff — schematic PDFs get a page-by-page pixel diff (builds with --features pdf; release binaries ship it on):

sh
etchy old.pdf new.pdf --out overlays/   # per-page table + one overlay PNG per page
etchy old.pdf new.pdf --dpi 300         # crisper rasterization (default 150 DPI)

Install

  • From source — cargo install --path crates/etchy-cli (needs a Rust toolchain).

  • Container (headless CLI, distroless, ~11 MB):

    sh
    docker pull ghcr.io/cimos/etchy:v0.2.0
    docker run --rm -v "$PWD:/work" ghcr.io/cimos/etchy:v0.2.0 --format summary /work/old /work/new

    Or build it yourself with docker build -t etchy ..

  • Prebuilt binaries — etchy-cli-… archives for Linux, macOS and Windows, plus a SHA256SUMS file, are on the Releases page.

The desktop viewer is a separate binary — etchy-gui <old> <new> — with a changed-first layer list, Overlay / Old / New / Split / Swipe modes, pan / zoom / fit, a settings panel, an Open-A / Open-B loader (folder, .zip, or drag-and-drop), and a Help menu. A web viewer build also exists (see deploy/).

Install the viewer from the Releases page: etchy-viewer-… as a Windows .msi, a macOS .dmg (Apple Silicon), or a Linux .AppImage / .deb. The installers also put the etchy command-line tool on your PATH (not the AppImage). On macOS, brew install --cask cimos/etchy/etchy also works. The installers are not code-signed yet, so Windows SmartScreen and macOS Gatekeeper ask once before the first run.

What it does

  • Visual + geometric diff of Gerber (RS-274X/X2), Excellon drill, and pick-and-place (centroid) revisions: a per-layer polygon boolean diff (added = B − A, removed = A − B) yields a resolution-independent SVG overlay, a self-contained HTML report, and magnitudes (changed area mm², region count) — all from one computation. Moved / rotated / added / removed components diff as placement markers.
  • CLI / CI-first: exit codes, per-layer thresholds, git-refs, JSON (schema v1), a GitHub Action + Markdown PR summary; the egui viewer is the second surface.
  • Same-board revisions only — fails loud on mismatched boards, never a garbage diff. Trustworthy: a golden corpus plus property and fuzz tests, and no silent misses — see docs/TRUST.md.
  • Ships as small static binaries and a distroless container.

Non-goals: net/connectivity diff, BOM/component diff, DRC, IPC-2581 / ODB++ ingestion, and native schematic files. (Pick-and-place is diffed as placement geometry — where parts sit — not a BOM/component list.)

Planned: reading KiCad .kicad_pcb boards directly (0.3.0), then Altium .PcbDoc, with a list of changed objects alongside the layer diff (#122, spec).

Documentation

Workspace

CrateRole
etchy-corethe engine: parse → resolve → polygonize → diff → measure → render
etchy-clibinary etchy — the primary CLI/CI surface
etchy-guinative egui viewer (separate binary; never compiled in headless builds)
etchy-pdfschematic-PDF pixel diff (feature-gated; keeps the pure-Rust hayro PDF stack out of the core)

License

Dual-licensed under either of MIT or Apache-2.0 at your option.

Parts

117
QtyValueFootprintReferences
161N4148WlocalLib:D_SOD-123D1, D2, D3, D4, D17, D18, D19, D20, D31, D32, D33, D34, D45, D46, D47, D48
16SK6812_MINI_EMad_Footprints:SK6812MINI-ED6, D8, D10, D11, D22, D23, D24, D25, D36, D37, D38, D39, D50, D51, D52, D53
15100nFCapacitor_SMD:C_0603_1608MetricC1, C2, C6, C7, C10, C11, C12, C14, C16, C17, C18, C19, C20, C21, C23
15SW_SPSTkbd:keyswitch_choc12_hotswap_1uSW2, SW3, SW4, SW6, SW7, SW8, SW9, SW11, SW12, SW13, SW14, SW16, SW17, SW18, SW19
6MountingHole_PadMountingHole:MountingHole_2.2mm_M2_DIN965H2, H4, H6, H8, H10, H11
510uFCapacitor_SMD:C_0805_2012MetricC3, C4, C5, C9, C22
5SK6812MINIMad_Footprints:SK6812MINI-012D13, D15, D16, D41, D43
45K1Resistor_SMD:R_0603_1608MetricR1, R2, R3, R4
4Tabkikit:TabT1, T2, T3, T4
310KResistor_SMD:R_0603_1608MetricR6, R7, R11
351KResistor_SMD:R_0603_1608MetricR8, R9, R15
21KResistor_SMD:R_0603_1608MetricR10, R12
21uFCapacitor_SMD:C_0603_1608MetricC13, C15
227RResistor_SMD:R_0603_1608MetricR13, R14
2BLM18PG330SN1DInductor_SMD:L_0603_1608MetricFB1, FB2
2SolderJumper_2_BridgedJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP2, JP3
12N7002PV,115Package_TO_SOT_SMD:SOT-666Q1
1Conn_ARM_SWD_TagConnect_TC2030-NLConnector_JST:JST_SHL_SM05B-SHLS-TF_1x05-1MP_P1.00mm_HorizontalJ2
1ECMF02-2AMX6Mad_Footprints:ST_UQFN-6L_1.5x1.7mm_P0.5mmU2
1ECS-2520MVLC-120-CNOscillator:Oscillator_SMD_ECS_2520MV-xxx-xx-4Pin_2.5x2.0mmX1
1EVPAA202KMad_Footprints:EVP-AA202KSW100
1FiducialFiducial:Fiducial_0.75mm_Mask1.5mmFID1
1NCP1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1PCBMad_Footprints:BOMU1
1RB520S30Diode_SMD:D_SOD-523D7
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU5
1RotaryEncoder_Switchkbd:keyswitch_choc12_hotswap_1u_rotary_encoder_ec12SW1
1Split Hand Detect SelectorJumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP1
1TRSConnector_JST:JST_GH_SM03B-GHS-TB_1x03-1MP_P1.25mm_HorizontalJ3
1USB_C_ReceptacleConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1
1W25Q128JVSIQMad_Footprints:SOIC-8_5.23x5.23mm_P1.27mmU4

Questions

How big is the Mad RP2040 PCB?

It measures 77.2 × 86.4 mm and has 4 copper layers, 1.2 mm thick.

What parts does the Mad RP2040 use?

117 parts, built around the SC0914(13), W25Q128JVSIQ, ECMF02-2AMX6 and NCP1117LPST33T3G-MS. 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 Mad RP2040 KiCad files?

From the Cimos/etchy repository on GitHub, at the commit this page was made from: the board is corpus/native/kicad/mad_rp2040/old/Mad_RP2040.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Mad RP2040 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).

Similar boards

  • 2 layers10.6 × 21.8 mmB ART typeP, the printed circuit board in 3D

    B ART typeP

    idt12312/B-ART

    UARTをBLEで飛ばすモジュール

    14 parts11MIT
  • 4 layers113.4 × 29.3 mmPCB Mere V1, the printed circuit board in 3D

    PCB Mere V1

    CaptainDJMax/2627_Projet3AMSC_Index_Stellaire

    Ceci est notre projet sur l'index stellaire

    80 partsMIT
  • 2 layers156 × 156 mmMaster board, the printed circuit board in 3D

    Master board

    roboryman/prototroller

    A full-stack modular controller that is feature-rich, usable, responsive, and robust. Can be used for any HID-compliant purpose, but we focus on developing swappable modules that can form customizable gamepads.

    83 parts9MIT
  • 6 layers162 × 171 mmAdc board prot, the printed circuit board in 3D

    Adc board prot

    bcancinov/4-channel-adc-module

    4 Channel ADC module for detector controller prototype

    383 parts1
  • 4 layers34 × 30 mmAutorouted, the printed circuit board in 3D

    Autorouted

    tokla-chiya/VL53L9_KICAD

    Open VL53L9.kicadpro in KiCad, then open VL53L9.kicadsch. The schematic is complete; the PCB is still empty and needs placement/routing.

    32 parts
  • 4 layers75 × 55 mmEos epu up5k, the printed circuit board in 3D

    Eos epu up5k

    embeddedos-org/eCAD-Hardware-Products

    Hardware designs + EE docs + Board datasheets of Multiple products

    145 parts8MIT
  • 6 layers82 × 155 mmCm5-carrier, the printed circuit board in 3D

    Cm5-carrier

    SPIRIT-org/SPIRIT

    Smartphone based on the Raspberry Pi CM 5.

    138 parts1.4k
  • 4 layers70 × 70 mmBlue interface board, the printed circuit board in 3D

    Blue interface board

    BetzDrive/interface-board

    Power and signal conditioning board for the Betz Drive system

    130 parts5