Chat freely about anything...

User avatar
By treii28
#54178 I was looking for something convenient for programming ESP-12/ESP-12E, ESP-03 and ESP-07 chips directly that wouldn't require me soldering or otherwise wrangling to connect tx, rx, power, ground and GPIO0 (low) connections to the chip before programming it. I stumbled upon a seller on ebay who is using spring pins to allow you to stick one of the modules directly into a programmer:

Flexible NodeMCU LUA ESP12 programmer

The price is reasonable and the seller claimed it to be 'just like a node mcu'. This is true for the most part, but I did run into some issues so I figured I would make a post to talk about some of the things I found.

First, a lot of these devices are finicky when using only USB power. To get around this, this board has a separate power connector. To make things easier, he included both a coaxial connector and a two pin connector for which he sends you an plug with the crimp-on wire ends (plus one extra which is great in case you mess one of them up). To avoid problems with polarity, he throws a rectifier right after the power input so it doesn't matter what the polarity of your battery and/or wall-wart uses - the device will set the voltage correctly itself.
This has one drawback in that he needs an input voltage to the regulator for the 3.3v voltage on the Esp8266 of at least 4.5v which means that with the voltage drop in the rectifier, you want an input voltage into the board of at least 6v. No biggie as this can be achieved with 4x AAA or AA batteries without much fuss.
The power is then isolated to those inputs (the chip won't even power up without external power attached) which includes a two-color LED (red/green) and a small dip based power switch. (one small complaint, the red LED is so bright, it is difficult to see the green turn on when you flip the power switch on - but not impossible so that is tolerable)

The board uses a standard CP2102 uart-to-serial device similar to the nodemcu and many usb based programmers so I already had the drivers installed on my system. It showed up just fine and I have been able to program it using the generic mode ESP settings (I haven't yet tried the nodemcu settings but this may effect the first thing I noticed mentioned below - I did, however, set the generic to both 'reset' modes with no luck)

When I connected the board with an ESP-12, I quickly ran into problems. I couldn't program it. It was erroring out as though it wasn't getting enough power and/or the gpio0 (4th connector down on the ground/usb side) was not being properly set. I tried holding down some of the buttons (it came with no documentation) but trying one, then the other both holding down until programming was set to start and clicking momentarily when programming started and neither worked.
However, I have nothing but praise for the seller as he was very communicative and ultimately sent me a second board when I couldn't get the first one working. Alas, the second board showed up and had the same problem. So now that I had the back-up, I got out the multi-tester and started inspecting it closer.

Come to find out, the first button (on the USB / GPIO0-ground side of the ESP) puts 470 ohms between the gpio-0 and ground setting it 'low' to trigger the flash mode. The only problem is, the board (or at least my settings) wasn't triggering a reset when programming started. Thus even holding the button down would not put it into flash mode when programming started.
The second button seemed to open the connections to the power and possibly also to the reset button. So this could trigger a reset condition basically.

I did some tests with an ESP-12, connecting the power and turning it on, connecting the USB and opening a terminal, setting the baud to the default start-up rate of 74880 and could see it coming up as mode 3,6 (the default) when I pulled the esp away from the power momentarily. I then was able to determine that flipping the power switch off turned the ESP off, thus determining it did not connect to the USB power at all. I then verified that pressing the second button (on the power side) did in fact interrupt the power.
Thus to put it into the proper programming mode, I simply had to hold down the first button (USB chip-ground & gpio0) side and click the second button briefly while still holding the first one down. This then came up with mode 1,6 and no further diagnostic information. (flash mode) From that point forward, I could program the chips just fine until power was interrupted resetting the mode again.

So all-in-all, short of the minor headaches figuring it out with sparse information and no documentation, the thing seems to work like a champ once you figure out how to trigger the flash mode properly. It's very easy to slot chips in and out and program them once you get them into flash mode. And the seller was easy to work with!