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 8 MB (yes, mega bytes) of RAM.
It looked like a board almost the same as the NodeMCU without USB, with twice the memory and much 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 about Aliexpress's reviews but still leave 5 or 4 stars (incomprehensible).
Trying to use it like the usual plates there is no way ... tests and tests and you can not ... come on, a plate that is not worth anything. Not that it is a lot of money (I ordered two boards and shipping by Aliexpress Standard Shipping, about € 8 in total) but, dammit! I feel cheated…
The fact is that I started to investigate with the multimeter in one hand and the datasheet of the ESP8266EX in the other and I have found why it does not work and how to fix it ...
What happens with this board is that it deceives ... one expects it to be something like the NodeMCU and 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 resistance of about 10K) for the chip to start working; until then the chip is dead.
In my case, and since the resistance has to be always on and it doesn't have to be removed at all, I opted to solder it directly between the CH_EN pin (marked 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 cost me the most to locate, is that the bootloader that incorporates the board expects at the moment of the boot that pin 15 has a low level, and until it is at a low level it does not start. So we have to set this pin to negative (preferably through a small resistance, I have used a 74 ohm).
In this case, since I do not need pin 15 I have soldered, as in the previous case, the resistance directly as you can see in the detailed photos.
Finally we are missing the last step, and that is that to put it in programming mode (to be able to flash it) you have to set the IO0 pin to low level (that is, to negative).
Unlike the NodeMCU, and similar boards, which automatically enter the programming mode simply by giving the corresponding option from the Arduino IDE, this board has to be manually inserted into the programming mode, which is quite inconvenient.
To enter the programming mode, as it is done in a timely manner, I simply connect the IO0 with GND with a cable to enter the programming mode. It is a bit awkward because you have to manually put it on and take it off each time you want to flash it, but well…
By the way ... since it was 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 the 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 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 about doing “ñapas” to make it work properly. Another thing will be to see if you can take advantage of those 8 MB of memory, although I am afraid that, for the majority of applications, we will have more than leftover with the 4 MB of the NodeMCU.