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 133

2026-11-05 21:29 PST (2026-11-06T05:29:17Z UTC) · commit a81f8f0 (a81f8f0ec4563c9a34351e70baa5946cc45dc52d)

ADOPTED

Keepout class closed by mechanism fix: 199 items_not_allowed -> 0. Provenance: all 28 rule areas on the board were created by hw/notch.py, hw/notch_strip.py, hw/fix_hvraw.py and hw/fix_r47.py, each setting only SetIsRuleArea(True) + SetDoNotAllowCopperPour(True) – documented intent “copper-pour keepout only, tracks/vias/pads unaffected”. A fresh ZONE in the KiCad 7-era pcbnew defaulted DoNotAllowTracks/Vias/Pads to True, the tools never cleared them, and the stored board banned tracks in every rule area (162 of the 199 were APD_K/APD_A tracks crossing the big front-end pour notch; the home-grown routers never modelled keepouts, so the copper accumulated silently). Fix (scratch/fix_keepout_flags.py): every rule area now allows tracks/vias/pads and keeps the pour ban – the pour still stays out of the HV pocket exactly as designed; track-level HV isolation remains governed by clearance/net classes, untouched. KiCad DRC: violations 619 -> 420, items_not_allowed 199 -> 0, unconnected items 50 UNCHANGED, all other classes byte-identical counts. Regression test hw/tests/test_keepout_flags.py added in this pass: FAILS on exp157 (28 of 28 rule areas ban tracks), PASSES on exp158 (28 pour-only keepouts).

Nets fully routednot recorded
Pins failednot recorded
Clearance violations144
Unconnected nets35
Audit verdictFAIL

Routes — all copper layers and each layer

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

Top

Pass 133 — top

Bottom

Pass 133 — bottom

← Pass 132 · all passes · Pass 134 →