Uno - ESP32 SoftwareSerial communication won't work I have two boards, Uno and ESP32 and my goal is to send data from the Uno to the ESP. I made a voltage divider so my ESP doesn't get fried and I use the communication only in ONE way, strictly UNO -&gt; ESP32. I use PIN 9 from my UNO to send data and RX2 (16) from my ESP to receive the data. How ever, I get errors and can't make it work.
This is my Uno code:
#include &lt;SoftwareSerial.h&gt;

SoftwareSerial softPort(-1, 9);

void setup() {
Serial.begin(9600);
softPort.begin(9600);
}

void loop() {
softPort.print(&quot;100&quot;);
delay(2000);

}

and my ESP code:
#include &lt;SoftwareSerial.h&gt;

#define RXD2 16
#define TXD2 -1

SoftwareSerial Serial2(RXD2, TXD2); // RX, TX

void setup() {
Serial.begin(115200);
Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);

}

void loop() {
Serial.println(&quot;Data received:&quot;);
Serial.println(Serial2.read());
delay(200);

}

I'm getting an error that says

no matching function for call to 'SoftwareSerial::begin(int, int, int, int)'
On the ESP32 you would never use SoftwareSerial except under exceptional circumstances.
The ESP32 has three hardware UARTs that can be mapped to any pin combination on the board.
The general usage is:
HardwareSerial Serial2(1); // Use UART channel 1

void setup() {
    Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
}

UARTs are numbered 0-2 where 0 is pre-assigned to the TX/RX (USB connection) pins and is used for debugging and programming.  UARTs 1 and 2 are not normally assigned to anywhere and you can use them as you see fit.