Skip to content

ESP32 eFuse Chip Revision Read Error

DodaTech Updated 2026-06-26 1 min read

In this tutorial, you'll learn about ESP32 eFuse Chip Revision Read Error. We cover key concepts, practical examples, and best practices.

The Problem

ESP32 chip revision read via eFuse returns incorrect version or fails.

Quick Fix

Wrong

Serial.printf("Chip rev: %d\n", ESP.getChipRevision());  // May be wrong
Chip revision: 0 (but chip is actually revision 3)
uint32_t rev = 0;
esp_efuse_read_field_blob(ESP_EFUSE_CHIP_VER_REV1, &rev, 8);
uint32_t rev2 = 0;
esp_efuse_read_field_blob(ESP_EFUSE_CHIP_VER_REV2, &rev2, 3);
uint32_t fullRev = (rev2 << 8) | rev;
Serial.printf("Chip revision: %d (0x%03X)\n", fullRev, fullRev);
Chip revision: 3 (0x003)
(Matches printed label on chip package)

Prevention

Use ESP-IDF functions for revision, not Arduino ESP.getChipRevision(). Chip revision affects errata workarounds. Revision 3 fixes ADC2 and touch sensor issues. Revision 1 has Bluetooth issues fixed in rev 2.

DodaTech engineers apply these same patterns across Doda Browser, DodaZIP, and Durga Antivirus Pro for production IoT reliability.

FAQ

### What chip revisions exist?

ESP32 has revisions 0, 1, 2, 3. Rev 3 is the latest with most fixes. Check with ESP.getChipModel() and ESP.getChipRevision().

Does revision affect functionality?

Yes. Rev 0 has known bugs in ADC2, touch sensor, and Bluetooth. Rev 1+ fixes most issues. Rev 3 has full errata fixes.

How do I check revision in the Arduino IDE?

Use ESP.getChipRevision(). Returns 1, 2, or 3. ESP.getChipModel() returns 'ESP32' for all variants.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro