Somewhere sometime I upgraded from SDK 1.1.0 to 1.2.0, I believe that is somewhere between release 5 and 9 (indeed). Since the upgrade, the automatic connect doesn't work anymore. Previously I'd load a simple AT-style firmware, connect that, then load my firmware and done. But now the autoconnect doesn't find the previously set data. I don't have a clue why.
So that's why I now set the wlan data explicitly and that's why you need the wlan bootstrap mode. I don't like it either, but I can't think of a better solution.
An alternative to hardcoding and to the wlan bootstrap mode would be to peek and poke around in flash, using esptool.py. Procedure:
- load an run (!) the bridge firmware once, so it writes a clean config with proper magic number and version
- use esptool.py to dump the memory at 0x7a000 (sector 0x7a), length 64 bytes. There you'd find this struct:
typedef struct
{
uint32_t magic;
uint16_t major_version;
uint16_t minor_version;
char ssid[32];
char passwd[32];
uint32_t flags;
uart_parameters_t uart;
gpio_config_t gpios;
i2c_sensor_config_t i2c_sensors;
} config_t;
In other words, skip the first 8 bytes, then edit the ssid at offset (8 + 0) and the password at offset (8 + 32), then write it back. It's all plain text with a \0 at the end.
But if you're not seeing any text, it looks like the firmware got corrupted altogether. What if you flash it again? What is the size of your flash, you don't have one of the early 2 Mb flash chips? Then the firmware won't fit, you need 4 Mb. How do you flash the firmware?