A little while back we updated some firmware on one of our ESP8266 modules. Well now we've only gone and bought about twenty of them off ebay - and they all need updating!
While it's possible to do this with a usb-to-serial device and pull wires out and plug them in again in a little breadboard, it's also pretty time-consuming. And a bit fiddly.
And when real-life work gets in the way of nerding about, time-consuming and fiddly means more time working and less time nerding. Which means we needed something to make re-programming all these ESP8266 modules that little bit quicker. So we came up with this:
It's a simple re-programming board for the ESP8266 module. Just plug the module into the twin DIP socket, hold down the "program" button and hit reset. The wifi module boots up into "ready-to-program" mode and you can just dump your new firmware to it at the push of a button. No more messing about swapping wires and trying to time everything just right!
Until we got this little thing made, things were getting a little bit messy and out of control at work!
But with this programmer, we managed to re-flash about 20 wifi modules in less than 40 minutes (it takes 90 seconds or more to download the firmware onto the device, so this was pretty good going!) and get a couple of panels of PCBs ready to stick them onto...
Here's the PCB layout should you want to make one yourself.
Just don't forget to put a 1K pull-up resistor on the RESET and GPIO1 lines.
We've drawn the board with both 1206-sized pads (for all you surface mount junkies out there) as well as holes for through-hole resistors too.
The pin layout on the right matches the pin layout for an Arduino Pro mini, which in turn is pin-to-pin for most USB-to-serial modules commonly available on eBay and various other online electronics outlets.
We've found that for programming the wifi module, you don't even need a dedicated power supply - the 100mA from the USB port should be enough . If you do want to power the wifi modules externally (perhaps for testing after flashing the new firmware) simply remove the Vcc wire from your usb-to-serial connector and connect a battery (or other power supply) to the Vcc/Gnd pins.