Things don’t always go as planned. The firmware upload tools did not work. The recommended one for Linux is a python script called esptool.py. I hacked on it to get it working, I bypassed some error checking to get it to work. I don’t like this but it works for now. I have tools that proved that the USB Serial port driver was receiving the correct values but esptool.py was not.
Disabling the error checking allowed me to get pre-compiled bin files loaded onto a NodeMCU Devkit Version 0.9 and then onto my circuit. I downloaded the AT command set firmware as well as the NodeMCU Lua firmware and tested them with ESPlorer. With the AT command set I was able to connect to my local network, open a webserver port and see a connect attempt from a browser on my Phone. With the Lua firmware, I was able to turn on an LED on the Devkit PCB(GPIO0) and send some interrogation commands to my circuit.
With both firmwares, the software defaulted to 9600 baud. This worked fine for my testing. I have not yet figured out how to get software I create into the ESP-12E. I will be starting with the IOT demo to get a “hello world” project working. A key point will be to get software of my own design working and uploaded into the circuit. At this point it doesn’t have to have any real functionality.
I also want to figure out why esptool.py did not work, and how I can make it more robust. If I can solve this problem, I will submit my fixes to the github repository in hopes that it will help others.
There are some things that I discovered that will change the design. I found a USB to UART bridge that costs less than a Dollar US; the CH340G. The programming software controls the DTR and RTS lines to automate the re-boot and flash buttons, so I can get rid of the flash pushbutton and minimize the Reset into a couple of pads I can touch with a screwdriver. Also, on the layout, I didn’t notice that OSHpark doesn’t do plated slots. The USB micro connector layout has slots. OSHpark drilled single small holes in place of the slots. I had to modify the connector to make it fit in the holes. I will change the connector layout to round holes that will fit the shell pins of the connector to solve this issue in future runs of the PCB. There is a flare at the end of the connector that keeps it from laying flat, I will move the flare past the edge of the PCB so the connector can lay flat against the PCB. For strength I want to add a pad under the shell that will also be soldered to the shell. I broke the connector off during my testing.