Skip to content

Rev B1 ECN-13 — ESP32 EN/BOOT strap pull-ups missing (draft)

Draft — EverTag Station WiFi variants only

Add the 10k pull-up resistors on ESP32 EN (RESET) and BOOT (GPIO26 + GPIO28) that the 232202 design notes require but that were never given BOM rows and are not fitted on the A-series first articles. Found during first-article bringup 2026-06-11, confirmed by bench rework. Not approved. Fix targets the B1 Altium release.

Ships in the same B1 respin as Rev B1 ECN-01 — GPIO remap.


What changes

The 232202 §7 design notes state:

BOOT (GPIO26 + GPIO28, tied together) and EN (RESET) need 10k pull-up resistors to 3V3 (BOOT high = normal boot, BOOT low = download mode)

and the auto-reset section relies on them:

When no TC2030-FTDI cable is mated … The 10k pull-up resistors on EN and GPIO26/28 (BOOT) maintain normal boot.

These resistors appear only in prose — the auto-reset BOM table lists Q1, Q2, C1, C2, R7 and the 470 Ω series parts, but no EN/BOOT pull-ups — and the first-article boards were built without them.

A-series (as built) B1 (proposed)
EN (RESET) Floating when nRF54 P1.10 is tri-stated (~0.4 V measured) 10k to 3V3_WIFI — new BOM row, fitted
BOOT (GPIO26 + GPIO28) Internal weak pull-ups only 10k to 3V3_WIFI — new BOM row, fitted
BOM Not present Two new 10k 0402 rows, fitted on WiFi variants

Proposed addition (electrical spec)

Designators are assigned in Altium at B1 lock — not fixed in this ECN. Verify the release BOM before Gerber export.

Function Value Net (from → to) Package WiFi variants
EN pull-up 10k 1% ESP32 EN (RESET)3V3_WIFI 0402 Fitted
BOOT pull-up 10k 1% GPIO26 + GPIO28 (tied BOOT strap) → 3V3_WIFI 0402 Fitted

Pull-up rail: 3V3_WIFI (AP2112K output) — EN and BOOT are ESP32-domain signals; same rail as module VDD. nRF54 P1.10 (push-pull) overrides the 10k for cooperative reset. Main 3.3V rail is not used — avoids tying strap nets to the nRF54 power domain.

Placement: adjacent to the auto-reset group (Q1, Q2, C1, C2, R7) near J2.


Rationale

Observed at first-article bringup (2026-06-11), WiFi board powered, nRF54 erased:

Symptom Cause
Board idle ≈ 4 mA @ 5 V (expected ~19 mA), no USB on J3 EN floating at ~0.4 V — ESP32-C5 never starts (CHIP_EN has no internal pull-up)
After bench-soldered 10k pull-ups ESP32 boots (≈19 mA), J3 USB-Serial/JTAG enumerates (303a:1001), esptool flash + boot verified

Consequences of the missing pull-ups:

  • A blank or erased nRF54 makes the ESP32 unusable — P1.10 (ESP32_EN actuator) tri-states and nothing holds EN high. Any production flow, recovery flow, or external developer starting from a blank nRF54 hits this.
  • Without the BOOT pull-up, strap robustness during the J2 auto-reset sequence depends solely on the ESP32-C5's internal weak pull-ups against Q2 leakage and C2 coupling — the documented circuit analysis assumes external 10k.
  • The documented behaviour ("circuit is inert when cable not attached") is not true as built.

nRF54 control is unaffected: P1.10 drives EN low/high through the same net and easily overrides a 10k pull-up, so the cooperative reset sequence in ADR #18 is unchanged.


Scope

Item B1 change
232202 Base WiFi Two 10k 0402 pull-ups fitted (EN, BOOT)
232203 Base Bat+WiFi Same shared layout — fitted
232204 Base Bat+Radar (WiFi-carrying layout) Same shared layout — fitted when ESP32 populated
232200, 232201 Footprints on shared PCB — DNP on non-WiFi BOMs
230220 Tag No change
A-series first articles Bench rework — see Rev A interim below

Altium implementation (after design approval)

  1. Add two 0402 resistors per the table above — assign designators in the schematic per Altium numbering (verify no collisions across sheets).
  2. Rail — both pull-ups to 3V3_WIFI (confirmed).
  3. Placement — auto-reset group near J2 (with Q1/Q2/C1/C2/R7).
  4. BOM — fitted on 232202/232203/232204 assembly variants; DNP on 232200/232201.
  5. Gerber lock — confirm release BOM lists two new 10k rows on EN and BOOT nets.

Documentation (after B1 lock)

  1. Update the auto-reset BOM table in 232202 §7 with designators from the locked schematic (source of truth — not this ECN).
  2. Adjust the "Circuit is inert when cable not attached" note so it matches B1 as-built behaviour.

Verification (assembly / QA)

  • Release BOM: two new 10k 0402 rows on EN and BOOT → 3V3_WIFI
  • With nRF54 erased: EN reads ~3.3 V, board idle ≈ 19 mA, ESP32 ROM boots
  • J3 USB-Serial/JTAG enumerates (303a:1001) with blank-flash strap workaround
  • J2 auto-reset still enters download mode (esptool --before default_reset) — 10k pull-ups vs Q1/Q2 drive strength
  • nRF54 P1.10 can still drive EN low (cooperative reset / boot gating per firmware-compatibility)
  • Non-WiFi variants (232200/232201): DNP pads have no effect

Open items

# Question Owner Status
1 J2 auto-reset verified with TC2030-NL-FTDI-C232HD-DDHSP-0-DTR cable (ordered 2026-06-11; bringup used J3 only) Bench Pending

Rev A interim (until B1)

Aspect Handling on rev A
HW patch — BOOT 10k from +3V3 → BOOT (GPIO26/28 node) — bench ref: PIN27 / netC31_2
HW patch — EN 10k from +3V3 → ESP32 EN — bench ref: footprint pin3 ACC.SDI (= P1.10, ESP32 Enable) → pin2 +3V3
Firmware none (HW pull-ups). Note: P1.10 is also ESP32_EN/RESET driven by the nRF54 on gateway — the EN pull-up keeps the ESP32 enabled while the nRF54 pin is tri-state
Verified ESP32 boots, J3 USB-Serial/JTAG enumerates (303a:1001) after the rework (2026-06-11)
Limitation J2 auto-reset path unverified until the TC2030-FTDI cable arrives; until then program via J3

See the Rev A bringup reference for the cross-ECN table.