AnasSarkiz/muse-voice-remote

Muse Voice Remote — bare ESP32-S3R8, 155 TOP JLCPCB parts with real supplier CAD, native 3D assembly and GLB exports. Revised 17 mm case allocation; 0.30 mm via drill /0.45 mm pad. Checked prototype PCB; mechanical, RF and MUSE qualification pending.

Version
1.3.2
License
unset
Stars
0

scripts/finish-routing.py

#!/usr/bin/env python3
"""Finish FreeRouting's result against the independent KiCad rule profile.

Board-edge keepout strips are included in the router input. The router produces
some 0.1 mm fanout necks; widen those, then run KiCad DRC independently.
"""
import pathlib
import pcbnew
root = pathlib.Path(__file__).resolve().parents[1]
board_path = root / "dist/MuseVoiceRemote-library.kicad_pcb"
board = pcbnew.LoadBoard(str(board_path))
changed_widths = 0
for track in board.GetTracks():
    if not isinstance(track,pcbnew.PCB_VIA):
        if track.GetWidth() < pcbnew.FromMM(0.15):
            track.SetWidth(pcbnew.FromMM(0.15))
            changed_widths += 1
pcbnew.SaveBoard(str(board_path),board)
print(f"Widened {changed_widths} narrow fanout segments to the 0.15 mm minimum.")