Why use a series resistor between Arduino RX and ESP8266 TX?

Hello,

I have seen this in several schematics which i assume are professional since they are for popular open-source products.

ESP5266_04-300x221.jpg

But i can't figure out why there is a 470 Ohms resistor in series between the RX pin of the Arduino and the TX pin of the ESP8266? Can someone please explain? Why choose this specific value since i see the same value resistor used in many schematics between the Arduino and the ESP8266?

I was also puzzling over the need for the potential divider but then i did some research and i found that there is a need for a logic-level shifter between the Arduino TX and the ESP8266 RX data line. But i can't find anything on the 470 Ohms series resistor. :frowning:

ESP5266_04-300x221.jpg

My guess is this is to protect the pins by limiting current. That shouldn't happen during normal serial communication, but imagine if you didn't have the resistor and someone uploaded some code that did something like this to the Arduino:

pinMode(0, OUTPUT);
digitalWrite(0, LOW);

Now everytime the Tx pin on the ESP8266 goes HIGH, that's a short which will cause the current on those pins to exceed the absolute maximum and possible damage the microcontrollers. With the resistor, the current should be limited to a safe level.