I wanted to get to know this ESP8266 wifi module everyone was talking about and I got real excited when I discovered it's just two dollars on eBay! So I bought some and went ahead trying to get it to work. Days and hours later, I was frustrated and getting nowhere. I stuck with it and eventually made it work but noticed it would make my life considerably easier to have a little programming jig for connecting the ESP and programming or communicating via an FTDI USB. So I looked online and found some examples (like this one: https://www.hackster.io/glowascii/esp8266-programm...!) and then designed my own board with some added functionalities. Hope it makes your life with the ESP a little more enjoyable and a bit less frustrating!
Step 1: Gather Your Parts
For this programming board you will need:
- Perforated PCB
- Some headers (male and female)
- Momentary push switch for the reset button
- Slide toggle (on/off) switch for the programming button
- LED and 330 Ohm resistor
- FTDI Basic USB controller with 3.3V option (like this: http://www.ebay.ca/itm/FT232RL-FTDI-Serials-Adapt...
- Of course, the ESP8266-01 (like this one: http://www.ebay.ca/itm/122152541854?_trksid=p2057...
- Soldering iron and some wire
Step 2: Prepare the FTDI Controller
Depending on the FTDI USB controller you may have to move a jumper or solder the back to get it to be 3.3V needed for the ESP. It is VERY important to check the voltage on the FTDI USB VCC pin BEFORE plugging in the ESP as 5V will fry it!
Mine was a Basic FTDI USB (like this one: http://www.ebay.ca/itm/FTDI-Basic-3-3V-5V-USB-to-T... that had a trace for 3.3V on the back. I had to cut the 5V trace and solder the 3.3V to the VCC pin (see photo). If you're buying one, get one with a jumper-selectable voltage like the one listed under parts.
Step 3: Solder the Components
This may be a bit tricky depending on your PCB size and wire available but stick with it and try to be neat. I made my job a bit easier by soldering a swathe of GND pins together because they're needed for the switches, LED, as well as the FTDI and ESP ground. See the photos for some close-ups and the diagram for the pinout. Add some labels to make it pretty!
Step 4: Test!
There are many tutorials out there for getting started with the ESP. It's definitely a learning curve but if you stick with it, it's a great little board with tons of functionality for dirt cheap!
Here are two tutorials that really helped me to get going:
For pinout and setup as well as some good intro to ESP: https://www.instructables.com/id/ESP8266-WiFi-Modul...(note that in step 15 you have to unplug the GPIO 0 from ground to use the AT commands!)
An intro to using AT commands: https://www.instructables.com/id/Getting-Started-W...
The programming board will make certain things easier - it uses the 3.3V from the FTDI directly, which for most things will be enough. It also has the programming button to bring GPIO 0 to GND when you need to upload code.
My first foray into ESP-land was frustrating as I spent lots of time figuring out why I had gibberish on my display only to find my ESP started at 78400 baud rate and then switched over to 115200. I also had the GPIO 0 pin (programming pin) grounded when trying AT commands, which will NOT work. Make sure you know which way your switch faces on the board so that when it is engaged it brings the GPIO 0 to ground and puts the ESP in upload mode. The other thing this board will make easier is mistakes with RX and TX - but do make sure you have the TX from ESP going to RX on the FTDI and the RX from ESP to FTDI TX. I spent hours trying to figure out my breadboard before discovering I had the TX pin moved over one. Hence the reason for this project!
I used the Arduino serial monitor because it allows easy baud selection. If you follow the steps in the first article above for installing the ESP software and selecting the right parameters you should be just fine.