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, 2019 at 10:01
  • \$\begingroup\$ I googled the arduino rx and tx pins and it's probably uart \$\endgroup\$
    – Askerman
    Jun 27, 2019 at 10:10
  • \$\begingroup\$ You could always measure it with a DMM. \$\endgroup\$
    – vini_i
    Jun 27, 2019 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\$ Jun 27, 2019 at 10:52

2 Answers 2


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.


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

Independently of your Arduino board: initialize the UART and check the voltage at the RX pin with a multimeter. This probe method is almost definitive and avoids reviewing board schematics and MCU datasheets.

In your case, ESP32 (3.3V) TX-pin to Arduino (5V) RX-pin is not electrically dangerous, but review the logic threshold voltage levels (VIH parameter for UART) in the 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.