I just managed to get a unofficial Arduino WiFi shield to work. But the ESP is flashed on its own now - providing only information to the USB->TTL converter and therefore the output goes straight to the Serial Monitor of the Arduino IDE.

Since the ESP is flashed and should be running now - I should be able to disconnected the USB->TTL converter and attach the Arduino RX/TX to the ESP TX/RX right?

Then I should receive Serial Data and should be able to process these in my Arduino Sketch right?

So what do I need to do now? Should I start trying a Serial read from the arduino with the baud rate specified by the ESP Flash (11520)? Or do I have to consider something else as well?


Your analysis is indeed correct, you can communicate between Arduino and ESP using the serial protocol.

Electrically speaking you must ensure the RX and TX pins are crossed:

Arduino RX goes into ESP TX
Arduino TX goes into ESP RX

Also, the two devices MUST have a common ground, the GND pins of the Arduino and the ESP8266 must be tied together.

You don't need level shifters because, even if the ESP8266 runs at 3.3V, its IO ports are 5V tolerant.

Also, as you already pointed out, the two devices must set the same speed (aka BAUD rate) in order to comprehend each other.

In case you decide to transmit binary data please also consider the two devices use a different architecture: Arduino is 8bit, ESP8266 is 32bit, meaning they have different word size (the minimum allocation unit size).

I had to face the word size issue when I first tried to exchange a struct between an Arduino and a RaspberryPI (also 32bit)...

  • 1
    Are you sure the input pins are 5V tolerant? They seemed to be but it was yet confirmed by Espressive. – Gerben Sep 14 '16 at 10:08
  • If you aren't using level shifters will the Arduino be able to read the 3.3v signals transmitted by the ESP8266? – Code Gorilla Sep 14 '16 at 12:00
  • The GPIO pins are all 5V tolerant as stated from multiple sources, even if the Expressf datasheet doesn't state it in a clear way and actually provides contraddictory information. This DOES NOT MEAN you can power an ESP8266 with 5V and ALSO DOES NOT MEAN you can source or sink any significat current at 5V, but you CAN exchange signals at 5V, provided the 5V side is capable to detect a 3.3V HIGH signal, as the Arduino does. – Roberto Lo Giacco Sep 14 '16 at 12:36
  • 1
    @Matt yes, Arduino operating at 5V is capable to detect a 3.3V HIGH, the threshold voltages are 3V on the high side and 1.5V on the low side. – Roberto Lo Giacco Sep 14 '16 at 12:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.