How to Check the Revision Level of Your ESP32

Small electronic projects , tutorials, and reviews for sensors, ESP8266, Arduino, Raspberry Pi, a...

Intro: How to Check the Revision Level of Your ESP32

Up till now, Espressif released two chip revisions: Last September Rev 0 and in February, Rev 1. And there are rumors, that Espressif sells its old revision 0 chips cheap, and some of our manufacturers make a profit by selling them to us… So, let’s check!

Step 1: Watch the Video

First watch the video inf you want the details.

The revision number is stored in an eFuse on the chip. Many other parameters are also “programmed” in these eFuse blocks.

Step 2: The Fuses...

What is a fuse in a microcontroller? Fuses are usually bits which can be set only once. This is, why sometimes people talk about “burning” fuses, not “programming” fuses. They are used to store data, which is chip-specific, but not the same for all chips. The MAC address is an example. Each chip has a different MAC address, and it keeps it till the end of life. So, during manufacturing, this address is “burned” into the fuses block.

And the warning in the ESP32 documentation is clear: You cannot undo this step! Different than with our ATTinys, where we still had a chance to undo the change with a special programmer using 12 volt programming voltage.

But today, we do not want to change a fuse, just read its content. So, no danger.

Step 3: How to Extract the Revision Number

The revision information is in EFUSE_BLK0_RDATA3_REG

at the 16th place. The proposed formula to read the information is rather complicated: We read the whole register, shift it to the right by 12 places, and OR it with the number 7. The easier solution could be to just shift it to the right by 15 places. Then, the revision bit would stand at the last digit. Maybe Espressif has a particular numbering scheme in mind for the future. Who cares. We know, how we get the information. And here it is:

Step 4: The Sketch

After testing my boards, I can confirm,

that two boards from last year were, obviously, revision 0. Most of the ones bought over the last few months were revision one. The only exception was this part purchased from Aliexpress. So, I cannot confirm, that sellers still ship cheap old versions. At least not mine. Mostly fake news!

Step 5: What Are the Differences?

See the bugs of the different versions on page 2

Share

    Recommendations

    • Audio Contest 2018

      Audio Contest 2018
    • Metalworking Contest

      Metalworking Contest
    • Furniture Contest 2018

      Furniture Contest 2018

    8 Discussions

    0
    None
    razibu

    25 days ago

    Things are getting simpler: The Arduino IDE 1.85 together with esp32 board is giving now the revision when uploading every sketch.

    1
    None
    Rudy Trujillo

    9 months ago

    What does this mean?

    C:\Users\me\Downloads\ESP32_Version\ESP32_Version.ino:8:27: fatal error: soc/efuse_reg.h: No such file or directory

    #include "soc/efuse_reg.h"

    ^

    compilation terminated.

    exit status 1

    Error compiling for board Generic ESP8266 Module.

    1 reply
    0
    None
    ssinstRudy Trujillo

    Reply 2 months ago

    I also need the answer to this. It seems there is a step missing to set up library paths?

    0
    None
    mjrovai

    1 year ago

    Thanks, Andreas. I wrote a couple of Instructables using a Doit Dev Kit bought at Aliexpress few weeks ago and I confirmed that in my case was version 0. I do not find problems on this version at least with what I have tested so far. I read the document with the bugs and see that I could have problems on some specific tasks.

    2 replies
    0
    None
    Andreas Spiessmjrovai

    Reply 11 months ago

    The only one I can think of is that the chip does not restart if it had a brownout (low voltage condition)