Happy New Year

All the components have come in so I populated the board.  I discovered that I had ordered the wrong size for a resistor and a capacitor.  I was able to install them by bridging to them with solder. The bi-directional level shifter component is tiny and very hard to hand solder, I might be looking for an alternative to this component. I finished populating the board and added the Jumpers to fix my layout errors.

I started testing and it wouldn’t download firmware.  After hours of messing around with the design, I realized that GPIO2 was being held low through the transistor I had tied it to.  This changes the boot state. I replaced the bipolar transistor with an NChannel logic FET. GPIO15 needs to be low and GPIO0, and GPIO2 need to be High during a normal boot. GPIO15 and GPIO0 need to be low and GPIO2 needs to be high for bootloader boot.

On top of this I got my logic for Controlling RST and GPIO0 Wrong and had to modify esptool to get it to work with this design. I knew this was a possibility since I didn’t know whether DTR and RTS were supposed to be connected to RST and GPIO0 or reverse of that.  I now know that RTS is supposed to be connected to RST and DTR is supposed to connect to GPIO0 without inversion. I figured this out through experimentation.  I ended up changing the base resistors for the inverting transistors Q6,7 to 1K, removing Q6 and 7, and wiring a jumper from the resistor to the collector pad of each transistor footprint.  This allows me to program and test with unmodified versions of esptool.py and ESPlorer.

Part of the problems I had came from wiring the CH340G to 5V instead of 3.3V  I cut the supply trace and added a jumper from regulated 3.3V to pins 4 and 16 of the CH340G.

I loaded the NodeMCU firmware to verify the firmware loaded successfully. It worked well with ESPlorer. Finally, I loaded the web server firmware that I got running last week.  I have updated the schematic to reflect my changes and uploaded it to GitHub.

PopulatedPCB

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.