Оставлю здесь уточнение, может пригодится кому-нибудь.
Serial.swap() не имеет никакого отношения к второму UART на ESP8266 (aka UART1).
Если посмотреть код этой функции, можно увидеть, что внутри ее меняется бит IOSWAPU0 регистра IOSWAP, который описан так:
#define IOSWAPU0 2 //Swaps UART 0 pins (u0rxd <-> u0cts), (u0txd <-> u0rts)
Т.е. RX и TX от UART0 переключаются на другие ноги (неиспользуемые CTS и RTS).
А поменять местами UART0 и UART1 можно так:
IOSWAP |= (1 << IOSWAPU);
Только это ничего принципиально не изменит, просто UART0 и UART1 поменяются местами, а описанные ограничения UART1 начнут относиться к UART0.