▲ 1 r/esp32projects
Incase anyone is hitting the scenaro with the same issue, hopefully save someone my spin of frustration. 😄
Symptoms:
- ENS160 boots successfully, firmware version reads correctly
- I2C scan finds device at correct address
- Stuck permanently in
ENS160 readings unavailable - Normal Operation but readings not ready - Never produces eCO2, TVOC or AQI readings regardless of how long it runs
Hardware:
- ESP32-C6 running ESPHome esp-idf framework
- ENS160+AHT21 combo breakout board
- Multiple I2C devices on same bus (AHT21 at 0x38, ADS1115 at 0x48, ENS160 at 0x52)
What didn't work:
- Waiting 5+ days powered continuously
- Adding 30s boot delay
- Removing compensation block
- Dropping I2C frequency to 10kHz (actually made it worse)
What fixed it: Increasing I2C frequency to 800kHz
yaml
i2c:
sda: GPIO6
scl: GPIO7
scan:
true
frequency: 800khz
The ENS160 apparently needs a fast enough I2C clock to complete its internal initialisation handshake. At low frequencies it communicates but never exits warmup state.
u/EastyUK — 17 days ago