This question stems from this article (Originally in Spanish/English) which Hack a Day summarizes (Includes link to partial English translation). These articles show that it is possible to update an Arduino Uno via an ESP8266 over WiFi.
I've modified the code so that when I hit the reset button on the Arduino connects to an "Update" server via the ESP8266, configured in "transparent" mode, to check for an update. If one is present the ESP8266 updates the Arduino which reboots itself. If there isn't an update I reset the ESP8266 and quickly tell it to drop any connection before it can reconnect to the "Update" server thus allowing me to connect to a "Logging" server instead for normal operation.
There is a slight difference in how one connects. The "Update" server is connected with the ESP8266 in "transparent" mode. While connecting to the "Logging" server the ESP8266 is in "normal" mode.
At present I have wired an additional connection to the reset pin of the ESP8266. Whenever it doesn't do what I want it to do I drop the power on the reset pin, confuse it and Zap in a command before it's managed to re-establish any "transparent" connection. This works but seems a little like black magic.
I was curios to know if there is a better way to force the ESP8266 out of "transparent" mode.
Note: I have not flashed the ESP8266 with NodeMCU/ESPLink or some other firmware.
Aside: There is an ESP8266 Arduino Core library does this also flash the ESP8266 in a manner similar to NodeMCU/ESPLink or does this run on the Arduino and facilitate over the air updates using the native firmware as I am trying to do ? I've only just started reading their documentation. (As this is a first post I've run out of links to share)