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)¶
- Add two 0402 resistors per the table above — assign designators in the schematic per Altium numbering (verify no collisions across sheets).
- Rail — both pull-ups to 3V3_WIFI (confirmed).
- Placement — auto-reset group near J2 (with Q1/Q2/C1/C2/R7).
- BOM — fitted on 232202/232203/232204 assembly variants; DNP on 232200/232201.
- Gerber lock — confirm release BOM lists two new 10k rows on EN and BOOT nets.
Documentation (after B1 lock)¶
- Update the auto-reset BOM table in 232202 §7 with designators from the locked schematic (source of truth — not this ECN).
- 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.
Related¶
- Rev A interim handling — cross-ECN rev-A status
- 232202 Base WiFi §7 — Test Points & Programming — auto-reset circuit and prose requirement
- Rev B1 ECN-01 — GPIO remap — same B1 release
- firmware-compatibility — nRF54 ↔ ESP32