Skip to the content
PCBKitNew board
2 layers48 × 60 mmCustom wireless mouse, the printed circuit board in 3D

Custom wireless mouse

limmjacc/custom-wireless-mouse

Project to track the hardware and firmware for a custom made computer mouse.

Size
48 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
33
Nets
43
Pads
138
Tracks, vias
311, 50
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
26 Sep 2026
Updated
4 Oct 2026

Overview

Custom wireless mouse is an open-source printed circuit board by limmjacc, from the limmjacc/custom-wireless-mouse repository on GitHub. It is a 2-layer board of 48 × 60 mm with 33 parts on 43 nets, routed with 311 tracks and 50 vias.

It is built around the NRF52810-QCAA-T, PMW3610DM-SUDU and CC0603KRX7R9BB104, with the CC0402FRNPO9BN120, CC0603KRX5R6BB105 and D2FC-F-7N(20M) among its other parts. Its parts include 16 capacitors, 4 switches, 3 resistors, 3 ICs and 2 connectors. It belongs with the nRF52 and nRF5x boards of this library.

Main components

12

README

hardware/README.md

Hardware

KiCad 10 project for the custom wireless mouse PCB. Fully self-contained and portable: every symbol, footprint, and 3D model the schematic depends on is vendored inside this folder and referenced through ${KIPRJMOD}-relative paths — nothing depends on KiCad's global library tables or an internet connection to open and edit. See docs/hardware/schematic.md for how the schematic itself is organized.

Opening the project

Open custom-wireless-mouse.kicad_pro in KiCad 10. The project's sym-lib-table and fp-lib-table are picked up automatically.

Layout

text
hardware/
├── custom-wireless-mouse.kicad_pro   Project file
├── custom-wireless-mouse.kicad_sch   Schematic — complete, ERC-clean
├── custom-wireless-mouse.kicad_pcb   PCB layout — not started (no board outline yet)
├── sym-lib-table                     Project-local symbol library table
├── fp-lib-table                      Project-local footprint library table
├── datasheets/                       PDF datasheets for every non-passive part, kebab-case named
├── libraries/
│   ├── local/                        Symbols/footprints authored for this project
│   │   └── symbols/local.kicad_sym     GND, +VSYS, and PWR_FLAG
│   └── vendored/                     One directory per part, each with its own ATTRIBUTION.md
│       ├── nordic-nrf52810-qcxx/       U1 — from KiCad's own official library
│       ├── pmw3610dm-sudu/             U2 — from github.com/siderakb/pmw3610-pcb (CERN-OHL-P v2)
│       ├── ti-tlv61220/                U3 — symbol hand-drawn from TI's datasheet pinout
│       ├── ndk-nx2016sa/               Y1 — from KiCad's own official library
│       ├── bourns-pec11r/              ENC1 — from DigiKey's official KiCad library
│       ├── panasonic-evq-p7b01p/       SW2–SW4 — from KiCad's own official library
│       ├── ck-js202011scqn/            SW1 — from DigiKey's official KiCad library
│       └── samtec-tsw-104-07-t-s/      J1 — from KiCad's own official library
├── fab-outputs/                      Gerbers, drill, pick-and-place, and BOM exports per revision
└── 3d-renders/                       Exported board renders (PNG/STEP) for docs and reference

Library policy

Every specific, individually sourced part (every IC, the crystal, the encoder, every switch, the header) has its own symbol and footprint vendored into libraries/vendored/<part>/ — nothing depends on KiCad's global libraries for these, since a global library's contents can differ across KiCad installs and versions. Only truly generic, manufacturer-agnostic passives (resistors, capacitors, the inductor) use KiCad's bundled Device and footprint libraries directly, since there's no meaningful "sourcing" decision attached to a 0603 resistor footprint.

Each vendored part's ATTRIBUTION.md records exactly where its symbol and footprint came from and what license applies (mostly CC-BY-SA 4.0, matching KiCad's own library license, since most of these were extracted from KiCad's or DigiKey's official libraries; U2 is CERN-OHL-P v2 from its open-hardware source; U3's symbol is original, hand-drawn from a public datasheet pinout table rather than copied from anywhere).

Datasheets

datasheets/ holds a PDF for every part above the passive-component level — downloaded from the manufacturer or a stable distributor mirror where a direct link could be found. A couple of manufacturers' sites (Nordic's full product specification, one slide-switch datasheet) sit behind bot-protection that blocked a direct download; where that happened, the BOM notes it and gives the page to fetch manually instead of a broken/substituted link.

Fabrication outputs

fab-outputs/ holds exports generated from the KiCad project (Gerbers, drill files, pick-and-place, BOM) — never hand-edited. Regenerate per revision; don't rely on stale exports. Nothing has been exported yet since the PCB layout hasn't started.

Parts

33
QtyValueFootprintReferences
7100nFCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C4, C9, C10, C14
410uFCapacitor_SMD:C_0603_1608MetricC8, C12, C15, C16
212pF NP0Capacitor_SMD:C_0402_1005MetricC6, C7
21uFCapacitor_SMD:C_0603_1608MetricC5, C11
2D2FC-F-7N(20M)omron-d2fc-f-7n:switch-tht-omron-d2fc-f-7nSW2, SW3
10603L010littelfuse-0603l010:fuse-0603-littelfuse-0603l010F1
110kResistor_SMD:R_0603_1608MetricR1
110nFCapacitor_SMD:C_0603_1608MetricC13
1180kResistor_SMD:R_0603_1608MetricR3
14.7uHInductor_SMD:L_1008_2520MetricL1
1499kResistor_SMD:R_0603_1608MetricR2
1B2B-XH-Ajst-b2b-xh-a:battery-conn-jst-b2b-xh-aJ2
1B3U-1000Pomron-b3u-1000p:switch-smd-omron-b3u-1000pSW5
1DMG2305UXQdiodes-dmg2305uxq:sot-23-dmg2305uxqQ1
1JS202011SCQNck-js202011scqn:switch-slide-js202011scqnSW1
1MOUSE_ENCODERttc-kailh-mouse-encoder:encoder-tht-placeholder-mouse-wheelENC1
1NX2016SA-32MHZndk-nx2016sa:crystal-smd-2016-4pin-2.0x1.6mmY1
1PMW3610DM-SUDUpmw3610dm-sudu:pmw3610dm-sudu-16-pinU2
1SWD_HEADERsamtec-tsw-104-07-t-s:pinheader-1x04-p2.54mm-verticalJ1
1TLV61220DBVTti-tlv61220:sot-23-6U3
1nRF52810-QCAA-Tnordic-nrf52810-qcxx:qfn-32-1ep-5x5mm-p0.5mm-ep3.6x3.6mmU1

Questions

How big is the Custom wireless mouse PCB?

It measures 48 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Custom wireless mouse use?

33 parts, built around the NRF52810-QCAA-T, PMW3610DM-SUDU, CC0603KRX7R9BB104 and CC0402FRNPO9BN120. 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 Custom wireless mouse KiCad files?

From the limmjacc/custom-wireless-mouse repository on GitHub, at the commit this page was made from: the board is hardware/custom-wireless-mouse.kicad_pcb and its schematic hardware/custom-wireless-mouse.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Custom wireless mouse design in my own project?

Its repository states no licence, so its author keeps all rights: ask limmjacc before reusing the design.

Similar boards

  • 4 layers51 × 34.3 mmR1001, the printed circuit board in 3D

    R1001

    pluggee/R1001

    DRV8825 Based Stepper Motor Driver

    50 parts1GPL-3.0
  • 4 layers110 × 140 mmTrackball base, the printed circuit board in 3D

    Trackball base

    ntindle/trackball

    Ultimate Mouse: fully custom trackball with a free-spinning active ball (capacitive touch ring, nRF52810, inductive charging) and a dual-PMW3360 base (nRF52840, USB-C, HID + custom driver). No mechanical wheel.

    159 parts1
  • 4 layers73 × 94 mmWirelessBERA, the printed circuit board in 3D

    WirelessBERA

    NathansLab/WirelessBERA

    KiCad 10 project for the Wireless BERA v1.0 board.

    183 parts
  • 2 layers22.8 × 9.6 mmPrj kicad, the printed circuit board in 3D

    Prj kicad

    Vipin1113/smart-ring-project

    Compact BLE-Based Smart Ring PCB for Health Monitoring and Gesture Detection

    38 partsMIT
  • 6 layers39.5 × 39.5 mmP4eregrine, the printed circuit board in 3D

    P4eregrine

    anticitizn/p4eregrine

    All-in-one ESP32 P4-based drone ESC, flight controller, and video processor

    359 parts21
  • 4 layers48 × 33 mmStm32-bt board, the printed circuit board in 3D

    Stm32-bt board

    OdaiJ/stm32-bt-board

    My attempt at following the Phil's Lab KiCad V7 tutorial on YouTube

    60 parts1
  • 4 layers100 × 60 mmUnder bed lighting, the printed circuit board in 3D

    Under bed lighting

    dbwalker0min/under-bed-lighting

    A project to add under bed lighting

    58 partsMIT
  • 2 layers69 × 44 mmPanel proto lna board, the printed circuit board in 3D

    Panel proto lna board

    PantsForBirds/adsbee

    Open Source Embedded ADS-B Receiver

    144 parts344GPL-3.0