I'm using Arduino Nano and ESP8266. When I setup like the picture and connect Arduino Nano to PC by USB: The ESP8266 properly works. (Arduino Nano is just used as a bridge) I print and read from serial with a C# program, it correctly works. What I send from C# program: AT+CWJAP='APN', 'Pass' The message from ESP: AT+CWJAP='APN', 'Pass' OK But, when I change the setup as follows: • Green wire (green wire on picture) to Arduino Digital2 pin • Red wire (red wire on picture) to Arduino Digital3 pin • Use Arduino code to read/write serial, instead of C# program • Create a software serial from code (esp8266 = SoftwareSerial(2, 3)) What I send from SoftwareSerial: AT+CWJAP='APN', 'Pass' The message from ESP: AT+CWJAP='APN', 'Pass' ERROR Do you have any ideas? Why isn't the result on SoftwareSerial identical to Serial? This is the info taken from: The library has the following known limitations: 1) If using multiple software serial ports, only one can receive data at a time. 2) Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).