ESP32 32D factory configuration information
-
ulamteller
- Posts: 4
- Joined: Mon Aug 18, 2025 11:00 am
ESP32 32D factory configuration information
I accidentally bumped off a 4 pin header to a ESP32 wroom 32D espressif wifi board on a cleaning robot (bissell), I can't seem to resolder it, would a replacement generic board (from aliexpress) come pre programmed for wifi or is it necessary to program it, thank you for any clues.
Re: ESP32 32D factory configuration information
Hard to say. It could be that the manufacturer uses the 'standard' AT firmware, but they might have modified it, or even run something entirely custom on it. I would not assume it will work without the original firmware. Can you access TxD0/RxD0/GPIO0, or even the flash chip? If they aren't using flash encryption, you could use that to read out the flash and program a new chip.
-
ulamteller
- Posts: 4
- Joined: Mon Aug 18, 2025 11:00 am
Re: ESP32 32D factory configuration information
would default factory ESP32 32D firmware enable U2 uart IO17 U2TXD IO16 U2RXD, or would I have to upload a firmware that enables it ?
would factory firmware enable uart 0 or 1 ?
without tx/rx connected it comes up with a wifi as ap which could have been saved to flash with default firmware AT commands
https://docs.espressif.com/projects/esp ... l#cmd-mode
AT+CWSAP="ESP","1234567890",5,3
I could try to get a similar fairly cheap module from aliexpress to check whether it could work with stock factory firmware
update: I managed to get that module working again, it's not properly connected via original resistors but from pads on the back
does espressif flash download tool for windows support old ESP32 D32 model ? are there any "official" espressif videos how to use it to flash factory default firmware ? (instead of python esptool)
would factory firmware enable uart 0 or 1 ?
without tx/rx connected it comes up with a wifi as ap which could have been saved to flash with default firmware AT commands
https://docs.espressif.com/projects/esp ... l#cmd-mode
AT+CWSAP="ESP","1234567890",5,3
I could try to get a similar fairly cheap module from aliexpress to check whether it could work with stock factory firmware
update: I managed to get that module working again, it's not properly connected via original resistors but from pads on the back
does espressif flash download tool for windows support old ESP32 D32 model ? are there any "official" espressif videos how to use it to flash factory default firmware ? (instead of python esptool)
Last edited by ulamteller on Tue Aug 19, 2025 8:52 pm, edited 3 times in total.
Re: ESP32 32D factory configuration information
No, I think by default it's on UART1, but I'm not sure. (Also that is configurable when building ESP-AT.) Note that this is not 'default' firmware, if you buy a devkit, module or chip, they usually arrive entirely empty. But as I said: I would not assume it's that firmware to begin with; you could sniff the serial port on the robots side to see if it sends AT commands to make sure.
-
ulamteller
- Posts: 4
- Joined: Mon Aug 18, 2025 11:00 am
Re: ESP32 32D factory configuration information
Does that "AT" system support D32 model or is it unsupported legacy now ?
according to manual [ESP32-AT][v2.4.0.0]User-Guide.pdf:
ESP32 AT uses two UART ports: UART0 is used to download firmware and log output; UART1 is used to send
AT commands and receive AT responses. Both UART0 and UART1 use 115200 baud rate for communication by
default.
All ESP32 modules use GPIO1 and GPIO3 as UART0, but they use different GPIOs as UART1. The following
sections illustrate which GPIOs you should connect for each ESP32 series of modules.
update :
the example esp-idf example\blink I could build, flash and it works and also the actual esp-at (which contains it's own esp-idf incidentally)
since (as mentioned) it defaults to uart1 :
"I (1094) at-uart: AT cmd port:uart1 tx:17 rx:16 cts:15 rts:14 baudrate:115200"
which would be ok (for that particular cleaning robot), in case I wanted to set the cmd port to uart 0, in order to try out commands interactively from the usb port, what should I change ? from make menuconfig of esp-at from https://github.com/espressif/esp-at : Platform name:ESP32 Module name:WROOM-32
that I can't seem to find the option :
Component config > AT > AT uart settings
Component config > ESP system settings > uart is uart0
from these instructions : https://docs.espressif.com/projects/esp ... t_pin.html
I changed \esp-at\components\customized_partitions\raw_data\factory_param\factory_param_data.csv
to have the cmd uart as 0 :
PLATFORM_ESP32,WROOM-32,"4MB, Wi-Fi + BLE, OTA, TX:17 RX:16",4,78,0,1,13,CN,115200,1,3,15,14,1
there appears what would appear to be an interactive prompt "ready" with same tx 1 rx 3 pins of cmd uart0 as log uart
"I (1074) at-uart: AT cmd port:uart0 tx:1 rx:3 cts:15 rts:14 baudrate:115200"
but it doesn't seem to be interactive, typing in "AT" it didn't respond neither with putty or the esp-idf monitor idf.py -p COM3 monitor
I got it to work using arduino ide, selecting esp32 wroom board, 115200 baud, and most crucial it seems NL & CR (both) :
AT+GMR
AT version:4.2.0.0-dev(b0fe7e5 - ESP32 - Aug 22 2025 09:44:03)
SDK version:v5.4.1-643-g8ad0d3d8f2-dirty
compile time(529d9d08):Aug 30 2025 02:00:45
Bin version:v4.2.0.0-dev(WROOM-32)
OK
update :
I managed to read the flash memory from the original ESP32 module (by activating boot mode), it turned out to be a custom mongoose os app, on uart 2, not the ESP-AT let's say default, in case anyone else a similar situation, my particular module from aliexpress allowed me to change the wifi MAC which is one shot I think, in order to clone the device :
C:\Espressif>python C:\Espressif\frameworks\esp-idf-v5.5\components\esptool_py\esptool\espefuse.py --port COM3 burn_custom_mac 40:F5:20:70:6F:24
espefuse.py v4.10.dev2
Connecting....
Detecting chip type... ESP32
=== Run "burn_custom_mac" command ===
- 'MAC_VERSION' (Version of the MAC field) 0x00 -> 0x1
- 'CUSTOM_MAC' (Custom MAC address) 0x000000000000 -> 0x246f7020f540
- 'CUSTOM_MAC_CRC' (CRC8 for custom MAC address) 0x00 -> 0x9e
Check all blocks for burn...
idx, BLOCK_NAME, Conclusion
[03] BLOCK3 is empty, will burn the new value
.
This is an irreversible operation!
Type 'BURN' (all capitals) to continue.
BURN
BURN BLOCK3 - OK (write block == read block)
Reading updated efuses...
Custom MAC Address version 1: 40:f5:20:70:6f:24 (CRC 0x9e OK)
Successful
according to manual [ESP32-AT][v2.4.0.0]User-Guide.pdf:
ESP32 AT uses two UART ports: UART0 is used to download firmware and log output; UART1 is used to send
AT commands and receive AT responses. Both UART0 and UART1 use 115200 baud rate for communication by
default.
All ESP32 modules use GPIO1 and GPIO3 as UART0, but they use different GPIOs as UART1. The following
sections illustrate which GPIOs you should connect for each ESP32 series of modules.
update :
the example esp-idf example\blink I could build, flash and it works and also the actual esp-at (which contains it's own esp-idf incidentally)
since (as mentioned) it defaults to uart1 :
"I (1094) at-uart: AT cmd port:uart1 tx:17 rx:16 cts:15 rts:14 baudrate:115200"
which would be ok (for that particular cleaning robot), in case I wanted to set the cmd port to uart 0, in order to try out commands interactively from the usb port, what should I change ? from make menuconfig of esp-at from https://github.com/espressif/esp-at : Platform name:ESP32 Module name:WROOM-32
that I can't seem to find the option :
Component config > AT > AT uart settings
Component config > ESP system settings > uart is uart0
from these instructions : https://docs.espressif.com/projects/esp ... t_pin.html
I changed \esp-at\components\customized_partitions\raw_data\factory_param\factory_param_data.csv
to have the cmd uart as 0 :
PLATFORM_ESP32,WROOM-32,"4MB, Wi-Fi + BLE, OTA, TX:17 RX:16",4,78,0,1,13,CN,115200,1,3,15,14,1
there appears what would appear to be an interactive prompt "ready" with same tx 1 rx 3 pins of cmd uart0 as log uart
"I (1074) at-uart: AT cmd port:uart0 tx:1 rx:3 cts:15 rts:14 baudrate:115200"
but it doesn't seem to be interactive, typing in "AT" it didn't respond neither with putty or the esp-idf monitor idf.py -p COM3 monitor
I got it to work using arduino ide, selecting esp32 wroom board, 115200 baud, and most crucial it seems NL & CR (both) :
AT+GMR
AT version:4.2.0.0-dev(b0fe7e5 - ESP32 - Aug 22 2025 09:44:03)
SDK version:v5.4.1-643-g8ad0d3d8f2-dirty
compile time(529d9d08):Aug 30 2025 02:00:45
Bin version:v4.2.0.0-dev(WROOM-32)
OK
update :
I managed to read the flash memory from the original ESP32 module (by activating boot mode), it turned out to be a custom mongoose os app, on uart 2, not the ESP-AT let's say default, in case anyone else a similar situation, my particular module from aliexpress allowed me to change the wifi MAC which is one shot I think, in order to clone the device :
C:\Espressif>python C:\Espressif\frameworks\esp-idf-v5.5\components\esptool_py\esptool\espefuse.py --port COM3 burn_custom_mac 40:F5:20:70:6F:24
espefuse.py v4.10.dev2
Connecting....
Detecting chip type... ESP32
=== Run "burn_custom_mac" command ===
- 'MAC_VERSION' (Version of the MAC field) 0x00 -> 0x1
- 'CUSTOM_MAC' (Custom MAC address) 0x000000000000 -> 0x246f7020f540
- 'CUSTOM_MAC_CRC' (CRC8 for custom MAC address) 0x00 -> 0x9e
Check all blocks for burn...
idx, BLOCK_NAME, Conclusion
[03] BLOCK3 is empty, will burn the new value
.
This is an irreversible operation!
Type 'BURN' (all capitals) to continue.
BURN
BURN BLOCK3 - OK (write block == read block)
Reading updated efuses...
Custom MAC Address version 1: 40:f5:20:70:6f:24 (CRC 0x9e OK)
Successful
- Attachments
-
- Immagine 2025-08-30 053803.jpg (206.18 KiB) Viewed 124 times
-
- esp-at uart configuration.jpg (178.01 KiB) Viewed 135 times
Who is online
Users browsing this forum: Google [Bot], PerplexityBot, Qwantbot and 5 guests
