On the Argon the the ESP32 does connect by UART serial to Serial2 and it uses esp-at, the AT command interface.
This is how you get the ESP32 to boot from user firmware manually. You’ll be doing this directly from your nRF52 code, but it should be obvious how to translate it.
WiFi.off();
delay(5000);
// Enable ESP32
_log.trace("rebooting ESP32");
pinMode(ESPBOOT, OUTPUT);
pinMode(ESPEN, OUTPUT_OPEN_DRAIN);
digitalWrite(ESPBOOT, 1);
delay(100);
digitalWrite(ESPEN, 0);
delay(100);
digitalWrite(ESPEN, 1);
delay(100);
// Set up serial
_log.trace("Starting serial");
Serial2.begin(921600, SERIAL_FLOW_CONTROL_RTS_CTS); // 115200
There is no documentation, however the Argon schematics are open source. This is the fork of esp-at.
Note that the Argon uses the ESP32 in CMUX mode, and the esp-at build does not have multi-socket enabled. It’s going to be a lot of work implementing CMUX in native nRF52. You may want to consider also rebuilding the esp-at with AT-based multi-socket and server enabled instead of CMUX.
It helped a lot!
Well, I’m not going to implement multi-socket behavior, but it is also good to know that there’s a way.
Thank you, and have a nice day.