Commit Graph

145 Commits

Author SHA1 Message Date
5e2dc775d7 v6 Copper Plan: add master proximity table (§8)
- every discrete mapped to its owner designator with distance class
  (glued <=3mm / close <=5mm / block <=15mm), computed from the live
  netlist + hand curation (ESD at connectors, ADC filters at MCU,
  comp caps at their regulator, DB1-4 -> U13, C106-108 -> U16 VDD)
- designators added to existing per-block tables (Leo's request)
- sch<->pcb designator audit: P1-P12 in sync, 0 value mismatches,
  only expected diffs (U22 fp TBD, MH5/6 board-only, PF* ERC flags)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-09-04 01:08:49 +00:00
538b62b72c v6 connector renumber (submodule b007c7c) + Copper Plan map
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-09-04 00:53:32 +00:00
94da1ad0eb v6 silkscreen + gravity placement (submodule) 2026-09-03 23:50:25 +00:00
c3af7afd9c v6 cluster placement (submodule c7d2552) + Copper Plan update
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-09-03 16:50:09 +00:00
230c1d5a2c v6 NTC2/PA7 fix (submodule ba70f62) + Copper Plan placement/EMC guide
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-09-03 00:00:54 +00:00
53021a296a v6 PCB copper wipe for re-layout 2026-09-02 22:59:32 +00:00
1044e706e5 auto-sync 2026-09-01 18:00 2026-09-01 18:00:17 -06:00
0a50ff7d21 v6 T11 accelerometer (submodule 23ed361) + T11 script
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-09-01 22:06:21 +00:00
7fea0a5c11 v6 T10 sensor set (submodule 83ed72e) + T10 script 2026-08-31 21:48:32 +00:00
0823de6c29 v6 T9 power input (submodule b92a187) + T9 script 2026-08-31 21:09:09 +00:00
a29f65d953 v6 PCB dead-copper cleanup (submodule ab2e67a) 2026-08-31 18:14:25 +00:00
5bb2e12668 kicad → submodule (hbox-kicad)
03-Architecture-Hardware/kicad is now its own repository so it can live on
GitHub and be pull-mirrored to the Gitea instance (Helgen-Services/HBox_PCB
on git.helgen.online).

History was extracted with:
  git subtree split --prefix=03-Architecture-Hardware/kicad
so all 70 board commits survive in the submodule, with new hashes.
Parent history is untouched; tag pre-kicad-submodule-2026-08-26 marks the
state before this change.
2026-08-27 20:57:37 +00:00
Claude (Cowork)
daafd5c440 v6 T4 sync: Leo Update-PCB-from-Schematic - LTE island on the board (275 footprints)
All pad->net checks pass: VBAT 55/56/57 + bulk + TVS, OR-diodes into U20, RTCM path
through U24 with DNP bypasses, PWRKEY/RST FETs, SIM ESD, TP8. U22 skipped as expected
(MFF2 footprint TBD). LED re-drive verified on copper: Rmled1.1 -> /3V3, D4G1.1 ->
/MODEM_LED_K -> Q22.3.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-27 20:55:14 +00:00
Claude (Cowork)
4b8bdf4916 v6 T4c: ERC fixes - RF_IN retyped passive, PF18 PWR_FLAG on SIM_VDD
Leo's ERC flagged exactly two errors after the T4 sync:
 1. U18 pin 2 RF_IN [Input] undriven - my hand-built ZED-F9P symbol typed the RF port as a
    logic input. RF ports are conventionally passive; retyped in Drogheda-sym AND the
    schematic's lib_symbols cache (1 substitution each, asserted). Its real connection
    arrives with the Block S bias tee in T6.
 2. U22 pin 1 VCC [Power input] undriven - SIM_VDD is fed by the modem's USIM1_VDD, whose
    EasyEDA pin type is not a power output. Idiomatic fix: PF18 PWR_FLAG on SIM_VDD,
    consistent with PF1-PF17.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-25 22:27:42 +00:00
Claude (Cowork)
4f6e1bb347 v6 T4: Blocks O+P+Q+R - A7670SA LTE island complete in the schematic (33/33 net checks pass)
Block O (modem): U19 A7670SA-LASC (C18548276, LGA-124) - 19 signal nets + 39 GND + 66 NC,
all 124 pads accounted for. UART via 1.8V-side nets (_M suffix); USB joins J9 directly
(VBUS A4/A9/B4/B9 + DP/DM); USB_BOOT -> TP8; VDD_EXT -> 1V8_MODEM (shifter reference only);
NETLIGHT (1.8V) -> R109 4.7k -> Q22 MMBT3904 low-side, reusing the existing Rmled1+D4G1 LED
string re-driven: MODEM_LED label -> 3V3, D4G1 cathode GND label -> MODEM_LED_K.

Block P (3.8V rail): 24V -> D20 SS34 || MAIN5V -> D21 PMEG3050EP (C50603) -> VIN_MODEM ->
U20 AP64350SP-13 (C2071691, 40V/3.5A) -> L20 4.7uH -> VBAT_MODEM. Values from datasheet
DS41976: FB 0.8V (R110 75k / R111 20k = 3.8V), RT R117 200k = 500kHz (pin must not float),
COMP R116 14k + C141 3.3nF + C142 47pF, BST C129 100nF, EP -> GND. EN = MODEM_PWR_EN (PC10)
with R113 100k pull-down: rail DEFAULTS OFF (invariant #1); EN low >= 2s = HARD_CYCLE
(invariant #3). Bulk: 2x 220uF/10V (C2827940) + 22uF/1uF/100nF/33pF/10pF + R112 1k bleed +
D22 SMAJ5.0A TVS (C113952). VERIFY at layout: D22 pad-1-is-cathode against the fp marker.

Block Q (SIM): U22 MFF2_SIM symbol (new in Drogheda-sym; FOOTPRINT TBD "Drogheda:MFF2_5x6_TBD"
- build from the chosen carrier chip datasheet; PCB sync will flag it, expected). SIM_VDD
100nF + PESD5V0S1BA on DATA/CLK/RST (D23-25, C2827694, orientation cloned from D14).

Block R (level shift): 2x 74LVC2T45DC (C730237, direction-fixed). U23 DIR=GND: 3V3 DIN_4G ->
1.8V DIN_4G_M. U24 DIR=1V8: DOUT_4G_M -> DOUT_4G (also feeds U18 RXD2) and MODEM_STATUS_M ->
MODEM_STATUS (PC9). R106 100R taps DOUT_4G -> USART6_RX (PC7). DNP 0R bypasses R107/R108
across the RTCM path. Q20/Q21 2N7002 open-drain on PWRKEY/RESET with 100k pull-downs -
MCU absent leaves the modem free (invariant #1). PWRKEY timing: SIMCom >=50ms on / >=2.5s off.

CORRECTIONS this pass: (1) the schematic has 382 WIRE SEGMENTS - the earlier "zero wires"
finding was a regex artifact (multi-line xy); label-on-pin work was unaffected (all verified
against the PCB), but the LED relabel needed a wire-graph trace, now in the script.
(2) 9 stale no_connect markers removed from MCU pins that now carry labels (PC1-PC3, PA7,
PC8-PC12). (3) A7670SA is a 124-pad LGA, not the 88 claimed in the modem survey.

NEXT: Leo runs ERC + Update PCB from Schematic (U22 will complain - footprint TBD, skip it),
then T5 = LTC4040 input-limit errata fix + U7/L7 disposition, T6 = RF Block S + netclasses.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-25 22:20:39 +00:00
Claude (Cowork)
c81b2202ac v6 T3 CLOSED: Leo's Update-PCB-from-Schematic - Block N on the board; -04B pin table verified
PCB (Leo, KiCad GUI 14:44): U18 + U21 + C119-C124 + R105 placed in the GNSS island
(U18 at 76.8, 101.4 r90 - freed MOD1 area, bottom-left). All nets verified on the board:
/3V3_GNSS 9 pads, U18 GND = 56 pads (8 + the 48-pad ground array), MCU side confirmed
(ANT_DETECT U16.9, ANT_SHORT_N U16.10, RTK_STAT U16.11, TIMEPULSE U16.23, RESET_N U16.53).
The sync also deleted MH7/MH9/MH10 - exactly the shield-bolt holes the delta doc retired;
MH4/5/6 (enclosure) and MH11 (heatsink clamp) survive. Footprints 224 -> 230.

Schematic diff vs previous commit: none (243 symbols / 666 labels / 125 no-connects
identical) - KiCad format normalization only.

-04B PIN CHECK CLOSED: the ZED-F9P-04B datasheet (UBX-21044850) pin table matches the
-15B transcription EXACTLY, all 54 pins. Spec refinement: VCC ramp is a WINDOW,
20-8000 us/V (3.3 V in 66 us .. 26.4 ms) - a normal LDO soft-start sits comfortably
inside it. Keep the bench measurement, drop the alarm.

NEXT: T4 LTE island. Needs the vendor part first:
  easyeda2kicad --full --lcsc_id=C18548276 --output <kicad>/Drogheda-v6
Standing: v6 zone fills still stale (GUI refill pending); DRC not meaningful until then.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-25 14:49:16 +00:00
Claude (Cowork)
3494413eaf v6 T3: Block N - ZED-F9P (U18) + low-noise LDO (U21) placed and wired
Leo generated the vendor part with easyeda2kicad (C5120257) -> Drogheda-v6.kicad_sym /
.pretty / .3dshapes, now registered in sym-lib-table and fp-lib-table.

CROSS-CHECK: the EasyEDA/LCSC symbol independently CONFIRMS the datasheet transcription -
pads 1-54 match the u-blox pin assignment function for function, and the 21 Reserved pads
are identical. Pads 55-102 are 48 extra GND pads (the ground array under the module), which
our symbol was missing; T3a2 adds them stacked on the pin-1 coordinate so one GND label
serves all. Symbol is now 102/102 pins, footprint = Drogheda-v6:LCC-LGA-102_L22.0-W17.0_FM660.

Block N as wired (verified by rebuilding connectivity from label-on-pin geometry):
  GNSS_TX      U16.16 + U18.43        GNSS_RX  U16.17 + U18.42
  DOUT_4G      U18.26 (RXD2, RTCM in - modem end lands in T4)
  USART1_RX    U16.43 + Rdfu1.1 + U18.27 (TXD2 uplink; K1.1 also on this net per the PCB)
  GNSS_RESET_N U16.53 (PC12) + U18.49 + R105 10k pull-up to 3V3_GNSS
  GNSS_TIMEPULSE  U16.23 (PA7) + U18.53
  GNSS_ANT_DETECT U16.9 (PC1) + U18.4
  GNSS_ANT_SHORT_N U16.10 (PC2) + U18.6
  GNSS_RTK_STAT   U16.11 (PC3) + U18.20  <- hardware answer to are-corrections-being-used
  3V3_GNSS = U21.5 + U18.33/34 + C120-C124 + R105; U21 fed from SW_5V (stays MCU-gated)
  V_BCKP   = U18.36 on the UNGATED 3V3 so ephemeris survives a power-cycle
  33 no-connects: the 21 reserved pads plus V_USB, USB_DM/DP, ANT_OFF, SDA, SCL, TX_READY,
  D_SEL (open = UART mode), SAFEBOOT_N, EXTINT, GEOFENCE_STAT and the LDO NC/NR pin.

T3c fixes two coordinates the generators emitted as 3.552713679e-15 (i.e. zero); KiCad is
not guaranteed to accept exponent notation. See the script header for the lesson: a first
attempt used a bare numeric regex over the whole file and corrupted 264 UUIDs, because
segments such as 895e-4153 parse as scientific notation. Reverted from backup and redone
scoped to (at ...) forms only, with a UUID-integrity guard. Verified 2298 UUIDs, 0
malformed, 0 exponent coordinates.

STILL OPEN: the PCB has no U18/U21/passive footprints yet - that is a KiCad
Update-PCB-from-Schematic. And confirm the -04B datasheet pin assignment on paper.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-24 23:25:44 +00:00
Claude (Cowork)
8be9f41473 v6 T3a: ZED-F9P + generic SOT-23-5 LDO symbols added to Drogheda-sym
ZED-F9P: all 54 pins, numbers 1-54 complete and unique, transcribed from the u-blox
datasheet Table 11 (ZED-F9P-15B_DataSheet_UBX-23009090). Left column = power/RF/antenna
(17), right = interfaces/control/status (16), bottom = the 21 reserved pins. Body 55.88 x
50.8 mm. LCSC C5120257 carried as a property.

FINDING that changes Block N: the ZED-F9P HAS hardware status outputs - RTK_STAT (pin 20)
and GEOFENCE_STAT (pin 19). RTK_STAT: 0 = RTK fixed, blinking = receiving and using
corrections, 1 = no corrections. That is a HARDWARE answer to the question the June and
10-Ago RCAs could not answer. Wire RTK_STAT to PC3. (Earlier note implying only the UM980
had such pins was wrong.) ANT_OFF (pin 5) also exists.

LDO_SOT23-5: generic AP2112K / TPS7A20 pinout (1=VIN 2=GND 3=EN 4=NC/NR 5=VOUT) so U21
can be any SOT-23-5 low-noise LDO without a symbol change.

OPEN - blocks the PCB side of T3, not the schematic:
 * No ZED-F9P FOOTPRINT exists. Not in the project libs, not derivable from the datasheet
   (no land pattern) and the integration manual's drawings do not survive PDF text
   extraction. EasyEDA/LCSC is blocked by the egress allowlist from here.
   Fix: run locally -> pip install easyeda2kicad && easyeda2kicad --full --lcsc_id=C5120257
 * PRE-FAB CHECK: confirm the -04B datasheet carries the SAME pin assignment as the -15B.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-24 23:12:28 +00:00
Claude (Cowork)
cfb7a0d923 v6: re-fork from v5.5+ (4b73b9e) and replay T1+T2 - Leo's copper touch-up now inherited
Leo's post-fork V5 work was copper-only: GND stitching +4 seg/+2 vias, /SYS5V -2 seg,
zones refilled 45 -> 48 polys. No footprints added/removed/moved, no pad-net changes,
schematic byte-identical. Rather than hand-merge a routing delta, v6 was re-forked from
the new v5 and the T1/T2 generator scripts replayed - deterministic and re-runnable.

Verified v6 vs v5: GND 212 seg / 176 vias, /SYS5V 57 seg, 48 filled polys all identical;
footprints 228 -> 224 (MOD1/J7/J8/SW4G1 gone); segments 1980 -> 1974 and vias 321 -> 320
(the 7 ripped /USART1_TX items). Net assertions all pass:
  /USART6_TX = U16.37 + K1.10 | /USART6_RX = U16.38 | /USART1_RX = U16.43 + Rdfu1.1 + K1.1
  /DIN_4G = K1.5 + K1.6 | /USART1_TX, /DOUT_4G, /MODEM_RST retired until T3/T4.

KNOWN: v6 zone fills are inherited from v5 and still carry cutouts for the 4 deleted
footprints - needs a GUI refill (MCP refill segfaults). Cosmetic until the layout phase.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-24 23:02:56 +00:00
Claude (Cowork)
4b73b9e679 v5.5+: Leo's copper touch-up - GND stitching +4 seg/+2 vias, /SYS5V -2 seg, zones refilled (45 -> 48 filled polys)
No footprints added, removed, moved or rotated; no pad-net changes; schematic untouched.
Captured before re-forking v6 so the v6 PCB inherits this work byte-for-byte.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-24 23:02:13 +00:00
Claude (Cowork)
d4795539e7 v6 T0-T2: fork hbox-watchdog-v6 from v5.5; delete MOD1/J7/J8/SW4G1; K1 pin10 PA9 -> PC6
T0  hbox-watchdog-v6.{sch,pcb,pro,dru} forked from v5.5 @ e6ac8cc (new files on main,
    same precedent as v4 -> v5). All internal project refs renamed, paren-balanced.
T1  Deleted the simpleRTK2B Pro socket (MOD1), both XBee sockets (J7/J8) and the modem
    reset button (SW4G1) from schematic and PCB, plus the 25 on-pin labels that carried
    their connectivity. The schematic has ZERO wires - connectivity is labels on pins -
    so no wire/junction surgery was needed.
T2  Relay K1 pin 10 (NO contact) moves from PA9 /USART1_TX to PC6 /USART6_TX, giving the
    MCU ownership of the modem RX line while K1 de-energised still feeds the receiver's
    GGA straight to the modem (MCU-dead fail-safe). PA9 freed -> no_connect. USART6_RX
    added on PC7. Retired /USART1_TX copper ripped (7 items).

Verified: /USART6_TX = U16.37 + K1.10 | /USART1_RX = U16.43 + Rdfu1.1 + K1.1 | PA9 free.
Nets awaiting T3/T4 silicon: /DOUT_4G, /MODEM_RST, /GNSS_TX, /GNSS_RX, /USART6_RX.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-24 22:51:21 +00:00
Claude (Cowork)
e6ac8cc808 v5.5: zone refills complete (F.Cu 35 / B.Cu 7 / In1 2 / In2 1 filled polys) - checkpoint before the v6 fork
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
2026-08-24 22:46:23 +00:00
aed10f8a40 auto-sync 2026-08-22 18:00 2026-08-22 18:00:10 -06:00
ae05c9f028 auto-sync 2026-08-21 18:00 2026-08-21 18:00:13 -06:00
4a8036bc48 v5.5: outline rebuilt closed 140.0x100.0mm, MH4 -> (193.192,90.323) centerline 7mm from right edge (BAT_PLUS/MODEM_LED rerouted around hole), npth_inside_courtyard -> ignore 2026-08-21 03:11:05 +00:00
eb486326ea auto-sync 2026-08-20 18:00 2026-08-20 18:00:15 -06:00
c3e8e48780 checkpoint: v5.5 as saved by Leo before Claude fixes (pre-audit report included) 2026-08-20 16:37:33 +00:00
329bd41137 auto-sync 2026-08-19 18:00 2026-08-19 18:00:05 -06:00
69bd360fd0 auto-sync 2026-08-18 18:00 2026-08-18 18:00:14 -06:00
0dd3171ced auto-sync 2026-08-14 18:00 2026-08-14 18:00:14 -06:00
624aa63048 auto-sync 2026-08-13 18:10 2026-08-13 18:10:25 -06:00
21cda79ff0 auto-sync 2026-08-12 18:00 2026-08-12 18:00:16 -06:00
a7ac49b59d auto-sync 2026-08-11 18:00 2026-08-11 18:00:15 -06:00
31f1870c47 catch-up sync 2026-08-10 15:47:51 -06:00
6e9f6e06cf auto-sync 2026-08-08 18:00 2026-08-08 18:00:15 -06:00
811f110174 auto-sync 2026-08-07 18:00 2026-08-07 18:00:15 -06:00
0dd2d63432 auto-sync 2026-08-04 18:00 2026-08-04 18:00:16 -06:00
13ea054090 auto-sync 2026-08-03 18:00 2026-08-03 18:00:18 -06:00
bc9750d258 auto-sync 2026-08-02 18:00 2026-08-02 18:00:05 -06:00
066ebe883c auto-sync 2026-08-01 18:00 2026-08-01 18:00:16 -06:00
b505cb35c2 v4 production package for JLCPCB: gerbers, BOM, CPL + audit
Fabrication Toolkit export of hbox-watchdog-v4 (EinarBoard 2.0), verified
before ordering. Board is 155.00 x 100.00 mm, 4 layers, 1.6 mm.

New in production/:
  HBOX_v4_PROD.zip             15 gerber + drill files
  HBOX_v4_PROD_bom.csv         102 lines, 25 with an LCSC number
  HBOX_v4_PROD_positions.csv   187 rows
  HBOX_v4_PROD_designators.csv toolkit by-product, not a JLC input

hbox-watchdog-v4.kicad_pcb is modified only because the toolkit's AUTO FILL
refilled zones and re-saved on export. Diffed before/after: 0 footprints
moved, 0 rotated, 0 changed side; tracks 1989 -> 1989, vias 351 -> 351,
zones 5 -> 5, filled polygons 41 -> 41. Zone fill data only.

Verification (details in the order walkthrough):
  - Row counts matched a prediction registered before the export existed:
    CPL 187, BOM 102, 35 machine-placed. No duplicate designators, no
    collisions from the toolkit's uppercasing of refdes, nothing truncated.
  - All 30 pre-registered rotation predictions matched exactly, 0 mismatches.
    The five previously-unproven packages resolved as J10 +0 deg and
    U10/U11/U13/U15 +270 deg.
  - Every non-zero rotation correction is externally backed: six packages
    (SOT-23, SOIC-8, SOIC-8-1EP, QFN-24-1EP, CP_Elec_6.3x7.7, Arduino_UNO_R3)
    are byte-identical to the v3 CPL that JLC built; the other four (LQFP-48,
    SOIC-16, SOIC-16W, TSSOP-28) match KiBot's published JLCPCB rotation
    table. KiBot's generic ^QFN- rule says 270 where the toolkit applied +90
    to U6 - v3 hardware settles it in the toolkit's favour.
  - Positions: 22 rows carry an AUTO TRANSLATE offset. 19 of 22 identical to
    the v3 export, 20 of 22 equal the pad bounding-box centroid to 0.02 mm.
    J10 is the only machine-placed part with a translation and it matches the
    centroid exactly.
  - Gerbers: 4 copper layers populated, both mask, both silk, F.Paste 40
    apertures. B_Paste empty is correct (the one bottom-side part has no
    paste). 523 PTH holes 0.30-1.63 mm, 6 NPTH at 3.20/3.25 mm.

Open before ordering: J10 (C12074 HR911105A) is the only through-hole part
carrying an LCSC number, so JLC's standard SMT line will not place it.
Also gitignore **/_to_delete/ (scratch folder for manual deletion).

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-08-01 06:57:17 +00:00
bfbf065e92 C14: netclass-scoped HV24 rule at 0.5 mm + copper fixes to satisfy it
The .kicad_dru held one unconditional (min 0.15mm).  A custom rule outranks
the netclass table and an unconditional rule matches every pair on the board,
so it was silently overriding the HV24 netclass's 0.5 mm everywhere: the
netclass said 0.5, DRC only ever enforced 0.15.

Rule file, three mutually-exclusive rules so order and specificity agree:
  1. neither item HV24                          -> 0.15 mm  (unchanged)
  2. either item HV24                           -> 0.50 mm
  3. except U2 pad-to-pad (its own land pattern)-> 0.15 mm

Rule 3 covers exactly one pair: U2 (MP1584EN, SOIC-8-EP) pad 7 (24V) to pad 9
(exposed thermal pad, GND) at 0.355 mm.  That is the manufacturer's qualified
land pattern, set by the package and not by routing.  U2's courtyard contains
9 pads and all 9 belong to U2, so the condition cannot match foreign copper;
the 24 foreign tracks/vias crossing that courtyard are excluded by the
A.Type == 'Pad' test and stay at the full 0.5 mm.

Copper: 13 of the 14 HV24-to-foreign gaps under 0.5 mm were routing, and all
13 are fixed.  No component was moved or rotated.

  3 width reductions (a narrower track can never reduce a clearance):
    479e5357  24V      -> U2.7     1.0 -> 0.6   U2's pads are 0.6 tall, so the
                                                pad was already the bottleneck
    854214dc  FREQ_FAN -> U2.6     1.0 -> 0.6   1.14 mm long, R~0.93 mohm,
                                                ~8 mV at 3 A; IPC-2221 gives
                                                ~1.9 A at 10 C rise for 0.6 mm
    30ed4012  24V      -> DzG1.3   1.5 -> 0.8   leaf branch into a BZX84C15
                                                SOT-23 clamp, sub-mA
  5 track-vertex moves (never a via centre, never a pad centre):
    /3V3_MODEM x3   corridor walks 0.55 mm east off the 24V bus
    /USB_CC2   x2   opposite ends of one 6.05 mm segment pivot apart, opening
                    pad Rrp1.1 and the GND via at the same time

Verification (shapely geometry over every pad/via/track, diffed against the
unedited baseline so nothing pre-existing is miscounted as new):
  HV24 inter-item pairs under 0.5 mm     13 -> 0
  cross-footprint pairs under 0.15 mm     0 (unchanged)
  pairs this edit created                 0 at 0.15, 0 at 0.30, 0 at 0.50
  per-net connectivity      180/180 nets whole, 0 orphan copper clusters
  static DRC   0 violations, byte-identical to the C13 run
  fab sweep    0 findings (edge clearance, drills, annular rings, outline)
  thinnest new margin  0.5650 mm (pad Rrp1.1 <-> trk 1fed5fbb), looser than
                       five pre-existing HV24 pairs on this board
  /24V_IN and IGN_IN copper byte-identical; 24V differs only in two width tokens

Pour reflow: the 0.5 mm rule widens the zone pullback around HV24 from 0.3 to
0.5 mm.  Simulated the refill on all four pours at both values — the anchor
partition is identical (F.Cu 547 anchors / 35 groups, B.Cu 222/2, In1 33/5,
In2 220/7), so pressing B strands nothing.  Area loss 115 mm2 on F.Cu, 4.6 mm2
on each of the other three.

Press B to refill zones before running DRC.
2026-08-01 05:45:07 +00:00
449588649a C13: clear the last KiCad 10 DRC error - stranded GND_POUR_FCU island (EinarBoard 2.0)
Leo's post-C12 DRC run left exactly one error:

  [unconnected_items] Zone 'GND_POUR_FCU' [GND] on F.Cu <-> Zone 'GND_POUR_FCU' [GND] on F.Cu

KiCad prints only the zone anchor (60.1917, 40.3231) for both endpoints, so the
report cannot localise the stranded island. Located it analytically instead.

Root cause: U11 pad 9 [GND] @ (91.1275, 55.7600). It is the only GND item on the
board whose item-only connectivity cluster never reaches the In2.Cu GND plane
(two independent fill-independent proofs agree: layer-reach and In2-anchor). An
island survives KiCad's isolated-island removal only if some item props it up,
so pad 9 was propping up a GND_POUR_FCU island that touches nothing else.
island_removal_mode cannot fix that - it needs copper.

Pad 9 is fenced on all four sides (LQFP-48 lead ring, pad 8's westward /3V3_ETH
escape, pad 10's eastward /ETH_RSET escape, the /ETH_RXP chain under the body).
A 0.05mm grid router reached only 227 of 20883 legal cells and found no way to
touch existing GND copper without a via, so a through via is mandatory. A
0.005mm sweep of every legal via site in that pocket picked the best one on the
board's existing drill inventory - no third drill size added.

  + F.Cu GND track w0.3  (91.1275,55.7600) -> (90.1000,55.7600) -> (89.9950,55.8900)
  + F.Cu-B.Cu GND via 0.6/0.3 @ (89.9950,55.8900)
  * U11 pad 9 -> (zone_connect 2)

Both track legs hold +0.2000mm clearance - the structural ceiling for a 0.3mm
track between 0.3mm leads on 0.5mm pitch. The via holds +0.1758mm copper and
+2.9705mm hole. The site sits inside GND_POUR_FCU, GND_POUR_BCU, P3V3_PLANE_IN1
and GND_PLANE_IN2 and outside MAGJACK_NO_POUR, with the nearest In2 signal
copper 1.10mm away, so the barrel lands on solid In2 GND plane.

zone_connect 2 mirrors the landed C12 treatment of pad 29: pads 8 and 10 each
knock 0.5mm of pour out around themselves, covering the whole pad-9 lane
(0.10mm tall < min_thickness 0.25), so the pour cannot reach pad 9 in any
connect mode. Solid mode removes the pad from the minimum-spoke test rather
than leaving a starved thermal behind.

Verified on the output file:
  drc_c12.py   0 hard clearance violations, same 49 sub-epsilon marginals as C12
  proof_c13.py 0 GND clusters without an In2 GND-plane anchor (was 1)
  fcu_only.py  0 F.Cu-only GND clusters (was 1 = pad 9)
  24V / /24V_IN / IGN_IN copper byte-identical (45 segments)
  segments 1984->1986  vias 351->352  zones 5->5  footprints 189->189

Backup: .mcp-backups/hbox-watchdog-v4.kicad_pcb.pre-C13 (md5 042efd5d)
Pushed:  md5 94d36711d60985eef109913fcee36b09, 3502885 bytes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-08-01 02:08:00 +00:00
2662a3277a housekeeping: untrack KiCad ~*.lck session locks, archive v4-drc.rpt
The .lck files are per-session editor locks picked up by an auto-sync commit;
they should never be versioned. v4-drc.rpt is Leo's KiCad 10 DRC run that C12
was built against (84 raw / 83 unique, 7 errors) - kept as the before-record.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-08-01 01:10:32 +00:00
9512aa48cb C12: clear all 3 KiCad 10 DRC errors + dangling-via warning (EinarBoard 2.0)
E1  clearance 0.1433 < 0.15  (/LED_A via vs /I2C_SCL via, 4 raw reports)
    Relocated the /LED_A via 202c8cb4 from (147.15,85.85) to (147.25,86.22),
    dead centre of the U13.1/U13.2 gap. uuid preserved; both attached segment
    endpoints carried (In1.Cu 375e8fa7, B.Cu dee4fa4e). Worst gap now +0.2405.

E2  unconnected_items x2 + starved_thermal x1 -- ONE root cause.
    The F.Cu GND pour pocket around U11 pad 29 was an island: it touched the
    pad with a single thermal spoke but was fenced in by the LQFP-48 lead ring
    and the escape routing, so it reached nothing else. Gave pad 29 a real
    copper escape west to a new GND via that punches through to the In2 GND
    plane, and set the pad to solid zone connection so the 2-spoke thermal
    rule stops applying to a pad the pour can only reach from one side.
      seg F.Cu w0.3 GND (99.4525,55.26)->(98.65,55.26)   margin +0.2000
      seg F.Cu w0.3 GND (98.65,55.26)->(97.55,54.45)     margin +0.2000
      via 0.6/0.3 F.Cu-B.Cu GND @(97.55,54.45)           copper +0.2718
      U11 pad 29 -> (zone_connect 2)
    +0.2000 is the structural ceiling for a 0.5mm-pitch lead escape with a
    0.3 track, and matches the neighbouring /3V3_ETH and /ETH_XI escapes.

E3  via_dangling  /3V3_ETH via 3b0bb378 @(87.18,55.23) connected on F.Cu only.
    Deleted. Touch test: 4 touching F.Cu segments, zero on In1/In2/B.Cu. The
    F.Cu run at x=87.18 is collinear and continuous without it.

Verified: static DRC 0 hard violations (49 pre-existing marginals inside
KiCad's 0.0005 epsilon, unchanged). Per-net islands unchanged at 1 for
/LED_A /3V3_ETH /I2C_SCL /ETH_XI /ETH_RSET. New via lands inside
GND_PLANE_IN2 + GND_POUR_BCU, outside MAGJACK_NO_POUR. U11 is a plain
LQFP-48 with no exposed pad, so the under-body via is clear. Leo's 24V-class
copper (24V /24V_IN IGN_IN, 45 segments) byte-identical.

Backup: .mcp-backups/hbox-watchdog-v4.kicad_pcb.pre-C12 (md5 7c2202cb)
New:    md5 042efd5dd0cf99fdcfd27974b7bcb3c1  3502425 bytes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-08-01 01:09:55 +00:00
54d5018878 auto-sync 2026-07-31 18:00 2026-07-31 18:00:15 -06:00
f2232e9e4e 1.1 Phase C11: clear all DRC findings on EinarBoard 2.0 (v4)
Static-DRC battery (true pad geometry: circle/oval/roundrect/rect, NPTH as
hole-only) over 693 pads / 351 vias / 1982 segments -> 0 violations at the
project rule of 0.15mm min clearance, 0.25mm hole-to-hole.

Fixed:
 [1] hole-to-hole -0.300  duplicate GND stitching via coincident at
     (94.79,60.30) -- JLCPCB would have drilled the same hole twice. Removed.
 [2] U11.13 (NC)  +0.100  GND pad14 stub zigzag -> one straight lane x93.01
 [3] U13.3 (GND)  +0.130  I2C_SCL y=87.6 excursion -> single lane y=87.5277;
     the GND stitcher the zigzag was dodging moved 0.138 north onto U13.2
     pad copper (same uuid/net, still bonded to its track)
 [4] ETH_LINKLED  +0.130  3V3_ETH under-body via/rung -> y=57.455, the exact
     centre of the only legal B.Cu window (RSET@56.89 / LINKLED@58.07);
     165000nm both ways
 [5] U11.17        +0.140  GND pad16 lane x94.14/94.15 -> single lane x94.10
 [6][7] U11.46/47  +0.150  ETH_PMODE north lane y=49.31 -> 49.24
 [8] stranded 1.5x1.5mm rule area (tracks/vias/pour not_allowed) nested in
     U3's footprint but stranded ~22mm east of it with zero copper within
     3mm -- a phantom no-route trap. Removed.
 [9] stranded /3V3_ETH web on In2.Cu (the GND inner plane): orphaned remains
     of the pad17 via removed in C10e, connected to nothing, punching a
     clearance void in the GND plane. Removed.

Verified: paren balance 0; 188/188 footprints intact (only U3 shrinks, by the
nested rule area); top-level block census unchanged but segment 1992->1982 and
via 352->351; every touched net resolves to exactly ONE copper island
(/3V3_ETH went 2 -> 1); 24V-class hand-routed copper byte-identical
(24V 23 segs, /24V_IN 12 segs, IGN_IN 10 segs).

Pre-C11 board preserved at .mcp-backups/hbox-watchdog-v4.kicad_pcb.pre-C11

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-31 23:22:16 +00:00
cdc3bfe8f6 auto-sync 2026-07-30 18:00 2026-07-30 18:00:16 -06:00
e06387d6a7 1.1 Phase C10: production footprint corrections + LCSC + silk rev (PRE-FAB GATE)
CRITICAL FIXES - parts only exist in these packages:
- U11 W5500: QFN-48-1EP -> LQFP-48_7x7mm_P0.5mm (ring 3.4375->4.1625, EP+paste
  deleted, courtyard 10.3mm sq, 48 track retargets, RXN/RXP/RSET/GND(3,23,38-48)/
  3V3_ETH(15,17,28)/1V2(22)/XI/PMODE/ACTLED/LINKLED reworked under+around body)
- U13 PCF8574: SOIC-16 narrow -> SOIC-16W_7.5x10.3mm (pads +-4.65, SW_BAT neck,
  FAN_PWM/SCL/LED_A rework)
- U12 MP1584: stays plain SOIC-8 (EP addition attempted, reverted: SYS5V+COMP
  route through EP zone; belly-over-mask accepted at 150mA load - flagged)
- LCSC fields (board+sch): W5500 C32843, SC16IS752 C57156, MP1584 C15051,
  PCF8574T C7605, SP3485 C8963, MAX3232 C15846, HR911105A C12074, SS34 C8678 x2
- sch footprint fields synced (U11/U13); silk rev 'HBOX v4 - 2026-07';
  toolkit ARCHIVE_NAME HBOX_v4_PROD
- verify: seg/via clearance 0 hits <0.125; SMD pad-aware 0 hits <0.09;
  census 0 opens (GND pads U11.9/U11.29 pour-served by design)
2026-07-30 23:21:58 +00:00
010800d72f 1.1 Phase C9b: Leo's zone refill save (fills baked, +1 via) 2026-07-30 23:21:35 +00:00
cd0626d377 1.1 Phase C9: stitching-via alignment + silkscreen distance check
- 54 of 90 free GND stitching vias aligned into rows/columns (axis equalize +
  even spacing, move cap 2.0mm, largest 1.3mm); 8 track-connected free vias frozen
- every move clearance-validated (>=0.15mm to other-net copper, keepout excluded)
- +1 GND via at (92.25,59.8): W5500 AGND cluster (C93/C94/U11.14/16) was
  pour-served only — now hard-bonded to the In2 plane
- silkscreen re-audit under new via field: 164 refs re-derived by the uniform
  0.15mm-gap rule, 8 re-placed, 0 left unplaced
- verify: census 0 open nets, clearance-lite 0 hits <0.125mm
- NOTE: zone fills stale around moved vias — refill (B) in pcbnew
2026-07-30 21:33:03 +00:00
438cd028f7 1.1 Phase C8b: Leo's GND via stitching + zone refill (+88 vias incl. 90 free stitchers, +28 seg) 2026-07-30 21:32:43 +00:00
e3c566a663 1.1 Phase C8: outer GND pours + silkscreen tidy
- GND_POUR_FCU / GND_POUR_BCU zones added (full board, params mirror In2 plane:
  clearance 0.3, min 0.25, thermals 0.5/0.5); unfilled — press B in pcbnew
- 164 reference designators re-placed at consistent spots (above-center preferred,
  below/left/right fallback), collision-checked vs pads/courtyards/vias/texts/edge;
  fonts normalized to 1.0mm/0.15
- 3 orphaned MOD1 pin labels (3V3/SW5V/GND) re-homed to the module's new position
- verified: copper untouched (census 0 opens, clearance clean), non-silk content
  byte-identical
2026-07-30 08:48:07 +00:00
c235016447 1.1 Phase C7b: Leo's hand-finish — all 20 opens closed (+179 seg, +29 via), In1/In2 zones filled
Census: 0 open nets, 0 orphans (GND+3V3 plane modes). Clearance-lite: 0 hits <0.125mm.
Nets touched: GND 3V3 /3V3_ETH /BAT_PLUS FREQ_FAN /MAIN5V BST_FAN /VEH5V /ETH_LINKLED
/ETH_FB /ETH_RSET /RS485_A + minor reroutes.
2026-07-30 08:47:52 +00:00
dda2cdf626 1.1 Phase C7: Freerouting session imported file-level (1773 seg / 232 via, 135 nets)
- Leo's hand-routed 24V / /24V_IN / IGN_IN kept byte-identical (SES echo verified subset)
- /ETH_RXN via slid 0.24mm along In2 exit: RXN/RXP via pair gap 0.11 -> 0.156mm
- clearance-lite clean at <0.125mm hard threshold; only non-track content untouched (verified)
- 20 open connections remain for hand-finish (W5500 supplies/RSET/LINKLED, U6 buck pins,
  P15 RS485_A, U2 BST/FREQ_FAN, GND locals incl. magjack keepout area)
- includes Leo's Freerouting artifacts (PROD dsn/ses/rules) + track-width presets in .kicad_pro
- NOTE: broken MCP import_ses had gutted the on-disk board (0 tracks, 133/190 footprints)
  at 07:07; recovered from container-staged 5a65eefb copy == git HEAD blob
2026-07-30 07:29:29 +00:00
ff1bdf5a42 1.1 Phase C6-pre: Leo's serial/ethernet hand-routing + RS485 fix baseline before SES import
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-30 07:07:26 +00:00
aa7f5a674b 1.1 Phase C5: MH1/MH3 deleted, first critical copper hand-routed
- MH1 and MH3 mounting holes removed per review (4-corner mounting via
  MH2/MH4/MH5/MH6 remains); Leo's placement pass B7 baselined first
- 54 new F.Cu segments (20 verified hops): buck SW node U12-C100-L8-D11 at
  0.8mm, SYS5V+FB+COMP chains, XI crystal loop (U11-Y1-C95), SER_XTAL1
  (U10-Y2-C82), TXP tap R92-J10 legs, RX terminations R94/R95->C97, TCT
  island J10.4-C98-R92.2/R93.2
- Leo's 46 hand-routed 24V/IGN segments byte-preserved; 0 cross-net
  clearance violations (0.2mm), parens balanced
- Remaining 16 congested hops (QFN fan-out, XO, RCT tail, 3V3_ETH trunks)
  deliberately left for Freerouting push-and-shove

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-30 03:17:52 +00:00
bdb2e3ab42 1.1 Phase C3+C4: line tidy passes + IGN divider fix (Rigb1 3.3k)
- C3: 22 detected component lines evened (edge-gap distribution between line
  endpoints), 58 parts nudged; everything touched by the hand-routed 24V/IGN
  tracks frozen (P1,Q10,D10,DzG1,C10,C11,C22,Rig1,Ren1,U2)
- C4: finer pass — pairs included (33 lines total, 17 more parts), 8 R/C
  rotations normalized 180->0 / 270->90 (unpolarized only, pad angles kept
  consistent), TOL 1.0mm
- IGN divider: Rigb1 10k -> 3.3k in sch+board (24V ign -> 3.13V at PA5, FT-pin
  safe incl. 35V transients; was 7.5V, out of spec). Fleet rework note: same
  swap recommended on the 10 EinarBoard 1.0 units
- Leo's 46 track segments byte-identical through both passes; 0 courtyard
  conflicts; parens balanced

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-30 02:53:25 +00:00
1ddf4b1798 1.1 Phase C3-pre: Leo hand-routes the 24V entry — 1.5mm on 24V/24V_IN/IGN_IN at P1
44 segments at 1.5mm (24V x22, /24V_IN x12, IGN_IN x10) + 2 GND stubs.
Board resaved by KiCad 10 (format normalized, 2.46MB -> 0.97MB).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-30 02:52:53 +00:00
21a907600f 1.1 Phase C2: alignment pass on the Ethernet corner + aesthetics
- Column A (R94,R95,C97,C98,C95): x=83.9, even pitch 3.575 (y 54.2-68.5)
- Column B (R92,C92,C93,C94,R96): x=87.5, even pitch 3.175 (y 50.3-63.0;
  top pulled below MH1 which R92 would have hit at Leo's y46.4)
- C102/C90/C91 row: even x pitch (92.2 / 95.85 / 99.5 at y63.9)
- Serial column (C82,C83,R82,JP5): x=72.5, even pitch 4.4; Y2 centered on
  the U10/U15 column (x=72); C85-C87 even pitch 2.4
- C96 kept at Leo's spot (Y1-centerline slot blocked by Y1/Rig1 courtyards)
- Verified: 0 pairwise courtyard conflicts

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 19:33:51 +00:00
548b69f177 1.1 Phase C1: W5500 datasheet verification — 2 bugs fixed, Ethernet unblocked
Checked against WIZnet W5500 datasheet v1.1.0 (official pin table):
- CONFIRMED correct: pin 23 RSVD->GND, pin 18 VBG floating, EXRES1 12.4k/1%,
  PMODE[2:0]=111 autoneg via pins 43-45, LINKLED/ACTLED pins 25/27 active-low
  sink topology, TXN/TXP/RXN/RXP order (1/2/5/6), SPI on 32-37
- BUG FIXED: RSVD pins 38-42 were floating; datasheet requires GND. Added
  5 GND stubs on U11 in the schematic + (net GND) on board pads 38-42
- BUG FIXED: TOCAP/1V2O caps were 10uF/4.7uF; datasheet requires 4.7uF/10nF.
  C90 -> 4.7uF, C91 -> 10nF (sch + board values; footprints unchanged)
- R83 board value harmonized to sch's 12.4k/1%
Magjack HR911105A: wiring matches the standard table (TX 1/2, RX 3/6,
TCT pin4->3V3_ETH, RCT pin5->6.8nF, internal Bob Smith). Bench-check with
DMM before flash: pins 4/5 CT assignment + LED anode/cathode on 9-12.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 18:12:51 +00:00
f9023d069a 1.1 Phase C0: routing prep — snap/align placement, strip all copper
- All footprint origins snapped to 0.1mm; 37 near-aligned row/column members
  equalized (same-prefix groups within 0.35mm)
- ALL tracks erased for the clean re-route: 1100 segments + 237 vias removed;
  zones kept (GND pour definitions + MAGJACK_NO_POUR rule area)
- Verified on Leo's B6 placement: 0 courtyard conflicts, nothing outside the
  outline, parens balanced

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 18:03:45 +00:00
df6fd8c826 1.1 Phase B6: manual placement pass (Leo) — board arranged in KiCad
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 18:01:12 +00:00
c4dad2d600 1.1 Phase B5: ArduSimple +25mm (silk outline on the board edge), SW4G1 to the modem
- MOD1 shifted +25mm east of B4: its silkscreen outline (module body incl.
  USB/SMA overhangs, 24.16mm west of the pad hull) now lands 0.8mm inside the
  left board edge — connectors overhang the front as intended; pad hull
  x85.5-131.8. U10 no longer displaced (module clears its Phase B spot)
- SW4G1 (4G NTRIP reset) moved beside the XBee sockets J7/J8 at (188,98.8),
  2 stale stubs ripped; frees the bottom-edge strip x143-153
- P15/P16 dropped 0.7mm (origin y133.1) so their bodies clear the module's
  bottom pad row; entry faces overhang the edge 1.3mm
- C103 clear of the module top pad row at (88,75.4)
- Verified: 0 pairwise courtyard conflicts; module's 32 pad holes clear of
  all courtyards/pads; silk min-x 61.03 vs edge 60.19

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 15:54:21 +00:00
5eb1ed3239 1.1 Phase B4: correct module mixup — ArduSimple (MOD1) to front-left, Blackpill restored
J1/J2 are the STM32 Blackpill sockets, not the GNSS module; B2/B3 moved the
wrong part. This rebuilds from the Phase B baseline (0af0373):
- Blackpill J1/J2 back at original position/rotation with v3 routing intact
- MOD1 (ArduSimple simpleRTK2B Pro, the 10/8/6/8 socket pattern) moved 44.8mm
  left: hull now x60.5-106.8, west edge 0.3mm from the board edge; 18 stale
  pad stubs ripped for re-route
- P15/P16 into the bottom-edge window MOD1 vacated; U10 tucked between the
  module rows (1.2mm TSSOP under ~8.5mm standoff); C103 clear of the top row
- ANT_CORRIDOR keepout retired (module owns the front-left; antenna exits there)
- 3D model vars repointed KICAD6/7 -> KICAD10 (58 refs)
- Verified: 0 pairwise courtyard conflicts; MOD1's 32 pad holes individually
  checked clear of all courtyards and pads

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 15:40:54 +00:00
b9791a11d7 1.1 Phase B3: ArduSimple vertical, flush along the left edge; front cleared
- J1/J2 rotated to vertical rows: J2 (outer) x63.77, J1 (inner) x78.77,
  y52.8-101.1 — module hugs the front edge full-length, USB end (J1 pad20
  /SYS5V) at the top-front corner; antenna exits directly at the front
- Front edge cleared: P15 (RS-485) -> top edge between MH5/MH1, P16 (RS-232)
  -> bottom edge west of the modem pad row, H4 TTL -> top strip next to P5
- RJ45 kept at the bottom-left of the front edge (no other edge window fits
  a 19x22.3mm magjack) with the no-pour zone moved under it
- Serial cluster re-laid east of the module; W5500 satellites auto-placed
  by greedy collision-free placer; 0 pairwise courtyard conflicts (190 fp)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 05:42:46 +00:00
61064fe76c 1.1 Phase B2: SimpleRTK2B module to the front-left edge per review
- J1/J2 socket pair translated -43.43mm: rows now x62.0-113.8, USB end
  (J1 pad20 /SYS5V) at the left board edge; 49 stale J1/J2 pad stubs ripped
- Ethernet corner rebuilt lower-left: RJ45 J10 on left edge y106-125 inside
  relocated MAGJACK_NO_POUR zone, W5500+25MHz+terminations below the serial
  stack, clear of the existing R5/R6/R7/D1/C5/C7 LED cluster
- ANT_CORRIDOR_KEEPOUT retired (antenna now exits at the module end itself)
- Rig1 nudged below Rigb1 (was inside J2's new courtyard band), stub ripped
- 3D models: 58 legacy KICAD6/KICAD7 3DMODEL_DIR refs repointed at
  KICAD10_3DMODEL_DIR so new parts render in the 3D viewer
- Verified: 190 footprints, 0 pairwise courtyard conflicts, parens balanced

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 05:20:21 +00:00
0af0373def 1.1 Phase B: board grown to 155x100 (20mm left), placement for blocks M/N/O
- Outline left edge 80.19->60.19; MH5/MH6 mounting holes cloned to new corners
- Antenna corridor keepout front-left (notched around MH6) + magjack no-pour/no-via zone
- RJ45 J10 + RS-485 P15 + RS-232 P16 on new left edge behind antenna corridor
- W5500 U11 + 25MHz + terminations between jack and P5; 3V3_ETH buck U12/L8/D11
  in the freed P13/H3 gap under the module (low-profile), bulk caps at load
- SC16IS752 U10 serial cluster behind P15/P16; MAX3232 U15, SP3485 U14
- PCF8574 U13 clear of MOD1 pad ring; RGB JST P14 on right edge (freed P3 slot)
- H4 TTL header moved to front edge (was under module, on D5)
- 24V entry block relocated beside P1 (Q10/C10 in P12 lane, D10/DzG1/Rrp1 pocket);
  old cross-board 24V routing ripped for HV24 re-route
- P3/P13/H3 depopulated; J1/J2/DB pad nets updated (ETH SPI, SER_IRQ, LED flip)
- Fix Phase A miss: SC16IS752 pins 13/14 (I2C SCL/SDA) now wired in sch + board
- Placement verified: 190 footprints, 0 courtyard conflicts, 0 corridor intrusions,
  all new nets 2-ended (verify_phase_b.py)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 04:39:35 +00:00
ca96c94ad6 HBOX v4: project renamed hbox-watchdog-v4 (199 sch + 113 pcb refs); v3-PROD files restored to as-fabricated as the frozen EinarBoard 1.0 record; ERC endpoint_off_grid muted on v4
v4 = the live 1.1/Phase-A design (J1 renumbered, blocks M/N/O, HV24, PFI 4.40V). v3-PROD trio = exact as-fabbed state from 9892279 (mirrored J1 as the bench/fleet boards physically are) - do not edit. dru/prl carried to v4. Off-grid warning backlog stays visible-but-muted; real geometry sweep slated for Phase D.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 03:34:46 +00:00
7798d9c4f9 Phase A ERC fixes: regenerate blocks on-grid, own-column stub geometry (kills all 23 errors incl. the C85-C89 net fusion / GND-3V3 short), PWR_FLAGs SYS5V+3V3_ETH, direct LED nets, R61 preserved, netclass patterns re-applied after KiCad session clobber
Root cause of 23 ERC errors: vertically-stacked 2-pin parts closer than 15.24mm shared stub columns -> KiCad merged collinear overlapping stubs -> orphaned pins + fused nets (C85-C89 chain shorted C1N/C2P/VP/VN/GND/3V3; RGB chain fused). Regenerated from pre-Phase-A base with grid-snapped origins, one x-column per part, geometry auditor (collinear overlap + T-touch + label-anchor collision checks) now part of the generator. P13 depop made surgical (R61 FB wire preserved). PF10/PF11 added. rjmap LED/TCT nets direct (no alias bridges). Netclass patterns re-applied onto KiCad-canonical pro; note: pro file is vulnerable to open-KiCad resave clobber.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 03:28:55 +00:00
0b1d542e3b 1.1 Phase A: schematic blocks M/N/O (SC16IS752+RS485+RS232, W5500+MagJack+3V3_ETH buck, PCF8574+RGB), gauge->expander frees SPI2, depop P3/P13/H3
59 new parts from official KiCad libs (pinouts verified, extends-flattened). Gauge LEDs flipped common-anode (PCF8574 sinks). PB12-15 -> W5500 SPI2; PA15/PB2/PB8 unlocked (ETH_RST/ETH_INT/SER_IRQ). SC16IS752 strapped 0x4D (0x48 collides with TMP102). 220uF VEH5V bulk cap (C78). Netclass patterns slash-fixed; HV24 exclusively owns 24V/ignition nets. RevNum_EJ1 footprint saved to Drogheda.pretty + fp-lib-table. Paper A1. VERIFY flags in Notes: W5500 RSVD/VBG/TOCAP, magjack termination + LED pin order. ERC in KiCad UI pending (Leo).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 02:17:05 +00:00
0f82a667c4 EinarBoard 1.1 design brief: locked decisions (RS-485+RS-232 via SC16IS752, on-board W5500 Ethernet, RGB status LED, board growth) + execution phases
Keystone: gauge moves to PCF8574 on I2C1 -> frees SPI2 for W5500; SC16IS752 dual-UART bridge on I2C gives RS-485 (Modbus RTU) + RS-232/TTL with zero MCU pins. New 3V3_ETH rail from SYS5V (survives stack power-cycles). Carry-over errata state + depop list + phases A-E.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-29 01:58:39 +00:00
bca0d36032 auto-sync 2026-07-25 18:00 2026-07-25 18:00:14 -06:00
19c15e2864 EinarBoard respin WIP: E-J1 pad renumber, PFI 4.40V (R51 270k), HV24 24V clearance class, J1 nets ripped for reroute
J1 pads renumbered end-for-end (positions/uuids kept, nets follow numbers, lib id renamed Drogheda:..._RevNum_EJ1 so library-update cannot revert); verified pad-by-pad against the module landing map. R51 287k->270k on board+schematic (PFI trip 4.60->4.40V falling, per 24-Jul bench data). HV24 class (0.5mm clearance) assigned to /24V_IN, 24V, IGN_IN, Q10_GATE after the 23-Jul inner-layer bridge incident. 177 segments/vias ripped on the 11 J1 signal nets + 5 power stubs: reroute pending in the inter-socket channel. NOTE: pre-existing PWR_HI/PWR_MID netclass patterns lack the '/' prefix and likely never matched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-25 04:04:12 +00:00
9f7d43ba93 auto-sync 2026-07-24 18:00 2026-07-24 18:00:14 -06:00
914a3fd2a9 Firmware review: v2.3 as EinarBoard 1.0 production candidate (2026-07-24)
Verified findings: millis()-rollover recovery-gate collapse (uint32-modelled), fan-tach false-fault on 2-wire fans, PROD silicon undriven (CHRG_EN/STAT/FAULT, BYP_CTRL/K1, NTC PB1, gauge). v3.0 scope in doc section 4. Bumps firmware submodule to ea1d84c (v2.2+v2.3 source + tools/hostsim harness).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
2026-07-24 01:27:20 +00:00
98922790c2 auto-sync 2026-07-23 18:00 2026-07-23 18:00:14 -06:00
0182051d6a auto-sync 2026-07-22 18:00 2026-07-22 18:00:14 -06:00
b2d74bc145 auto-sync 2026-07-20 18:00 2026-07-20 18:00:14 -06:00
de9a4f97a8 auto-sync 2026-07-13 18:00 2026-07-13 18:00:15 -06:00
677ca33ac1 auto-sync 2026-07-12 18:00 2026-07-12 18:00:14 -06:00
7790a7227d auto-sync 2026-07-11 18:00 2026-07-11 18:00:15 -06:00
3d25a79cf5 auto-sync 2026-07-10 18:00 2026-07-10 18:00:15 -06:00
0b984b6a0f auto-sync 2026-07-09 18:00 2026-07-09 18:00:14 -06:00
5db46d9092 sync: commit before registering as submodule 2026-07-08 14:58:40 -06:00
a390a47e77 auto-sync 2026-07-07 18:00 2026-07-07 18:00:12 -06:00
7c1353d5c3 auto-sync 2026-07-06 18:00 2026-07-06 18:00:09 -06:00
4de31e6aaa auto-sync 2026-07-05 18:00 2026-07-05 18:00:08 -06:00
c0f9f11ae5 auto-sync 2026-07-04 18:00 2026-07-04 18:00:09 -06:00
addebea5bb auto-sync 2026-07-03 18:00 2026-07-03 18:00:09 -06:00
2c3dffa232 2026-07-02: PROD schematic complete (ERC 0) + carrier-board PCB + doc sweep to the Jul-2 ledger
Electrical/PCB:
- LTC4040 Block B sized to the 12 Ah 1S4P pack (RPROG 825R -> 2.42 A ~ C/5,
  RS 8 mR -> 3.1 A input limit, PFI 4.60 V, backup 4.79 V, charge 4.00 V Li-ion
  via VSYS-referenced straps) + Block E cutoff (P11) + Block F PA4->VEH5V re-tap
  + Block H fail-safe Modo-B bypass (K1 normally-closed relay) + Block I NTC->PB1.
- CARRIER-BOARD conversion: simpleRTK2B Pro on UNO-pattern female headers (MOD1;
  D0/D1=UART1, D2=RX2, D8=TX2, IOREF=3V3, 5V=SW_5V) + 4G NTRIP Master on on-board
  XBee socket (J7/J8; VCC=3V3_MODEM via new Block K MP1584 buck off SW_5V - the
  HP XBee socket is 3.3 V not 5 V). Board 120x100, placement + GND pour + DRC
  baselines. Custom symbols: LTC4040EUFD, AO4406A, SimpleRTK2B_Pro_Socket.
- Fixed duplicated U2, stale no-connects, A4->A3 sheet; ERC 0 errors.

Docs:
- Canonical electrical-design-state + production delta (Block B values table,
  5b/5c/5d/5e) + design/rationale/connections/BOM swept to the Jul-2 assumptions
  ledger (Conexiones-por-Bloque xlsx).
- Guia de Conexion Protoboard: LaTeX source now maintained in-repo -> v2.1 PDF.
- CircuiTikZ sheet + wiring Beamer: block 11 (NTC->PB1) + guinda ignition legend.
- Client decks: Avance v1.1 (overclaims fixed) + RCA v1.1 (2-jul addendum).

Repo hygiene:
- .gitignore: live rtk-config (SIM/APN/NTRIP creds) now ignored and REMOVED from
  tracking (NOTE: rotate those credentials - they exist in prior commits);
  KiCad .bak/snapshots/.history, LaTeX intermediates, Office locks ignored+purged.
- Removed rogue .history gitlinks that broke git status.
2026-07-02 22:18:56 -06:00
effe473d2b auto-sync 2026-06-24 18:00 2026-06-24 18:00:06 -06:00
e43f9a60c1 add objectivity rule across all projects 2026-06-24 00:44:04 -06:00
eef023e15a auto-sync 2026-06-22 18:00 2026-06-22 18:00:16 -06:00
fd7b26b357 Initial commit (Hub backfill) 2026-06-21 23:39:49 -06:00