I have done some more SMD rework and tests to try to find out the root cause of the weird behavior on the ESP8266 module described in my previous project log.
It turns out that the issue (probably) has nothing to do with soldering, instead, the I2C bus is causing problems: The two "problematic" boards were resurrected after removing all I2C peripherals, and the same issue appeared on the freshly soldered ESP8266 test bed once I attach any I2C device to it.
Further investigation using my NodeMCU and old ESP8266 breakout boards (also based on the ESP-12F module) revealed that this is more like an issue related to the ESP8266 Arduino core's Wire library implementation, as the bit-banging I2C (note that there is no hardware I2C on ESP8266) occasionally causes strange failures (watchdog reset, not detecting some devices with an I2C scanner sketch, etc.) on these boards too.
At the moment, I do not really have a conclusive explanation on the root cause. Since the I2C bus is essential to the SPINES design, I hope that I can figure out a workaround for ESP8266 in the next few days (or I will need to move on to another IoT module, maybe one with LoRa or BLE):
- Revert to an older version of the Arduino core
- Add some delay(1) to the Wire library function calls
- Any other suggestion?