Bottom module, mouse sensor ADNS-5050 (BM-ADNS5050) — the v3 mouse module, drawn 1:1

Drawn in KiCad, not redrawn from a frozen EasyEDA source: this KiCad project is the board's only source (authority drawn_in_kicad), and its "Human review" tick below gates its release.

Code
BM-ADNS5050
Side
either hand
Slot
bottom
Variant
BM-ADNS5050
Status
in review
Released
unknown

Files from dev@f162cad · 2026-10-17 · KiCad 10.0.6· not a released revision

Faces

Top face of the Bottom module, mouse sensor ADNS-5050
Top
Bottom face of the Bottom module, mouse sensor ADNS-5050
Bottom

3D model

Parts

All 7 parts
ReferenceValueFootprintManufacturerMPNLCSCKeyQty
C1,C3 0402B104K160NT lynx:C0402 FH(风华) 0402B104K160NT C41851 —2
C2 CA45-A-16V-4.7uF-M lynx:CASE-A_3216 CEC(振华新云) CA45-A-16V-4.7uF-M C140390 —1
C4 TC211A335M016Y lynx:CASE-A_3216 Sunlord(顺络) TC211A335M016Y C128298 —1
J1 Header-Male-2.54_1x6 lynx:HDR-TH_6P-P2.54-V-M BOOMELE(博穆精密) 2.54-1x6P直针 C37208 —1
LED2 TJ-L5FYTGHTTCLFLC2R-A5 lynx:LED-TH_BD5.8-P2.54-FD TOGIALED(统佳) TJ-L5FYTGHTTCLFLC2R-A5 C331037 —1
R6 RC0402FR-07499RL lynx:R0402 YAGEO RC0402FR-07499RL C137970 —1
U1 ADNS-5050 lynx:ADNS5050_CAT Avago Technologies ADNS-5050 — —1

Schematic

Schematic of the Bottom module, mouse sensor ADNS-5050

Opens full size in a new tab.

Interactive BOM: © 2025-2026 lynx-v4 contributors · CERN-OHL-S-2.0 AND MIT

Design notes

Bottom module, mouse sensor ADNS-5050 (BM-ADNS5050) — the v3 mouse module, drawn 1:1

Drawn in KiCad, not redrawn from a frozen EasyEDA source: this KiCad project is the board's only source (authority drawn_in_kicad), and its "Human review" tick below gates its release. The board is the v3 one, kept as it is (decided 2026-10-16): same outline, parts, placement and copper, no holes added. Its lid holds it in a pocket.

Where it comes from

The v3 EasyEDA Standard export PCB_PCB_adns5050_2026-10-16.json (sha256 0a9460a0…53b179, kept outside the repository: it carries LCSC library records), converted once from its 10 mil unit by a throwaway script. Origin: the source's canvas origin, which is U1's origin and lies on the board's long axis; x points to the chamfered end, the header is on +y.

  • Outline 35.00 × 25.00 mm, symmetric about y = 0: x −22.30 (the pointed end, at the LED) to 12.70 (the chamfered end), y ±12.50.
  • Cutout 26.95 × 9.9 mm, from x −16.95 to 10.00, under the sensor and on to the LED: v3 drew it as an unplated region of the sensor's footprint; here it is a second Edge.Cuts polygon, its four corners as v3 has them (the end at the LED is 0.08 mm out of square). The sensor looks down through it, as Avago mounts it: body on the component side, its lens (ADNS-5100-001) under the board, the LED's leads bent 90° into the lens's clip (ADNS-5050 datasheet, figures 3–5).
  • Parts, all on the top side, with v3's designators: U1 the ADNS-5050; LED2 a 5 mm red LED, anode (pad 1, square) on 5 V, cathode on XY_LED; R6 499 Ω across it (Avago's Ropt); C1 100 nF and C2 4.7 µF on 5 V, C3 100 nF and C4 3.3 µF on REGO, the sensor's regulator output (the datasheet's figure 8); J1 the 1×6 header, H1 on v3 (J, as on every module board). Pads are v3's; parts and links: electronics/lib/parts.toml.
  • Copper v3's 16 tracks (49 segments), 0.254 mm, one of them on the back (XY_LED, U1 to LED2), and its ground pour on the front over the whole board, filled by KiCad (v3's clearance and spokes, 0.254 mm). GND reaches the header only through the pour.
  • Silkscreen v3's header labels, its circle beside U1 pin 4 (the corner of Avago's logo) and its small drawing in the corner above LED2; the footprints' own outlines are the library's.
J1 pinNetMain-board pin (harness [breakouts.bm-adns5050])v3 silkscreen
1 (square)GND22, GNDGND
25V21, 5V: USB onlyV
3BOTTOM_ADNS5050_SPI_CLOCK20, GPIO14sclk
4BOTTOM_ADNS5050_SPI_DATA19, GPIO13sdio
5BOTTOM_ADNS5050_RESET18, GPIO12n
6BOTTOM_ADNS5050_SPI_SELECT17, GPIO11nsc

These are v3's pins: the header meets six main-board pins in a row, pin 1 on 22, so one straight 6-wire cable joins them. The harness holds each header pin to its signal by its row, so ./lx pcb check holds no header pin to a signal here.

Before ordering

  1. LED polarity. v3 wires pad 1 (square) to 5 V, so the LED's anode, its long lead, goes in the square pad; check that against the v3 module that ran.
  2. The sensor is discontinued (build.toml adns5050-module todo), as are its lens and clip.
  3. Silkscreen (DRC warnings, not errors): LED2's outline runs off the pointed end, as the LED overhangs it on v3; C4's and J1's designators, at v3's positions, touch a pad and J1's outline in KiCad's wider font.

Check record (2026-10-16)

StepStateEvidence
Symbols, footprints, 3D models✅electronics/lib (write_lib.py --check); pads from the v3 board, outlines and the sensor's model from Avago's and the parts' drawings; LED2 has no model (no_model: the clip places it)
ERC✅0 errors, 0 warnings
DRC with schematic parity✅/⚠️0 errors, no parity entries, 0 unconnected items; warnings: the silkscreen above
Pad ↔ net against v3✅all 26 pads within 1 µm of v3's and on its nets (v3's U1_n named after the sensor's pin), checked once by the drawing script
Assemblyn/afitted to no slot, no keys
Human review⏳Stas, in KiCad

How it was drawn

Generated once from the v3 JSON (parts, outline, cutout, tracks, pour, silkscreen) with a throwaway script, then saved and filled by KiCad 10.0.6. From here on, edit it in KiCad; there is no generator to rerun. ./lx pcb check BM-ADNS5050 --routed gates it.