Not all ESP32 modules are the same.!?
During the extensive testing of our designs we ran into issues with some modules not wanting to boot up after a power cycle. This was happening about 8 out of 10 times. The first suspected part was the voltage regulator used in combination with the electrolytic capacitors. The second suspected part was the actual power supply of the complete unit. However this proved not to be the issue.
The testing was performed with a few different style regulators, all bought at AliExpress.
Our standard regulator
This regulator was used in a number of prototypes, and seemed to work well.
Therefore we decided to make this the standard regulator. The benefit of the regulator is that it is slightly smaller than a TO220 style regulator, which made it a little bit easier to use it in our selected enclosure.
These were the alternatives we used. However the boot up issue did not get resolved.
Depending on the design of the switching voltage regulator, there will be a max. value (the number of µF) of the capacitor, and also a max. ESR (equivalent series resistance) for the capacitor directly connected to the output of the regulator. The issue we ran into was that it was unknown which IC was used on the regulator, which made it impossible to find out the relevant values. Looking at the big brand regulators from for instance Recom or Murata, we decided to do some testing with other capacitors.
Unfortunately this didn’t resolve the issue, in an extreme case we ended up with a prototype which did not want to boot up at all!
The power supply
One other suspect was the power quality of the power supplies used to feed the prototypes. After trying two different power supplies and a lab style bench power supply, the conclusion was that the power supply was not the issue.
Wemos D1 mini footprint module with ESP32
In the whole process there were a number of different CPU modules used for testing. However they were all purchased from the same vendor, and were 100% identical. The modules were working in other projects, so we disregarded the possibility that the module design / model was actually the issue.
After eliminating all the other options, the possibility of an issue with the actual ESP32 module was revisited. We had sourced from a different supplier another batch of modules. At first sight the modules looked the same. In the picture below, our working module is on the left.
When a module of the new batch (right) was used, the boot problem disappeared. It was confirmed by using a second module from the “new” batch that the issue was indeed caused by the module itself!
A closer look at the modules revealed that there is a small difference in the construction. One component is located in a different position, but for the rest the module is the same. Maybe there is a slightly different circuit used for the module, but a visual check did not reveal this, also because the module is made on a 4 layer PCB.
So far the module of the new batch has not shown any issues, so we concluded that the cause of the issue is the module itself!
Sometimes there are issues which are very hard to diagnose. When a complete circuit is built of parts which are known to function correctly in other circuits, but do not work in the new circuit, it can be a challenge to find the problem. In this case the most unlikely component was the source of the problem.