* The ESP8266 Wi-Fi module does not allow the TCP client to bind to a specific port.
* Setting up a UDP server is not possible.
* The serial port does not have hardware flow control enabled by default. Additionally, the AT command set does not have a method for limiting the download rate. Therefore, downloading anything larger than the serial port input buffer is unreliable
unless you use [AT firmware](https://www.espressif.com/en/support/download/at?keys=) version 1.7.0 or later. With older
firmware, an application should be able to read fast enough to stay ahead of the network. This applies mostly to TCP
protocol, where data would be lost without notification. On UDP using all firmware versions, the higher-layer protocol should recover from packet loss.
[mbed_lib.json](mbed_lib.json) configuration assumes Arduino form factor. Please adjust according to your board. You can override parameters from your app config file.
UART HW flow control requires you to additionally wire the CTS and RTS flow control pins between your board and your
ESP8266 module. After this, remember to add the configuration option for flow control to your app configuration file. This example uses the [ST NUCLEO-F429ZI](https://os.mbed.com/platforms/ST-Nucleo-F429ZI/) board and
**Note:** Not all modules expose ESP8266's RTS and CTS pins, so choose modules carefully.
Once you have your hardware set up, add a configuration like the following to your app configuration file. Arduino pins D1 and D0 are used as TX and RX:
``` javascript
"target_overrides": {
"NUCLEO_F429ZI": {
"esp8266.rts": "PG_12",
"esp8266.cts": "PG_15"
}
```
### Example board pins
* TX: D1 (Arduino Uno Revision 3 connectivity headers)
* RX: D0 (Arduino Uno Revision 3 connectivity headers)