A few weeks ago on one of my usual Aliexpress "strolls" I came across an ESP8266-Pro board that looked very interesting in principle; 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 as much memory and a lot cheaper.
The reality is that, although the board 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 nerve). Many customers have complained on Aliexpress reviews but they still leave 5 or 4 stars (incomprehensible).
Trying to use it like the usual boards there's no way... tests and tests and it's not possible... come on, a board that's worthless. It's not that it's a lot of money (I ordered two boards and the shipping by Aliexpress Standard Shipping, about 8€ in total) but, damn! I feel cheated...
The thing is that I started to investigate with the multimeter in one hand and the ESP8266EX datasheet in the other and I found out why it doesn't work and how to solve it?
The thing about this board is that it's misleading... you expect it to be something like the NodeMCU and it's, rather, something like an ESP12E module plus a 3.3V voltage regulator, nothing more (well, yes 8 MB of memory instead of 4).
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 pin (or chip_enable) that makes the ESP8266EX work. This pin has to 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 be always on and it is not necessary to remove it for anything, I chose 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 pictures in case they can help.
The next problem, and the one I have had most trouble finding, is that the bootloader on the board expects pin 15 to be at a low level at boot time, and until it is at a low level it won't boot. So we have to set this pin to negative (preferably through a small resistor, I used a 74 ohm resistor).
In this case, as I don't need pin 15 I have soldered, as in the previous case, the resistor directly as you can see in the detailed pictures.
Finally, the last step is missing, 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 (i.e. negative).
Unlike the NodeMCU, and similar boards, which automatically enter programming mode by simply clicking on the corresponding option in the Arduino IDE, this board has to be put into programming mode manually, which is quite uncomfortable.
To enter the programming mode, as it is done on a one-off basis, I simply connect the IO0 to GND with a small cable to enter the programming mode. It's a bit uncomfortable because you have to put it on and remove it manually every time you want to flash it but well....
By the way... while I was in the middle of things, I took the opportunity to check that mysterious button (before starting the investigation, I didn't know if it was a reset button or to enter programming mode) and, indeed, I checked that it is connected between the RST terminal and GND to be able to reset the ESP8266.
To sum up: 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 it to save a euro. It's much better to buy the NodeMCU, which is much easier to program, it's perfectly documented and you don't have to do any "tweaking" to get it to work properly. Another thing will be to see if you can take advantage of those 8 MB of memory, although I'm afraid that, for most applications, we'll have more than enough with the 4 MB of the NodeMCU.