I would like to establish one way uart serial communication between an Arduino 5V and an ESP32 3.3V module. The communication would be ESP32 TX pin ---> Arduino RX pin I wouldn't use the second serial line, since I only need to transmit one way.

Now my question is, does the arduino pull its RX pin to high at any time during the serial communication?

If I understand serial correctly, the device only manipulates it's own TX pin, but leaves its own RX pin floating, is that correct? The reason I need to know is that ESP32 is not 5V tolerant, so I need to make sure the arduino won't pull its RX pin high at some point and fry my poor ESP32.

  • \$\begingroup\$ I'm gonna guess it depends on the type of serial communication. Do you, by any chance, mean RS232/UART? perhaps then edit the question to make this mor clear \$\endgroup\$ – Joren Vaes Jun 27 '19 at 10:01
  • \$\begingroup\$ I googled the arduino rx and tx pins and it's probably uart \$\endgroup\$ – Askerman Jun 27 '19 at 10:10
  • \$\begingroup\$ You could always measure it with a DMM. \$\endgroup\$ – vini_i Jun 27 '19 at 10:27
  • 1
    \$\begingroup\$ You should be aware that connecting a 3.3V logic signal to a device that expects a 5V signal may be unreliable. You may need a level shifter of some kind to make this work. \$\endgroup\$ – Elliot Alderson Jun 27 '19 at 10:52

For UART, the RX pin is always an input. There might be a pull-up or pull-down resistor on the board and possibly a series resistor, but this will depend on how the board is wired.


UART communication in MCUs I know, the transmitter keeps its TX line in HIGH level when idle. And yes, you have to convert the signal in a valid voltage level at RX pin of receiver UART.

Independently of your Arduino board: initializate de UART and check the voltage in the RX pin with a multimeter. This probe method is almost definitive and avoids to review board schematics and MCU datasheets ;-)

In your case, ESP32 (3.3V) TX-pin to Arduino (5V) RX-pin is not electrically dangerous, but review de logic threshold voltage levels (VIH parameter for UART) in Arduino MCU datasheet in order to be sure that 3.3V level is rightly interpreted as HIGH in receiver UART.


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.