Arduino ESP8266 Wifi Shield Bootstrap Guide

Ok, there’s not much information about these ESP8266 wifi shields up on ebay. Here’s what I have learned in two days of pain. :slight_smile:

The red four switch block works in pairs.
Switch one and two make or break the connection from the ESP8266 with arduino pins 0 and 1 (serial port).
Switch one and two should be in the OFF position if the shield is stacked and you are programming the arduino.
Switch one and two should be in the ON position if you want serial communication to occur between the ESP8266 and the arduino.

Switch three and four should be in the OFF position unless you are upgrading the firmware of the ESP8266.

To communicate directly with the ESP8266 (and you should to start) obtain a 3.3 or 5v TTL (both ideally) to serial USB converter. I have a prolific 2303hx (WHICH I DO NOT RECOMMEND) which is apparently a fake. Do not stack the shield on your arduino yet. I was able to communicate directly with the ESP8266 by hooking up tx and rx on the 2302 to pins 0 and 1, 5v to 5v and ground to ground. Latest verisions of these shields use 115200bps on the serial port.

If you are running linux, I highly recommend cutecom. It’s simple and communicates better than anything else I have tried on this. Make sure your settings are to send LF and CR. Once you have it hooked up and plugged in, hit the reset button, that will generate text on the serial port. There will be some trash characters, but it should end with “ready”. Congratz, you have a working unit.

I would first upgrade the firmware. To do this, go to a windows box and use this tutorial:

Remember, for general communications put switches one and two ON, when you are ready to flash, all four switches should be ON. Don’t forget to check the boxes on the left next to the filenames…

Also, when you download the SDK, the files are in the ./bin directory and others are in the ./bin/at/ directories.

Ok, now when you are ready to write a sketch, you are going to want to keep the TTL converter handy. The wifi shield is connected through pins one and two, so you won’t be able to use normal Serial.print() command to troubleshoot your sketch. Use your TTL converter and SoftSerial to communicate on a different pair of pins. DO NOT hook up TTL converter to ground or 5v like earlier!!! I had poor results using SoftSerial and any other speed than 57600. I tested up to 115200 and down to 300 bps. 57.6 was the best. Perhaps it was the arduino, maybe it’s my fake 2303 TTL converter.

The debug port is wired to the corresponding pins of the standard arduino headers. There’s no extra features and they could have left it off.

The shield has a built in linear power regulator to take 5v from the arduino and convert down to 3.3v. It would be nice if it took voltage from VIN, but I suspect it takes power from 5v.

You will need a higher amperage power supply than you normally use, I’d say 1a minimum. Otherwise the ESP seems to reboot at inopportune times.

If you reverse ground and 5v, you will fry the linear regulator. Woops. It can be replaced with a standard 3.3v ams1117.

The shield also has a means to convert from 5v arduino serial to 3.3v ESP serial.

Overall a pretty nice board once you understand the tricks, and I’ll be buying more.

Pictures to follow.

My pics are too big, so here’s one off ebay…


Another lesson learned…

I normally test on a wooden bench. When you are running at 115k bps, that’s not enough resistance to current, and it will cause problems. You must set the arduino on plastic so pins 0 and 1 are completely isolated.

You would think at 5v it wouldn’t be a problem, but it is.

Is the ESP8266 module the same if I don't have the need for a shield?

Hi Clearchris,

I have the same module bought on EBAY. I'm stuck getting this module working and I'm pretty newbie on Arduino as well. I have run sketch successfuly on the Mega 2560 board by flashing the onboard led. But when I install the WiFi shield, I'm not able to upload sketch anymore. What I'm doing wrong. I want to learn but my EBay supplier refer me to Chineese documentation. Any help will be welcome. Thank you!