A few weeks ago, on one of my usual "walks" on Aliexpress, I came across an ESP8266-Pro board that, at first, seemed very interesting; a real bargain.
It was the ESP8266-Pro board with 8MB (yes, megabytes) of RAM.
It looked like a board pretty much the same as the NodeMCU without USB, with twice the memory and considerably cheaper.
The reality is that, although the plate looks very good, there is absolutely no information and the seller, when you ask him simply tells you that he has no information (with all his nose). Many customers have complained on Aliexpress reviews but they keep leaving 5 or 4 stars (incomprehensible).
Trying to use it like the usual plates there is no way… tests and tests and you cannot… come on, a plate that is worthless. Not that it's a lot of money (I ordered two plates and the shipping by Aliexpress Standard Shipping, about € 8 in total) but, damn! I feel cheated…
The fact is that I began to investigate with the multimeter in one hand and the ESP8266EX datasheet in the other and I have found why it does not work and how to solve it ...
What happens with this board is that it cheats ... one is expected to be something like the NodeMCU and it is, rather, something like an ESP12E module plus a 3.3V voltage regulator, nothing more (well, if 8 MB of memory in instead of 4).
Overall, why doesn't it work and what needs to be done to make it work?
Well the first thing is that the ESP8266EX has a CH_EN (or chip_enable) pin that makes the ESP8266EX work. This pin must be set to 3.3V (preferably through a 10K resistor) for the chip to start working; until then the chip is dead.
In my case, and since the resistor has to always be on and you don't have to remove it at all, I opted to solder it directly between the CH_EN pin (marked as EN on this board) and the 3.3V point of the regulator. I add the detailed photos in case they can help.
The next problem, and the one that has been most difficult for me to locate, is that the bootloader that incorporates the board waits at boot time for pin 15 to have a low level, and until it is not at a low level it does not start. So we have to put this pin to negative (preferably through a small resistor, I have used a 74 ohm one).
In this case, since I don't need pin 15, I have soldered, the same in the previous case, the resistance directly as you can see in the detailed photos.
Finally we need the last step, and that is to put it in programming mode (to be able to flash it) you have to put the IO0 pin low (that is, negative).
Unlike the NodeMCU, and similar boards, which automatically enter programming mode simply by clicking on the corresponding option from the Arduino IDE, this board has to be manually put into programming mode, which is quite uncomfortable.
To enter the programming mode, as is done occasionally, I simply connect the IO0 with GND with a small cable to enter the programming mode. It is a bit uncomfortable because you have to put it on and remove it manually every time we want to flash it but hey ...
By the way ... since it was dipped in flour, I took the opportunity to check that mysterious button (before starting the investigation, I did not know if it was a reset button or to enter programming mode) and, indeed, I have verified that it is connected between the RST terminal and GND to be able to reset the ESP8266.
In short: After a few hours of research, I have managed to program the ESP-8266 Pro but my conclusion is that it is not worth buying to save a euro. It is much better to buy the NodeMCU, which is much easier to program, it is perfectly documented and you do not have to go around making "naps" for it to work correctly. Another thing will be to see if you can take advantage of those 8 MB of memory, although I am afraid that, for most applications, we will have more to spare with the 4 MB of the NodeMCU.