Is there a way to download the firmware from a working esp32 and convert it to a readable state (.ino) or simply use it to clone another esp32? I have a device currently in use that controls a string of leds that I was able to change the pattern by connecting to it and uploading four different .bin files. The device is still running with the last pattern uploaded but I can no longer connect to it to change the pattern. I have caused a self inflicted wound to the system as I can not locate the original .ino file I used to flash it four years ago. I can start and stop the unit with an external on/off wifi switch but I am unable to change the patterns using wifi /ota . I am able to ping the device with what I feel is the i/p address. But when I try to connect using the i/p from my browser, it says “unable to connect”.
When using the system from the browser, I would enter the i/p and the browser would respond with the small window asking to select the appropriate .bin file from the list that was offered. After making a selection, the file was uploaded to the esp and its progress was shown in the window. When finished, the window would close.
This whole process as instigated by clicking on a desktop shortcut. When I right click on the shortcut and ask for the file location, it takes me a file called “chrome_proxy,exe” which means nothing to me. In my sketchbook, all the .bin files are located in the same folder but I can not find anything that might take me to the correct .ino file for the basic esp32 firmware. I have perused numerous files that I thought might be connected, by searching for terms that would have been connected with the display that would appear on the browser but have been unsuccessful. It’s apparent at this point that I must have deleted file or named it something that I can not recall. It’s also very possible that the whole idea came from an RNT article or tutorial. My plan at this point is replace the esp32 with a new one but without the code that is not a good idea. Since the device can be pinged, I am assuming that is is not dead.
Any suggestions greatly appreciated
KentM
Hi.
Unfortunately, it’s not possible to recover the code that is on the ESP32.
I think it is possible to copy it to another board, but I’m not sure how to do it.
Regards,
Sara
Checkout WLED project for controlling RGB leds sequencing, color palette, and brightness.
Expressif esptool,py allows downloading application,bin; .bin is not text format, not editable. the esptool.py does allow copying of application.bin to another ESP32 using OTA on target ESP32.
Conversation with Microsoft’s Copilot about esptool.py
Regards,
William
Thanks for the replies. I am exploring the esptool at this time. I have located several youtube videos on the subject.
I finally found myself on this issue and have managed to make some progress. The files were hidden on a poorly marked folder. The whole scheme came on of your tutorials Called “Web Updater OTA” I know this had to come from RNT somehow because I am far from capable of doing this myself. I do recall that I had to make the .bin file that corresponded to the board type. I have several .bin files depending on the board . esp32 dev module, doit esp32 devkit, etc. I modified the .ino files to include the static I/P options as outlined in one of your tutorials. I checked the operations using the USB connection as well as wifi. Now I have run into another problem regarding the creation of .bin file . When I “export binary file, I find a new folder called BUILD that contains multiple .bin files but none that reflect the actual board type as it did before. Do you have any idea as to what is causing this?
Thank you
Have not experienced the issue you are having with exporting bin file; file does not contain board name. Possible it is related to the ESP32 core version If you are on ESP32 core version 3.x.x ; change to an earlier ESP32 core version. I am old school; using ESP32 core version 2.0.17.
Regards,
William
Is this the project you’re looking for: https://randomnerdtutorials.com/esp32-ota-over-the-air-arduino/?
Regards,
Sara
No, the one I was looking for is:
ESP32 OTA Web Updater
I got that all sorted now but the issue is with the creation of the .bin file. The post prior to yours gave me a clue to try an older version of the board in the IDE. That very well could be the issue as the original was almost four years ago. I will update here when I get a chance to try that.
KentM
Good Morning,
Is this the tutorial you looking to find?
ESP32 OTA Web Updaterr
William
Yes, that is the right tutorial. But I still can’t get the thing to “export as Binary” I double checked the .ino files and they all work when uploaded via usb. When I try to export, I get a new folder called “Build” within the same folder as the .ino file and in the new folder there are six more files many of them are .bin files. None of them reflect the type of board as they used to. My next effort is the reload the IDE back to the old version and try that. I tried using an old version of the board file but that made no difference.
I’ll keep things posted here
KentM
First, I get a new folder called “build”, in that folder is a folder called “esp32.esp32.esp32doit-devkit-v1″ and the in that folder I get”
https://imgur.com/a/0vrel0p
The first folder reflects the board type in use.
Hi.
The first file with the .ino.bin extension is the one you need.
Regards,
Sara
Using ESP32 Core 2.0.17; these are the files exported to the build folder:
ESP32 Core 2.0.17 Exported files
All exported files are .bin; no .ino .files are available using the export command or the esptool.py.
William
Everything is now working. But I have noticed that the .bin file used to change the feature display, doesn’t matter what board type is shown in the title of the .bin file. When I first built this system, the upload bin file had to have the correct board type in the file title. e.g. “doit , nodemcu, etc” but now it works fine if I upload a nodemcu file into the devkit board. That may have been something that I thought was required but probably wasn’t. But the one thing I do know, is that the current output of doing a binary export is different than it was back then. Probably a feature of the new IDE.
Thanks for the help
KentM