Introduction: Program/Flash the ESP8266MOD ESP-12 Module Using the Witty Board and Arduino IDE
This Instructable will guide you through the process of wiring, configuring and flashing an ESP8266MOD also known as ESP-12 module using the Witty Board.
I have tried various paradigms to flash the ESP8266MOD modules and I do not have a stable solution. In my experience, almost all had some hiccups and were unreliable. Additionally, I wanted to have a clean setup that would work every time.
In this instructable the word program and flash are interchangeable.
Step 1: Things Needed
Things needed
1 - ESP8266MOD module
1 - ESP8266MOD module adapter plate with pins
1 – Lower half of ESP8266 Witty Board
1 - AMC1117 or XC6206P332PR 3V3 regulator (I used AMC1117)
1 - LED
1 - Micro USB data cable
Step 2: Why Use ESP8266MOD?
WeMos D1 mini are fairly inexpensive. They come with the CH340 USB to Serial controller chip. Why go through the hassle of using the ESP8266MOD?
The only reason I would not use an integrated WeMos D1 mini is to limit my power consumption and extend the battery life apart from saving a few dollars. The CH340 chip and its associated components draw valuable power and are only required during programming. If it is a remote unit operating on battery power, you might want to consume the least possible.
Step 3: ESP8266 Witty Board
The ESP8266 Witty Board is a two-part module with the ESP8266
module on the top board whereas the communication and flash circuitry on the bottom board. For our purposes, we will need the bottom board which we will call the programmer.
The programmer consists of the communication IC CH340 along with a micro USB port, a RESET and a FLASH switch.
There are two rows of headers to receive the pins from the adapter plate.
Step 4: Preparing the ESP8266MOD Module
This part involves five steps in the sequence listed.
Remove the register in the middle, ensure that the two pads are not connected/bridged.
Solder the ESP8266MOD on the adapter plate.
Solder the pins
Solder the LED on GPIO 14
Solder the regulator. If you are using the XC6206P332PR the pads match with the pins of the regulator. I do not know if this is the case with XC6206P332MR (significantly cheaper).
Step 5: Programming the ESP8266MOD
The instructions to flash/program the ESP8266MOD is described in the following Instructable - Programming the ESP8266 WeMos-D1R2 using Arduino software/IDE. Be sure to select the Board as WeMos D1R2 & Mini. As the program is compiling and uploading to the ESP8266MOD module, hold down the FLASH switch until the upload is complete.
18 Comments
5 years ago
I ran across this programmer board before finding your instructable.
Just an FYI...
https://www.banggood.com/ESP8266-Test-Board-Burn-Fixture-Support-ESP-12E-ESP-12F-ESP-07-And-Other-Modules-p-1235574.html
Reply 5 years ago
Thank you. I would not like to shell out $22.
Reply 5 years ago
How much did your rig cost?
Reply 5 years ago
A witty board with a esp8266 module costs $3.50
Reply 2 years ago
that is when you see how much markup there is on Aliexpress... just 39 RMB on Taobao :) https://item.taobao.com/item.htm?spm=a230r.1.14.29...
Question 4 years ago on Step 4
hi, do you mean "the RESISTOR in the middle"? what is the point of doing that? what is it bridging? thanks.
Answer 3 years ago
It's marked on the diagram above and is a zero Ohm link as the manufacturer assumes the board will be supplied with 3v3 by the user. Consequently with the zero Ohm link in place the PCB pin marked Vcc is electrically connected direct to Pin 8 of the ESP8266-12.
If you intend to power from >3v3 then you can solder a 3v3 series shunt regulator to the handy pads on the back of the PCB. However to do so you would need to remove the zero Ohm link so as to feed the Vcc through the regulator.
Also note you would need to use a SOT-89-3 such as the Torex XC6206, though you should really fit 1.0uF ceramics as in the datasheet. However, the pads for which have been missed off.
Reply 3 years ago
thanks! what i found worked consistently across all ESP8266 boards (thus far) is that **GPIO0 and GPIO15 must be tied to GND, CH_PD must be tied high and REST must be tied to GND briefly (and released)** to put the ESP8266 into programming mode. You can use the 3.3V from a Witty's base board. I found it simpler to use 2xAA batteries and put a 470uF capacitor across or to use a voltage converter board that came with an ESP8266 i purchased off of ebay. This way, I can use the WItty board OR an FTDI board (which does not provide enough power to on Vcc to run the ESP8266). See the attached image. Ignore the first image -- i wasn't able to delete it. the second is the updated one.
Reply 3 years ago
Thanks for your images and info.
5 years ago
Can i use lower witty board as USB to TTL adaptor ? Can you show me how to wiring diagram for that, please ?
Reply 5 years ago
This Instructable is about using the lower witty board as a usb to ttl adopter. You can google for the circuit diagram for the witty board.
Reply 5 years ago
Thanks! I've read about you solution again.
Can you tell me how to connect AMC1117 pin to lower witty board
Reply 5 years ago
AMC1117 is soldered to the ESP8266 board and not the witty board. I believe you could solder it on the witty board. If you do so plese let us know how you did it.
Reply 5 years ago
I plan to use the lower witty board to flash other MCU have 3.3V Vcc but it uses 5v input via micro-USB. So I think I need to add AMC1117 to the lower witty board, that's right?
5 years ago
Did you manage to use this board with wifi? I can't find anything
Reply 5 years ago
Yes I did. You might want to look at some of my other Instructables for programming tips.
Reply 5 years ago
I will. I flashed it with LUA, with Arduino's ESP12E (or Wemos, as you recommended), nothing gives me any return on wifi whatsoever.
5 years ago
thk.