Hi folks - just finished several months of designing and fabricating a PCB using a NodeMCU - the board exposes a WiFi interface and exposes 8 ports that I can hook fireworks to and fire each port. Schematic and board layout attached. I am happy to provide the NodeMCU code I have and sample triggers I wrote if it’s helpful.
Everything is working as expected and I’m really quite happy.
Couple of questions though:
Per the schematic, I’m using 4 of the onboard NodeMCU pins as output for firing triggers (D5 through D8). When I power on the board, the four fire indicator LEDs for the ports controlled by those pins briefly flash. I assume that’s startup behavior of the NodeMCU? A) Is there any way to suppress this? B) If not, I think it’s not an issue because the design is that a human using it should never have the arming switch on during power up. And I also have a remote arm override circuit, that, on startup, should always be off. The trigger for the remote arming MOSFET (Q_ARM1) is powered from an I2C expander (MCP23017), so am I right in assuming that the MCP23017 will never maintain state, and because it’s powered over I2C, the pinout (GPB6 in my case) will never be powered on startup, and thus Q_ARM1 will always be in OPEN state on startup, mitigating any nodeMCU output pin risk?
As I was developing my software, I had a bug which caused me to essentially send 10,000 unexpected web requests to the NodeMCU. I have code to return 400 in those cases, but in several times while I was debugging it appeared I was able to hang the NodeMCU. It just sat in a weird state, unresponsive, with one or two firing pins looking on. What was worse (and unexplainable) was that I unplugged the whole board, waited 3 or 4 minutes, and then plugged it back in and powered on and I was still in that state. That blew my mind. The only capacitors I have on the board are C1, C2, and C3 (0.1uF or 10uF). Could the NodeMCU have maintained an electrical charge somehow? I tried pressing the RST button but that didn’t fix it. If it happens again, is there anything I can do to try to force a reset across the board?
Please note - in the attached board layout I have a copper ground fill that I’ve hidden to make the rest of the pdf readable.
TopAndBottomCopper.pdf (49.3 KB)
Schematic.pdf (228 KB)