25 KiB
| title | tags | project | author | date | status | authority | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EinarBoard v6 — Phase 2 — Schematic Delta (v5 → v6) — Build Spec |
|
Project Drogheda | Helgen CTO + Claude | 2026-08-24 | Active — THE schematic spec for v6. Every net/pin below is verified against the as-drawn `hbox-watchdog-v5.kicad_pcb` netlist (extracted 2026-08-24), not assumed. | implements Phase 2 of `2026-08-24_…EinarBoard-v6_GNSS-4G-Integration_Design-Brief_v1.0.md`. Supplements `watchdog-electrical-design-state.md` (canonical) and `watchdog-production-schematic-delta.md` (the v3 precedent for this document's format). |
EinarBoard v6 — Schematic Delta
Base:
kicad/hbox-watchdog-v5(EinarBoard 3.0 / v5.5, 15 pcs in fab since 22-Ago, git checkpointc3e8e48). Target:kicad/hbox-watchdog-v6.Method rules, unchanged and non-negotiable: file-level KiCad edits only (the MCP backend clobbered disk state on 24-Jul — read-only MCP queries are fine); git checkpoint after every block; every structural edit verified by an independent parse;
%.10gcoordinates; footprint rotation = R(−θ); zone refills in the GUI only.⚠ Before starting: clear the stale
.git/*.lockfiles and confirm the v5.5 fix commit actually landed. This has bitten two sessions running.
0. ⚠ Two corrections to the v6 brief, from the extracted netlist
The brief was written before the netlist was pulled. Both of these were wrong:
- "Spare PCF8574 pins" — there is only ONE.
U13(PCF8574T, SOIC-16 WIDE) has P0–P3 on/BATLED1–4, P4–P6 on/RGB_R/G/B. OnlyP7(pin 12) and~INT(pin 13) are free. All new control signals therefore go on MCU pins, of which there are plenty (§3). /MODEM_RSTis not MCU-controlled today. It connects onlyJ7.5andSW4G1.1(a pushbutton). The firmware has never been able to reset the modem in software — its only tool is killingSW_5VviaPWR_CTRL. v6 fixes this (Block T).
A third finding worth recording: /3V3_MODEM is made by U7 (MP1584) → L7 → 3V3_MODEM,
input /SW_5V. U7's job changes completely in v6 (§Block P).
1. Verified v5 baseline (extracted 2026-08-24)
1.1 STM32F411RET6 (U16) — as drawn
| Pin | Port | Net | Pin | Port | Net |
|---|---|---|---|---|---|
| 2 | PC13 | /LED_C13 |
41 | PA8 | /CHRG_EN |
| 8 | PC0 | /ETH_INT |
42 | PA9 | /USART1_TX |
| 14 | PA0 | /BAT_SENSE |
43 | PA10 | /USART1_RX |
| 15 | PA1 | /PWR_CTRL |
44/45 | PA11/12 | /DFU_DM /DFU_DP |
| 16 | PA2 | /GNSS_TX |
46/49 | PA13/14 | /SWDIO /SWCLK |
| 17 | PA3 | /GNSS_RX |
50 | PA15 | /ETH_RST |
| 20 | PA4 | /5V_SENSE |
55 | PB3 | /CHRG_STAT |
| 21 | PA5 | /IGN_SENSE |
56 | PB4 | /CHRG_FAULT |
| 22 | PA6 | /FAN_PWM |
57 | PB5 | /BYP_CTRL |
| 26 | PB0 | /EXT_LED |
58/59 | PB6/PB7 | /I2C_SCL /I2C_SDA |
| 27 | PB1 | /NTC_TEMP |
61 | PB8 | /SER_IRQ |
| 28 | PB2 | /BOOT1_STRAP |
33–36 | PB12–15 | /ETH_CS/SCK/MISO/MOSI |
Free (unconnected in v5): PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PD2, PA7, PB9, PB10 — 16 pins. USART6 = PC6/PC7 is free, which is what makes v6 possible without disturbing anything.
1.2 The three nets that carry the whole GNSS/4G architecture
| Net | v5 members | Meaning |
|---|---|---|
/USART1_RX |
U16.43 (PA10) · Rdfu1.1 (22k) · K1.1 (NC) · MOD1.23 (F9P TX2) |
receiver's UART2 uplink; MCU taps it passively |
/DIN_4G |
K1.5/6 (COM) · J7.3 |
modem's data-in; fed from the relay |
/DOUT_4G |
J7.2 · MOD1.17 (F9P RX2) |
RTCM downlink, hardwired, never switched |
K1 (G5V-1 DC5): 1=NC=/USART1_RX · 5/6=COM=/DIN_4G · 10=NO=/USART1_TX (PA9) ·
2=/SYS5V · 9=/KCOIL ← BYP_CTRL (PB5) via R40→Q6.
1.3 Power tree (verified)
P1.1 ─/24V_IN─┬─ D10 (SMBJ33A)
└─ Q10 (IRFR5305, rev-pol) ──/24V── U2.7 (MP1584 fan buck) ──/SW_FAN─► 5V_FAN
P2.1 ─/VEH5V── RS1 (8 mΩ) ──/VIN_SW── U6.7 (LTC4040 VIN)
U6 (LTC4040) ──/MAIN5V── Q7 (AO4406A cutoff, gate /IGATE) ──/SYS5V── F1 (PPTC 3A)
├─ U12 (MP1584) ─► /3V3_ETH
└─ K1.2 (relay coil supply)
/SW_IN ── Q1 (AO3401A, gate /GATE_LS ← PWR_CTRL) ──/SW_5V──┬─ MOD1.5 (shield 5 V)
└─ U7.2/7 (MP1584) ─L7─► /3V3_MODEM
U17 (AMS1117-3.3) ──/3V3
2. Deletions
| Ref | What | Action |
|---|---|---|
MOD1 |
simpleRTK2B Pro, Arduino UNO R3 socket, 32 pads @ (90.6, 129.9) | DELETE — nets /GNSS_RX /GNSS_TX /DOUT_4G /USART1_RX /SW_5V re-terminate on U18 |
J7, J8 |
XBee 2.0 mm sockets, 10 pads each @ (174.2 / 196.5, 74.8) | DELETE — nets re-terminate on U19 |
SW4G1 |
modem RESET pushbutton | DELETE — replaced by MCU control (Block T) |
Rmled1, MODEM_LED_A |
modem LED + resistor | KEEP, re-source from the A7670SA NETLIGHT pin |
MH7, MH9, MH10, MH11 |
shield / heatsink M2.5 bolt holes | DELETE MH7/MH9/MH10; KEEP MH11 and add one partner near U19 for the modem heatsink clamp |
U7, L7, C41, C43 |
the 3V3 modem buck | REPURPOSE — see Block P |
Do not delete K1. It is rewired (Block T), not removed — it is the fail-safe that keeps
corrections flowing with a dead MCU.
3. MCU pin allocation — v6 additions
| New net | Pin | Dir | Function |
|---|---|---|---|
/USART6_TX |
PC6 | OUT | MCU → modem (AT, GGA uplink, $PHLG) — via K1 NO |
/USART6_RX |
PC7 | IN | modem → MCU (AT responses, RTCM tap) |
/MODEM_PWRKEY |
PC8 | OUT | open-drain via Q20 (2N7002) |
/MODEM_STATUS |
PC9 | IN | level-shifted 1.8 → 3.3 V |
/MODEM_PWR_EN |
PC10 | OUT | enables U20 buck — the HARD_CYCLE path |
/MODEM_RST |
PC11 | OUT | open-drain via Q21 (2N7002) — new MCU control |
/GNSS_RESET_N |
PC12 | OUT | open-drain; U18 needs a 7–13 kΩ pull-up |
/GNSS_ANT_DETECT |
PC1 | IN | antenna-open telemetry |
/GNSS_ANT_SHORT_N |
PC2 | IN | antenna-short telemetry |
/GNSS_TIMEPULSE |
PA7 | IN | TIM3_CH2 input capture |
Unchanged: /GNSS_TX PA2 · /GNSS_RX PA3 (USART2, HardwareSerial GNSS(PA3, PA2)) ·
/USART1_RX PA10 (receiver UART2 tap) · /BYP_CTRL PB5 (K1 coil).
Freed: PA9 — K1.10 moves to PC6. Leave PA9 as a test point.
Still spare after v6: PC3, PC4, PC5, PB9, PB10, PD2, PA9 — 7 pins.
⚠ Verify no double-allocation with an independent netlist parse before ERC. That check is the reason this table exists.
Block N — GNSS island (U18)
Part: ZED-F9P-04B, 54-pin LGA 22.0 × 17.0 × 2.4 mm — LCSC C5120257, Extended.
(Alternative under evaluation for v7: LG290P, 12.2 × 16 mm — see brief §1.4. Do not
attempt a dual footprint; the pad rings overlap and the pin functions do not align.)
| Signal | Connect to | Note |
|---|---|---|
VCC |
/3V3_GNSS |
from U21 LDO only — never the shared /3V3 |
V_BCKP |
/3V3 via 1 kΩ + Schottky |
45 µA hot-start; keeps ephemeris across a power-cycle |
GND |
GND | full pad-under-module via field |
UART1 TX/RX |
/GNSS_RX / /GNSS_TX |
⚠ net names are MCU-relative in this design: /GNSS_TX = MCU PA2 out → receiver RX |
UART2 RX |
/DOUT_4G |
RTCM in — hardware path, unswitched |
UART2 TX |
/USART1_RX |
uplink NMEA → K1.1 (NC) and PA10 |
RESET_N |
/GNSS_RESET_N |
7–13 kΩ pull-up to /3V3_GNSS required |
TIMEPULSE |
/GNSS_TIMEPULSE |
4 mA drive |
ANT_DETECT / ANT_SHORT_N |
/GNSS_ANT_DETECT / /GNSS_ANT_SHORT_N |
free antenna-fault telemetry — you have already lost H0005 and H0014 to antenna faults |
VCC_RF |
Block S bias tee | 50 mA typ / 300 mA abs max |
D_SEL |
leave open (UART mode) | open/high = UART; low = SPI |
SAFEBOOT_N |
leave open | |
USB (V_USB, D+/D−) |
test pads only, not a connector | u-center access at first article; 90 Ω pair, ESD if ever fitted |
Decoupling: 100 nF per supply pin ≤ 2 mm, 10 µF + 1 µF bulk ≤ 10 mm, per the Capacitor-Placement-Map rules.
U21 — GNSS LDO
3.3 V, ≥ 300 mA, low noise. Candidates: TPS7A2033PDBVR (low-noise, preferred) or
AP2112K-3.3TRG1 (cheap, LCSC C51118).
Input = /SW_5V, output = /3V3_GNSS — deliberately not the shared /3V3. Two reasons:
the receiver stays on the MCU-gated stack rail, so PWR_CTRL (PA1 → Q1) still power-cycles
it exactly as it does today; and an LDO fed from 5 V has ~1.7 V of headroom, which is what
gives it the PSRR to reject the three MP1584 switchers this board carries. The ZED-F9P has
no internal SAW — it will lock onto buck harmonics given the chance.
🔴
ZED-F9PVCC ramp rate ≤ 20 µs/V is a DAMAGE limit, not a guideline — 0 → 3.3 V in ≤ 66 µs. Most LDOs with soft-start are far slower. Measure the chosen LDO's rise time on the bench before fab. If it cannot meet it, add a fast load switch or a supervisor. This is a fab gate, not a nice-to-have.
Block O — LTE island (U19)
Part: A7670SA-LASC, 88-pin LGA 24 × 24 × 2.5 mm — LCSC C18548276, in the JLCPCB
library, Extended, X-ray inspection required, MSL 3.
⚠ -SA only. -E/-C variants have no B4/B66 and will never attach on Telcel.
⚠ A7670 (88-LGA) ≠ A7672 (124 LCC+LGA) ≠ SIM7070 (68-LCC). Not interchangeable.
| Signal | Connect to | Note |
|---|---|---|
VBAT pins 55, 56, 57 |
/VBAT_MODEM |
all three, mandatory for RF performance. Trace/pour ≥ 3 mm |
GND |
GND | full via field |
UART_TXD |
/DOUT_4G (level-shifted, Block R) |
→ U18 UART2 RX and → /USART6_RX |
UART_RXD |
/DIN_4G (level-shifted) |
← K1 COM |
PWRKEY |
/MODEM_PWRKEY_M |
via Q20 open-drain. Low ≥ 50 ms = on; ≥ 2.5 s = off. Internal 50 kΩ to VBAT. ≤ 100 nF total capacitance or you get spurious auto-power-on |
RESET |
/MODEM_RST_M |
via Q21 open-drain, low 2–2.5 s. Same ≤ 100 nF rule |
STATUS |
/MODEM_STATUS_M |
1.8 V out; asserts ≈ 11.2 s after power-on |
NETLIGHT |
Rmled1 → /MODEM_LED_A |
reuse the existing LED |
VDD_1V8 |
/1V8_MODEM + 2.2 µF |
50 mA max — level-shift reference ONLY, never a system rail |
USIM1_* |
Block Q | internal 4.7 kΩ pull-up on USIM1_DATA — no external needed |
USB D+/D−, VBUS |
J9 (kept) |
90 Ω pair. Reserve a USB_BOOT test pad — the only recovery if a firmware update bricks it. USB_BOOT must not be pulled low at power-up |
RF_ANT (pin 60) |
Block S | single antenna — Cat-1bis, no diversity port |
Decoupling at the VBAT pins: 33 pF ∥ 10 pF ∥ 100 nF ∥ 1 µF ceramics, plus the Block P bulk.
Block P — modem 3.8 V rail (U20) — replaces U7's modem duty
Why this block exists, in one sentence: the 10-Ago fleet boot-loop was caused by exceeding the SD-15B's 3 A, and putting a 2 A LTE modem back on that same rail would recreate it.
/24V ──────────► D20 (SS34) ──┐
├──/VIN_MODEM──► U20 (buck, 3.8 V) ──L20──► /VBAT_MODEM ──► U19
/MAIN5V ──► D21 (PMEG3050) ───┘ ▲
│ EN
/MODEM_PWR_EN (PC10)
| Item | Spec |
|---|---|
U20 |
4.5–40 V in, ≥ 3 A, synchronous buck. Candidate: AP64350 class. ⚠ 40 V rating required — D10 (SMBJ33A) clamps at ~53 V, a 28 V part such as TPS54331 is not acceptable. NOT a fourth MP1584 — the existing three are the source of EMC findings 3 and 4 |
| Output | 3.8 V (mid-window of the A7670SA's 3.4–4.2 V) |
D20 |
SS34 — already in the BOM (D2, D12). Drop irrelevant on the 24 V leg |
D21 |
low-Vf Schottky (PMEG3050 class, Vf ≈ 0.35 V @ 2 A). In blackout MAIN5V ≈ 5 V → VIN_MODEM ≈ 4.65 V → duty ≈ 0.82. Verify U20's max duty covers it; if marginal, use a P-FET ideal diode (AO3401A, already in the BOM as Q1) |
| Bulk | ≥ 470 µF low-ESR within 20 mm of the VBAT pins (spec floor is 300 µF; the extra is cheap insurance against the 2.8 A GSM burst) |
Cin |
1 µF + 10 µF within 3 mm of U20's VIN-GND — EMC finding 4, mandatory |
| Feedback | divider at the FB pin, /FB_MODEM short and routed away from /SW_MODEM — EMC finding 3, mandatory |
| Enable | /MODEM_PWR_EN (PC10). Power-cycle = EN low ≥ 2 s. Add a 1 kΩ bleed across the bulk so it actually collapses |
Behaviour: cabinet live → modem's ~9.5 W comes from 24 V at ~0.45 A and the SD-15B
never sees it. Blackout → same buck accepts MAIN5V (pack via LTC4040), unit keeps reporting
(invariant #2).
U7 / L7 / C41 / C43 — disposition
/3V3_MODEM no longer feeds a modem. Repurpose U7 as the 3.3 V supply for the level
shifters and the LTE-island logic, renaming the net /3V3_LTE, or delete U7/L7/
C41/C43 entirely and take that logic from /3V3. Decide before routing the 3V3 tree —
this is the same open decision that was left dangling on U12/L8 in the 3.0 brief, and it
should not be left dangling twice. Recommendation: delete, feed from /3V3; the shifters
draw milliamps.
🔴 Also fix in this block
The LTC4040 input-limit errata. RS1 (8 mΩ) sets a 3.12 A input limit above the
SD-15B-05's 3 A rating. Bring the limit below the PSU rating, or specify a larger PSU.
This has been a standing errata since 10-Ago. v6 is where it gets fixed.
Block Q — MFF2 SIM (U22)
| Item | Spec |
|---|---|
| Package | MFF2 / DFN-8 5 × 6 mm (SON-8) |
| Signals | USIM1_VDD · USIM1_CLK · USIM1_DATA · USIM1_RST · GND |
| Pull-ups | none — U19 has an internal 4.7 kΩ on USIM1_DATA |
| Voltage | 1.8 V / 3.0 V auto-detect, no strapping |
| ESD | array at the SIM lines (ESDA6V1W5 / SMF15C class) |
| Placement | ≤ 20 mm from U19, short matched-ish traces, GND guard |
⚠ Sourcing is a lead-time item, not an engineering task. You need a real Telcel/AT&T MX or Mexican-profile MVNO MFF2. Flat-rate sensor IoT SIMs (500 MB / 10 years) are an order of magnitude too small for 50–200 MB/month. Start this in Phase 0.
Block R — level translation (U23, U24)
A7670SA I/O is 1.8 V. The STM32's V_IH ≈ 2.31 V — 1.8 V will not read as HIGH.
| Line | Direction | Method |
|---|---|---|
/DIN_4G (MCU/K1 → modem RX) |
3.3 → 1.8 | SN74LVC2T45DCUR, DIR fixed |
/DOUT_4G (modem TX → MCU + receiver) |
1.8 → 3.3 | SN74LVC2T45DCUR, DIR fixed |
/MODEM_STATUS |
1.8 → 3.3 | same device, 2nd channel |
/MODEM_PWRKEY, /MODEM_RST |
3.3 → open-drain | Q20, Q21 = 2N7002. Not through a shifter — MCU absent must leave them unasserted |
VccA=/1V8_MODEM(fromU19'sVDD_1V8, 2.2 µF);VccB=/3V3.- Prefer direction-fixed
74LVC2T45over auto-directionTXS0108E— auto-direction parts misbehave against strong drivers and multi-load nets, and/DOUT_4Gdrives two loads. - ⚠ The RTCM path passes through
U24. Add DNP 0 Ω bypass footprints across it so a suspect shifter can be jumpered out at bring-up. /DOUT_4Gfan-out on the 3.3 V side:U18UART2 RX and/USART6_RX(PC7) through a 100 Ω series resistor for isolation.
Block S — RF front ends
Stackup (unchanged topology, new requirement)
F.Cu signal + GND pour · In1 solid GND · In2 3V3 plane · B.Cu signal + GND pour. ✔
New: order as controlled impedance. JLCPCB 4-layer JLC04161H-7628, F.Cu→In1 prepreg
≈ 0.2104 mm. Target 50 Ω CPWG on F.Cu referenced to In1 — roughly 0.35 mm trace / 0.25 mm
gap at εr ≈ 4.4. Confirm with JLCPCB's own impedance calculator before layout, not after.
Rules for both RF traces, no exceptions: referenced to an unbroken In1 (no plane split,
no In2 island underneath), as short and straight as possible, ground-stitched both sides at
≤ λ/20, nothing crossing on any layer.
S1 — GNSS (J12)
J12 (U.FL) ─╥─ C_DC (100 nF) ─── U18.RF_IN
║
└─ L_BIAS (≥68 nH 0603, SRF > 1.6 GHz) ─┬─ 100 nF ∥ 100 pF ─ GND
└─ VCC_RF (U18)
D_ESD (>2 GHz rated, <0.5 pF) at J12
Active antenna is mandatory — the ZED-F9P has no internal LNA.
S2 — LTE (J13)
U19.RF_ANT ─── π-match pads (series 0402 + 2× shunt 0402, series = 0 Ω default)
─── J13 (U.FL) ─── D_ESD (low-cap <0.5 pF)
S3 — 🔴 GNSS desense — the #1 technical risk
A 23 dBm transmitter drawing 2–3 A bursts next to a GNSS front end is a classic RTK-killer. The Ardusimple shield has been hiding this. A bare module hands it to you.
- Board separation:
U18in the freedMOD1area (bottom-left),U19in the freed XBee area (right edge) → ≈ 149 mm apart, the full diagonal. The GNSS corner is also the furthest point from all four switchers (nearest,U7at 140.0/112.9, ~60 mm). - Antenna separation ≥ 20 cm on the enclosure — two bulkheads. Design rule, not an optimization.
- Modem return path routed away from the GNSS island; no shared reference but
In1. - No 1575 SAW — it would kill L2 on a dual-band receiver. Specify an active antenna with good out-of-band rejection instead.
- Measured at gate G3 (Phase 6): fix quality and C/N₀ with the modem idle vs. transmitting at full power. Pass/fail, not opinion.
S4 — ESD everywhere (EMC finding 5)
Every external connector gets a clamp within 10 mm. D14/D15/D16 move from the MCU to
within 10 mm of J11. J9 gets the ESD array it never had (< 2 pF on the data lines).
J12, J13, P1, P4, P15, P16 all get appropriate clamps.
Block T — K1 rewiring (one net change, big consequence)
K1 pin |
v5 | v6 |
|---|---|---|
| 1 (NC) | /USART1_RX |
unchanged — receiver UART2 TX |
| 5/6 (COM) | /DIN_4G |
unchanged — modem RX |
| 10 (NO) | /USART1_TX (PA9) |
/USART6_TX (PC6) ← the only change |
| 2 | /SYS5V |
unchanged |
| 9 | /KCOIL ← BYP_CTRL (PB5) |
unchanged |
What this buys. Energised (normal operation) the MCU owns the modem's RX line: it can send
AT commands, forward the receiver's GGA byte-exact, and inject $PHLG. De-energised — MCU
dead or absent — the relay relaxes and the receiver's own GGA goes straight to the modem, so
corrections keep flowing. Invariants #2 and #3 both hold, with hardware, for the price of one
moved net.
Consequence to state plainly: v6 makes Modo B the normal operating mode. Consistent with the EPCT decision already on record.
4. New net list
| Net | Members |
|---|---|
/3V3_GNSS |
U21.out · U18.VCC · decoupling |
/VBAT_MODEM |
L20.2 · U19.55/56/57 · bulk + ceramics |
/VIN_MODEM |
D20.k · D21.k · U20.VIN · Cin |
/1V8_MODEM |
U19.VDD_1V8 · U23.VccA · U24.VccA · 2.2 µF |
/USART6_TX |
U16.37 (PC6) · K1.10 |
/USART6_RX |
U16.38 (PC7) · 100 Ω → /DOUT_4G (3.3 V side) |
/MODEM_PWRKEY / _M |
U16.39 (PC8) → Q20 → U19.PWRKEY |
/MODEM_STATUS / _M |
U19.STATUS → U24 → U16.40 (PC9) |
/MODEM_PWR_EN |
U16.51 (PC10) · U20.EN |
/MODEM_RST / _M |
U16.52 (PC11) → Q21 → U19.RESET |
/GNSS_RESET_N |
U16.53 (PC12) · U18.RESET_N · 10 kΩ pull-up |
/GNSS_ANT_DETECT |
U16.9 (PC1) · U18.ANT_DETECT |
/GNSS_ANT_SHORT_N |
U16.10 (PC2) · U18.ANT_SHORT_N |
/GNSS_TIMEPULSE |
U16.23 (PA7) · U18.TIMEPULSE |
/SIM_VDD /SIM_CLK /SIM_DATA /SIM_RST |
U19 ↔ U22 |
/RF_GNSS /RF_LTE |
50 Ω, own netclass, no autorouting |
Changed: /DOUT_4G gains U18.UART2_RX, U24 and the PC7 tap; loses J7.2, MOD1.17.
/DIN_4G gains U23/U19; loses J7.3. /USART1_RX loses MOD1.23, gains U18.UART2_TX.
/USART1_TX loses K1.10 → PA9 becomes a test point.
Netclasses: keep HV24; add RF (50 Ω, no auto-route) and PWR_MODEM
(/VBAT_MODEM, /VIN_MODEM — min width 1.5 mm, target ≥ 3 mm).
5. Inherited EMC fixes — schematic-level, day-one
| # | Fix | Where it lands in the schematic |
|---|---|---|
| 🔴 1 | /SW_BAT ≥ 2 mm polygon |
netclass + layout; load-bearing — blackout now feeds the modem too |
| 🔴 2 | /BAT_PLUS ≥ 1.5 mm + via farm |
same |
| 🟠 3 | R20/R21 at U2 pin 4, /FB_FAN short |
schematic grouping so layout can honour it |
| 🟠 4 | 1 µF + 10 µF ≤ 3 mm of every buck VIN — including U20 |
add the parts now |
| 🟠 5 | ESD < 10 mm of every external connector | Block S4 |
| 🟡 6 | Crystals → 3225 package, < 5 mm (Y1, Y3, Y4 are HC-49 at 12–15 mm) |
change footprints in the schematic pass |
| 🟡 7 | ETH RX pair coupled and length-matched | layout, flagged here |
| 🟡 8 | Fill the 8 empty 20 mm stitching cells | free — most were under MOD1 |
6. Part additions
| Ref | Part | LCSC | Note |
|---|---|---|---|
U18 |
ZED-F9P-04B | C5120257 | Extended, X-ray, ~104–129 in stock — consign from Mouser for ≥ 100 units |
U19 |
A7670SA-LASC | C18548276 | Extended, X-ray, MSL 3, 220 in stock |
U20 |
40 V / 3 A sync buck (AP64350 class) | verify | 40 V minimum |
U21 |
TPS7A2033 or AP2112K-3.3 | C51118 (AP2112K) | ⚠ verify the ≤ 66 µs ramp |
U22 |
MFF2 SIM | carrier | lead-time item |
U23, U24 |
SN74LVC2T45DCUR | verify | direction-fixed |
Q20, Q21 |
2N7002 | verify | open-drain PWRKEY / RESET |
D20 |
SS34 | in BOM (D2) |
24 V leg |
D21 |
PMEG3050 class | verify | low-Vf, 5 V leg |
J12, J13 |
U.FL / IPEX MHF1 SMT receptacle | verify | + 2 pigtails, 2 SMA bulkheads |
L20 |
buck inductor per U20's datasheet |
verify | ≥ 4 A saturation |
| — | 2× 220 µF low-ESR + ceramics | verify | Block P bulk |
| — | ESD arrays, RF ESD, bias-tee L/C, π-match 0402s | verify | Blocks S1–S4 |
All "verify" rows must be confirmed against the live JLCPCB library at upload, not from a cached DB. The
v4-bom.xlslabels are on record as unreliable; check pin-counts vs pad-counts every time.
7. Execution order & verification
| Step | Work | Check |
|---|---|---|
| T0 | Clear stale .git/*.lock; confirm the v5.5 fix commit landed; branch v6 from c3e8e48; copy v5 → hbox-watchdog-v6 |
parse-verify the copy opens clean |
| T1 | Deletions (§2) | netlist parse: MOD1/J7/J8/SW4G1 gone, no orphan nets |
| T2 | Block T (K1.10 → PC6) |
1-net diff, nothing else moved |
| T3 | Block N + U21 |
ERC on the GNSS island alone |
| T4 | Block O + Block Q + Block R | ERC; confirm every 1.8 V line crosses a shifter |
| T5 | Block P + LTC4040 input-limit fix | recompute the backup power budget vs the 1S4P ~12 Ah pack |
| T6 | Block S (RF + ESD) + netclasses | RF netclass exists and is excluded from autorouting |
| T7 | EMC list §5 | each row ticked individually |
| T8 | Full ERC + independent pin-map parse | ERC 0; no double-allocated MCU pin |
Gate G2: ERC 0 plus an external review of the RF and power sections. This is Helgen's first RF design — do not let ERC-clean stand in for reviewed.
8. What is deliberately NOT in v6
- A second GNSS footprint. LG290P's pads overlap the F9P ring and the functions don't align. The cost-down is a v7 respin of one corner — which is exactly why Block N is an island.
- A modem mezzanine daughtercard. Rejected with "full integration" (brief §0); revisit only if gate T1's cabinet temperature forces the industrial tier.
- eUICC. MFF2 only, per the 24-Ago decision.
- Cat-4 / WCDMA. See brief §2.3.
9. Cross-references
- v6 brief:
2026-08-24_Drogheda_EinarBoard-v6_GNSS-4G-Integration_Design-Brief_v1.0.md - Phase 1 firmware:
2026-08-24_Drogheda_EinarBoard-v6_Phase-1_NTRIP-Firmware-Spec_v1.0.md - EMC fix list:
2026-08-22_Drogheda_EinarBoard-v5_EMC-Audit_v1.0.md - Canonical electrical state:
watchdog-electrical-design-state.md - Format precedent:
watchdog-production-schematic-delta.md - Cap placement rules:
2026-08-14_Drogheda_EinarBoard-3.0_Capacitor-Placement-Map_v1.0.md - Invariants: #1 power-off safe (
Q20/Q21open-drain, buck EN default off) · #2 never vanish (Block P dual input, Block T fail-safe) · #3 power-cycle recovery (MODEM_PWR_EN) · #5 no head-of-line blocking · #6 no secrets