PDLVDS-RX — photodiode LVDS receiver

Clean-room receiver for the Miniscope Zero optical uplink: Excelitas C30737LH Si APD → OPA657 TIA → LMH7220 comparator (LVDS out, DAC-set threshold) → ADN2813 CDR → STM32H723 + USB3300 USB-HS. Design target: 50 Mbps line rate, 8b/10b (40 Mbps payload); the paper's mode: 8 Mbps Manchester (16 Mbaud), as transmitted. LT3757 flyback APD bias 150–420 V. USB-C powered; verify on any laptop over USB, no FPGA attached.

Pass 145

2026-11-06 00:22 PST (2026-11-06T08:22:38Z UTC) · commit 9c622fc (9c622fca66b3e9fddbaa78990135f0f29e550274)

ADOPTED

Heal-stub prune on exp174 with a bisection-proven exclusion. First prune attempt BROKE the invariant (round 0 removed 8, unconnected 45 -> 46, board restored uncommitted). Per-net bisection (scratch/bisect_prune.py) isolated the split to the GND batch; per-item bisection (scratch/bisect_items.py) proved the single culprit: Track [GND] on F.Cu, 1.75 mm at (44.375, 10.125) – removing it alone splits a group (the contact graph cannot see its pour-side join). It is now on the tool’s exclusion list (scratch/dgp-exclusions.json) and stays. Clean run: 31 stub segments removed over 10 rounds, unconnected items 45 UNCHANGED in every round. KiCad DRC referee, exp174 -> exp175: violations 253 -> 249, track+via dangling items 27 -> 23, copper_edge_clearance 68, clearance 34, shorting 0. Dangling residue: 4 graph-vetoed bridges + 18 matcher-ambiguous joints (skipped, never guessed) + the excluded GND track.

Nets fully routednot recorded
Pins failednot recorded
Clearance violations68
Unconnected nets32
Audit verdictFAIL

Routes — all copper layers and each layer

F.Cu In1.Cu In2.Cu B.Cu

Top

Pass 145 — top

Bottom

Pass 145 — bottom

← Pass 144 · all passes · Pass 146 →