Introduction: How to Check the Revision Level of Your ESP32

Picture of 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...

Picture of 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

Picture of 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

Picture of 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

Comments

mjrovai (author)2017-09-18

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.

Andreas Spiess (author)mjrovai2017-09-25

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

mjrovai (author)Andreas Spiess2017-09-26

Thanks a lot, Andreas.

tytower (author)2017-08-03

Interesting . Thanks for posting this

Andreas Spiess (author)tytower2017-08-07

You are welcome!

About This Instructable

1,146views

12favorites

License:

Bio: Small electronic projects , tutorials, and reviews for sensors, ESP8266, Arduino, Raspberry Pi, and ESP32
Add instructable to: