Files
ZephCore/zephcore
Étienne Fesser 2a26e830e2 Fix Heltec V4 Vext polarity (OLED never powered)
The V4's Vext rail switch is a PMOS: GPIO36 LOW turns the rail ON.
The DTS drove it ACTIVE_HIGH, leaving the OLED (and its I2C pull-ups)
unpowered — the rail floats at ~1.6V and SSD1306 init always fails
with -ETIMEDOUT.

Verified on hardware with a multimeter: GPIO36 high = 1.6V on Vext,
GPIO36 low = 3.3V, display works.

This matches what the working Arduino MeshCore firmware actually does
with the pin, despite its PIN_VEXT_EN_ACTIVE=HIGH define:
RefCountedDigitalPin::begin() initialises the pin to its *inactive*
level (LOW), and the V4 OLED build constructs the display with a NULL
periph_power (variants/heltec_v4/target.cpp) so nothing ever claims
it HIGH. GPIO36 is therefore driven LOW continuously under Arduino —
the exact state this fix reproduces via an ACTIVE_LOW boot-on
regulator.
2026-07-06 19:26:17 +02:00
..
2026-07-04 11:21:10 +02:00
2026-07-04 16:47:46 +02:00
2026-06-07 22:47:17 +02:00
2026-07-02 13:13:26 +02:00
2026-06-07 22:47:17 +02:00
2026-06-21 20:38:57 +02:00
2026-07-04 14:15:31 +02:00
2026-06-07 22:47:17 +02:00
2026-07-04 09:41:09 +02:00
2026-07-04 15:47:27 +02:00
2026-07-03 09:11:43 +02:00
2026-06-07 22:47:17 +02:00
2026-06-07 22:47:17 +02:00
2026-07-04 09:41:09 +02:00
2026-02-22 13:09:18 +01:00
2026-07-04 14:19:25 +02:00