ESP-32 OTA without Flash?

If you are asking a question, please follow this template:

  1. My goal is: to load and license a Mongoose-OS system on a virgin WROOM-32 based hardware device, without ever connecting via UART i. e. no mos flash

  2. My actions are: We have been flashing all of our assembled circuit boards (which mount a WROOM-32 module) using a USB to UART converter. I recently noticed that a virgin circuit board is accessible as a WiFi access point with an SSID of ESP_ 17xxxx upon its first power up. I can connect to this SSID from Windows, and it will assign me an IP address.

  3. My question is: Using this connection, is it possible to OTA load and license Mongoose-OS based firmware, thereby eliminating the need to ever physically connect to the device with wires? If so, how can this be done?

Thanks for your expert guidance,


I’ve not used the mos license before, so not sure if this will work.

If your firmware has RPC enabled it may be possible to perform the standard mos actions and specify the port of the device as websocket with the IP of the device when you’re connected to it by WiFi. The default device IP is

I’ve used the command like this before to mos put a file on the device:

mos put conf8.json --port ws://

Espressif likes to program some test code on their micros. Rarely that is published because that is for their internal testing
Other than that, a module out of the box is blank, there is nothing it can understand (well ESP8266s used to come with AT command support but that is another story)
OTA in this context is Cesanta’s mdash, something that Cesanta owns and is not related to Espressif. If your sell volume is important, you’ll probably can talk Espressif into selling you pre-programmed modules with whatever you want inside. Otherwise, to flash anything inside your module you need it to understand something and AFAIK the only thing it understands is what it is in its bootloader.
Besides, if there is no file system, you won’t be able to write any data file

Maybe somebody has reverse engineered what Espressif uses and has made it into using that, but… will you make your production to rely on something like that ?