Using an ESP-13 WiFi Shield With Your Arduino
June 2018: Updated to include a troubleshooting section.
Overview
You may very well be deep in the rabbit hole in your long journey of trying to make sense of the very little information that exists for the ESP8266 ESP-13 WiFi Shield.
This isn’t exactly a plug n’ play shield.
This guide aims to document a “Getting Started” guide, by the end of it you’ll be making a TCP connection using the WiFiEsp library to a server and printing the contents via serial.
If you don’t already have the hardware, and you are thinking of getting one - my advice is don’t do it. It kinda sucks.
But, if you’re reading this - it’s probably too late…so read on.
The model you have may vary slightly to what I have. I bought mine on Jaycar and looks like this:
It has the brandname “Duinotech” silk printed on the PCB but appears to be based off a design from the Doctors of Intelligence & Technology (DOIT)
Before we begin make sure your Arduino is flashed with a blank sketch - this will make things much easier.
Fixing the Baud Rate
So, the first problem is the ESP-13 shields UART is set to 115200 baud.
This is way too fast for the Arduino Uno over software serial. So you need to set the baud to 9600.
But unfortunately the pins for serial are swapped. TX goes RX and vice versa, so you need to seperate the shield and wire it up manually.
Note: This is not the same as the serial connection from your PC to the Arduino over USB, which is capable of 115200 baud.
You’ll also need to make sure the dip switches are set to “off” (top right in the above picture)
ESP-13 | Arduni Uno |
---|---|
Debug Port TX (TXO) | Uno Pin 1 (TX) |
Debug Port RX (RXO) | Uno Pin 0 (RX) |
Debug Port 5V | Uno 5V |
Debug Port GND | Uno GND |
Feel free to refer to the picture below for how I wired it.
Once you’ve wired it correctly and powered it on you’ll need to look at the serial monitor for the output “ready”. The baud on the serial console should be set to 9600 as well.
You should get some output similiar to below: