Skip to main content

PCB v2.9 — Visual Rework Guide

Complete visual guide for all 27 routing violations found on the production PCB v2.9 (tag v2.9, commit adc073b). Each fix includes an annotated PCB render showing the exact location, the problem, and the rework procedure.

Source: hardware/debug/all-shorts-rework.md

Tools needed: soldering iron (fine tip), flux, 30AWG kynar wire, coltellino di precisione, multimetro, lente/microscopio.


Summary

SeverityCountDescriptionFixes
CRITICAL3Power-to-power bridge (GND↔VBUS, GND↔+5V)FIX 1-3
HIGH5Signal bridges two power nets (+3V3↔GND)FIX 4-8
MEDIUM-HIGH19Signal touches one power netFIX 9-27

Priorità di rework: Eseguire i fix in ordine numerico. Testare con multimetro dopo ogni fix.


FIX 1-3: Power Shorts (CRITICAL)

Questi cortocircuiti impediscono l'accensione della board. Lato FRONTE (F.Cu, display).

FIX 1 — VBUS → GND via

FIX 1

Dettaglio
LayerF.Cu (fronte)
TraceVBUS orizzontale (y=61, w=0.5mm)
ViaGND @ (108.5, 60.5) ø0.9mm
Gap-0.20mm
EffettoVBUS cortocircuito a GND → board non si accende
InterventoRaschiare F.Cu intorno alla via GND (~1mm raggio)
VerificaMultimetro: VBUS↔GND = aperto (>1MΩ)

FIX 2 — VBUS → +5V via

FIX 2

Dettaglio
LayerF.Cu (fronte)
TraceVBUS verticale (x=111, w=0.5mm)
Via+5V @ (111.5, 56.5) ø0.9mm
Gap-0.20mm
EffettoVBUS cortocircuito a +5V
InterventoRaschiare F.Cu intorno alla via +5V (~1mm raggio)
VerificaMultimetro: VBUS↔+5V = aperto (>1MΩ)

FIX 3 — LCD_RST ponte VBUS↔GND

FIX 3

Dettaglio
LayerF.Cu (fronte)
TraceLCD_RST orizzontale (y=33, w=0.2mm)
Via 1GND @ (81.5, 33) — gap: -0.47mm
Via 2VBUS @ (111, 33) — gap: -0.52mm
EffettoPonte diretto GND↔VBUS attraverso rame LCD_RST
InterventoTagliare trace LCD_RST a x=95, y=33. Raschiare ~1mm. LCD_RST funziona via B.Cu.
VerificaMultimetro: VBUS↔GND = aperto (>1MΩ)

FIX 4-8: Signal Bridges +3V3↔GND (HIGH)

Trace verticali B.Cu che attraversano sia una via +3V3 sia una via GND, creando ponti power-to-power. Lato RETRO (B.Cu, componenti). 4 tagli per ogni fix.

FIX 4 — USB_D- ponte +3V3↔GND

FIX 4

Dettaglio
LayerB.Cu (retro)
TraceUSB_D- verticale (x=91.7, w=0.2mm)
Via 1+3V3 @ (92.05, 44.6) — gap: -0.20mm
Via 2GND @ (92.05, 52.0) — gap: -0.20mm
EffettoPonte +3V3↔GND via rame USB_D-
Intervento4 tagli con coltellino: sopra/sotto ogni via. ⚠ USB nativo non funzionerà.
VerificaMultimetro: +3V3↔GND = aperto (>1MΩ)

FIX 5 — BTN_UP ponte +3V3↔GND

FIX 5

Dettaglio
LayerB.Cu (retro)
TraceBTN_UP verticale (x=67.5, w=0.25mm)
Via 1+3V3 @ (67.05, 44.6) — gap: -0.18mm
Via 2GND @ (67.05, 52.0) — gap: -0.18mm
Intervento4 tagli + ponte filo 30AWG da y=43 a y=54
Verifica+3V3↔GND = aperto

FIX 6 — BTN_LEFT ponte +3V3↔GND

FIX 6

Dettaglio
LayerB.Cu (retro)
TraceBTN_LEFT verticale (x=62.5, w=0.25mm)
Via 1+3V3 @ (62.05, 44.6) — gap: -0.18mm
Via 2GND @ (62.05, 52.0) — gap: -0.18mm
Intervento4 tagli + ponte filo 30AWG
Verifica+3V3↔GND = aperto

FIX 7 — BTN_A ponte +3V3↔GND

FIX 7

Dettaglio
LayerB.Cu (retro)
TraceBTN_A verticale (x=52.5, w=0.25mm)
Via 1+3V3 @ (52.05, 44.6) — gap: -0.18mm
Via 2GND @ (52.05, 52.0) — gap: -0.18mm
Intervento4 tagli + ponte filo 30AWG
Verifica+3V3↔GND = aperto

FIX 8 — BTN_L ponte +3V3↔GND

FIX 8

Dettaglio
LayerB.Cu (retro)
TraceBTN_L verticale (x=72.5, w=0.25mm)
Via 1+3V3 @ (72.05, 44.6) — gap: -0.13mm
Via 2GND @ (72.05, 52.0) — gap: -0.13mm
Via 3GND @ (73.05, 65.5) — gap: -0.03mm
Intervento4 tagli sulle 2 via principali + ponte filo 30AWG
Verifica+3V3↔GND = aperto

FIX 9-27: Single-Net Shorts (MEDIUM)

Signal trace che tocca UNA sola via power. Non crea ponte power-power ma blocca il segnale al livello della power net. Intervento: raschiare rame intorno alla via (~1mm raggio).

FIX 9 — BTN_Y → +3V3 (F.Cu)

FIX 9

TraceViaGapEffettoFix
BTN_Y+3V3 @ (70.45, 44.0)-0.475mmBTN_Y bloccato HIGHRaschiare F.Cu intorno via

FIX 10 — USB_D+ → GND (F.Cu)

FIX 10

TraceViaGapEffettoFix
USB_D+GND @ (85.05, 66.0)-0.425mmUSB_D+ cortocircuito a GNDRaschiare F.Cu intorno via

FIX 11 — LCD_DC → GND (F.Cu)

FIX 11

TraceViaGapEffettoFix
LCD_DCGND @ (109.05, 37.0)-0.395mmDisplay non funzionaRaschiare F.Cu intorno via

FIX 12-13 — BTN_DOWN → +3V3 (F.Cu, 2 punti)

FIX 12 FIX 13

#ViaGapFix
12+3V3 @ (25.95, 63.0)-0.375mmRaschiare F.Cu
13+3V3 @ (32.95, 63.0)-0.375mmRaschiare F.Cu

FIX 14, 16, 25 — LCD_D0/D5/D4 → GND (B.Cu, stessa via)

FIX 14

#SignalViaGap
14LCD_D0GND @ (134.5, 34.85)-0.450mm
16LCD_D5GND @ (134.5, 34.85)-0.350mm
25LCD_D4GND @ (134.5, 34.85)-0.050mm

Intervento unico: raschiare B.Cu intorno a GND via @ (134.5, 34.85) risolve tutti e 3.

FIX 15 — SD_CS → GND (B.Cu)

FIX 15

TraceViaGapEffettoFix
SD_CSGND @ (153.5, 34.85)-0.450mmSD card inaccessibileRaschiare B.Cu intorno via

FIX 17 — BTN_B → GND (B.Cu)

FIX 17

TraceViaGapEffettoFix
BTN_BGND @ (143.0, 50.25)-0.275mmBTN_B bloccato LOWRaschiare B.Cu intorno via

FIX 18 — BTN_A → GND (F.Cu)

FIX 18

TraceViaGapEffettoFix
BTN_AGND @ (76.8, 67.12)-0.250mmBTN_A cortocircuito a GNDRaschiare F.Cu intorno via

FIX 19 — LCD_D7 → GND (B.Cu)

FIX 19

TraceViaGapEffettoFix
LCD_D7GND @ (81.5, 32.96)-0.145mmDisplay corrottoRaschiare B.Cu intorno via

FIX 20-22, 24 — BTN_SELECT → +3V3 (F.Cu + B.Cu, 4 punti)

FIX 20 FIX 21 FIX 22 FIX 24

#LayerViaGap
20F.Cu+3V3 @ (62.05, 44.6)-0.075mm
21F.Cu+3V3 @ (67.05, 44.6)-0.075mm
22F.Cu+3V3 @ (72.05, 44.6)-0.075mm
24B.Cu+3V3 @ (72.05, 44.6)-0.075mm

Nota: gap -0.075mm — potrebbe non manifestarsi su tutti i PCB prodotti.

FIX 23 — BTN_R → GND (F.Cu)

FIX 23

TraceViaGapEffettoFix
BTN_RGND @ (123.5, 64.5)-0.075mmBTN_R bloccato LOWRaschiare F.Cu intorno via

FIX 26 — LCD_D6 → +3V3 (F.Cu)

FIX 26

TraceViaGapEffettoFix
LCD_D6+3V3 @ (88.75, 21.01)-0.040mmDisplay corrottoRaschiare F.Cu intorno via

FIX 27 — LCD_D4 → VBUS (B.Cu)

FIX 27

TraceViaGapEffettoFix
LCD_D4VBUS @ (110.95, 33.0)-0.000mmLCD_D4 borderlineRaschiare B.Cu intorno via (preventivo)

Checklist Post-Rework

Dopo tutti i fix, verificare con multimetro in modalità continuità:

TestPad 1Pad 2AttesoDopo FIX
VBUS-GNDC17+C17->1MΩFIX 1, 3
+5V-GNDC1+C1->1MΩFIX 2, 3
+3V3-GNDC2+C2->1MΩFIX 4-8
BAT+-GNDC18+C18->1MΩFIX 3

Assessment

Questa board v2.9 ha 44 violazioni routing di cui 27 sono reali short circuit. La versione corrente del PCB (post-v2.9) ha risolto tutte queste violazioni nel generatore Python — DFM: 114/114 pass, 0 collisioni.

Per le board v2.9 già prodotte, i fix 1-3 sono essenziali. I fix 4-8 ripristinano i power rail. I fix 9-27 sono necessari per funzionalità completa (display, bottoni, SD card).