Skip to content

Route the Phase-2 600 W module and generate fab outputs - #11

Merged
udaravima merged 8 commits into
developmentfrom
claude/route-phase2-6bjwyi
Sep 28, 2026
Merged

udaravima merged 8 commits into
developmentfrom
claude/route-phase2-6bjwyi

Conversation

@udaravima

@udaravima udaravima commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Requested by Udara Vimarsha · project thread

Before: the Phase-2 module board (LM5143 + LM5069, 130 × 90 mm, 4 layers) was placed but had 83 unconnected items and no fab outputs. Its BOM also had two parts that could not be ordered.

After: the board is fully routed.

  • DRC shows 0 unconnected items and 0 errors. The PS-002 plane check is clear.
  • The gerber/drill zip and the JLCPCB CPL are generated.
  • Every BOM part now fits its land and is stocked at LCSC.

The remaining DRC warnings are 19: 14 silk, 4 vias the DRC sees on one layer only, and 1 In2 stub end.

How.

  • The LM5143 corner was reworked. C28 and the compensation cluster moved, and VOUT2/COMP2 are routed inside U3's pad ring. The new hand routes are in gen_board.py / route_board.py.
  • The phase-1 routing tools were ported.
  • Freerouting 1.9.0 now runs on this board (zone-free DSN, -oit).
  • finish_routes.py closed the rest. EAI_INJ was fenced out of the MCU area by CAN_TX router copper, so CAN_TX was stripped (strip_routes.py) and re-routed after it.
  • The full recipe is in hardware/phase2-module/tools/README.md.

Pre-order review, resolved:

  • FB2 → AGND is correct. LM5143 datasheet §8.3.17.2: "Connect the MODE to VDDA and FB2 to AGND to configure the LM5143-Q1 for interleaved operation."
  • C15/16/36/37 are now Panasonic EEHZA1V221P (C454349, D10×10.2, 20 mΩ), which fits the CP_Elec_10x10.5 land. The previous D8 pick did not fit and is out of stock. SUNCON 35HVH220M+P (C179812) fits the same land and is noted as the fallback, because LCSC stock is thin for both.
  • U5 (and backplane U1) are now INA228AQDGSRQ1 (C5214669, 142 in stock). It is the automotive grade Phase-1 already uses: same VSSOP-10 pinout and register map, so no firmware change is needed.

Layout points kept, with reasons:

  • G_LS_A's B.Cu detour around U3 is 26 mm, against 20 mm for G_LS_B, so only a few nH more.
  • VOUT2/COMP2 under U3 are mask-covered DC tie nets that pass DRC clearances.
  • Signal tracks crossing the B.Cu AGND pour leave the In1 AGND pocket, the reference plane, unbroken, and check_planes gives every island its own via.
  • RT1 sits between the phases as docs/08 intends. It is on the thermally isolated AGND pocket, so HANDOVER now has a bring-up step to calibrate NTC_FET against a thermocouple on Q2.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CT7ZUC1wFK39SLj4Qnh9qy

Move C28 below U3 and the compensation cluster east of the NE B.Cu
corridor so U3's control pins escape cleanly; hand-route the right-column
lanes and the top-row via fan-out in route_board.py. Drop the old PS_VIN
and PH_CS_B F.Cu corridors (now routed on In2). Port fanout.py and
finish_routes.py (adds --inner In2 routing, --only, --first, --budget),
and the phase-1 DSN export / SES import.

Board file is regenerated and routed in a follow-up commit.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CT7ZUC1wFK39SLj4Qnh9qy
Join U3 PGND pins 14/17 under the body and drop 17 into the pour; feed
C22/C23 PS_VCC from a via between them. Escape VOUT2 (pin 5) west to In2.
Turn C25 so COMP meets R24 directly and its AGND pad gets a pocket via.
Gather U4/C31/C33 AGND on F.Cu to one via, link C33 5V0, and tie the
output-cap PGND pads (C15/C47/C16) down to In1/B.Cu PGND.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CT7ZUC1wFK39SLj4Qnh9qy
VOUT2 (pin 5) joins VOUT1 (pin 26) through the channel between U3's pad
ring and exposed pad; COMP2 dives there on a 0.5 mm via. PGND pins 14/17
link outside the pad row with G_LS_B moved west of the link. RT1 gets its
own AGND and NTC_FET vias; C25's AGND via moves to free the RES lane.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CT7ZUC1wFK39SLj4Qnh9qy
The grid margin was 0.6 mm to the track centre, so a 0.3 mm power track
landed 0.45 mm from Edge.Cuts against the 0.5 mm board-edge rule.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CT7ZUC1wFK39SLj4Qnh9qy
… outputs

Freerouting plus finish_routes closed all but EAI_INJ; CAN_TX's router
copper fenced the MCU area, so it was stripped and re-routed after
EAI_INJ. Silk, planes (PS-002 clear), DRC, gerbers/drill zip and the
JLCPCB CPL are regenerated. Adds tools/README.md and strip_routes.py,
and updates HANDOVER.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CT7ZUC1wFK39SLj4Qnh9qy
@udaravima udaravima self-assigned this Sep 27, 2026
U5 (phase-2) and the backplane U1 move to INA228AQDGSRQ1, the automotive
grade Phase-1 already uses: same VSSOP-10 pinout and register map, in
stock where the AIDGSR is not. C15/16/36/37 become Panasonic EEHZA1V221P
(D10x10.2, 20 mOhm), which fits the CP_Elec_10x10.5 land; the old D8
pick did not, and SUNCON 35HVH220M+P is noted as the same-land fallback.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CT7ZUC1wFK39SLj4Qnh9qy
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CT7ZUC1wFK39SLj4Qnh9qy
@udaravima
udaravima marked this pull request as ready for review September 28, 2026 19:39
@udaravima
udaravima merged commit 30aa97e into development Sep 28, 2026
3 checks passed
@udaravima
udaravima deleted the claude/route-phase2-6bjwyi branch September 29, 2026 03:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants