I'm new to the ESP8266 but not embedded systems in general. I have a little ESP8266 ESP-12F board I purchased from AliExpress - not sure exactly what it is, but the phrase "“QX Electronics ESP8266 ESP 12F Wemos D1 R3 Development Board ESP-12F NodeMCU LUA WiFi Extension Module RGB LED DIY for arduino” seems to bring up pictures that match what I have. It shipped with AT version 1.1.0.0 and SDK version 1.5.4.
I have it running off a 5V supply (it has a AMS1117 3.3V regulator so that's OK) and I'm communicating with it via a *genuine* FTDI USB/UART bridge, with just TX/RX/GND connected to the ESP board. Serial comms seems to be ok except for one strange problem - it only communicates at 115200 baud.
Using esptool.py I've managed to get the Blinky demo flashed onto it once, but most of the time the serial transfer times out and freezes and I have to retry. I've also tried to reflash the AT firmware but it always fails at 99% on the eagle.irom0text.bin (if it gets that far):
"A fatal error occurred: Timed out waiting for packet header".
I'd like to run it at 57600 or lower baud to try and avoid these serial problems, however as I mentioned I'm not able to get any comms to the board at anything other than 115200. Even the "esptool.py chip_id" command fails to connect if I use --baud with anything other than 115200. Many posts say to use "--baud 9600" to try and solve the problems I'm seeing, but that doesn't seem to be an option for me.
I've also tried various USB cables and host ports as well as rewired my serial comms to the ESP board to try and make it more reliable, with no noticeable effect unfortunately.
From what I've read, esptool.py is meant to be able to communicate at the specified baud rate - does anyone know what might be preventing baud rate selection from working? How does esptool.py negotiate a baud rate with the device? Is this a feature of the ESP bootloader and is it possible to upgrade/modify this?