Remote Serial Ports =================== It is possible to connect to any networked remote serial port that supports `RFC2217 `__ (Telnet) protocol. To do this, specify the serial port to esptool as ``rfc2217://:``. For example, to read information about your chip's SPI flash, run: :: esptool.py --port rfc2217://192.168.1.77:4000 flash_id Custom baud rates and DTR/RTS automatic resetting are supported over the RFC2217 protocol, the same as for a local serial port. Pyserial Example Servers ------------------------ PySerial (which is a dependency of esptool) includes two RFC2217 example programs - `a single-port example `__ and a `multi-port example `__. These example servers can run on any OS that supports pyserial, and are the simplest way to connect to an Espressif SoC over the network. There is an issue with `automatic resetting due to network latency `__. In order to work around this issue, a modified version of the single-port server example called ``esp_rfc2217_server.py`` is provided with esptool. On server: :: esp_rfc2217_server.py -p 4000 /dev/ttyUSB1 On client: :: esptool.py --port rfc2217://ADDRESS_OF_SERVER:4000?ign_set_control flash_id Raw Sockets ----------- For servers or hardware network/serial adapters which don't support the full RFC2217, it is also possible to specify ``--port socket://:`` syntax for a simple "raw TCP socket" protocol. These raw sockets don't support setting the baud rate or automatic resetting into the bootloader. If using this mode, don't pass the ``--baud`` option to esptool. You need to set the baud rate manually on the server, and manually reset the chip into the bootloader mode (or use some other signalling/control method to tell the server to do so). Here's a very basic example using the common Linux/OSX command line "netcat" and "stty" commands: On server: :: stty -F /dev/ttyUSB1 230400 # set baud rate nc -p 4000 -lk < /dev/ttyUSB1 > /dev/ttyUSB1 On client: :: esptool.py -p socket://localhost:4000 flash_id .. note:: Using RFC2217 is strongly recommended where possible. More Details ------------ All of the remote serial port support comes via pyserial. Read more `here `__. (Please keep in mind that the link points to documentation for the most recent pyserial version. You may have an older version.)