How To Read from ESP32 - CLONE/BACKUP Everything
Vložit
- čas přidán 12. 09. 2024
- This was kind of a fun one that you might find useful someday like I did.
Esptool git reference: github.com/esp...
Flash chip datasheets: www.winbond.co...
Here's all of those commands you can use as a starting point and note that on windows, things will be slightly different. Just follow the same steps and you should be good:
Read from Adafruit Huzzah board (4MB):
/Users/kevindarrah/Library/Arduino15/packages/esp32/tools/esptool_py/2.6.1/esptool.py --port /dev/cu.usbserial-01D5ECE0 --baud 921600 read_flash 0 0x400000 adafruit.bin
Write back to Adafruit Huzzah:
/Users/kevindarrah/Library/Arduino15/packages/esp32/tools/esptool_py/2.6.1/esptool.py --chip esp32 --port /dev/cu.usbserial-01D5ECE0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x0 /Users/kevindarrah/adafruit.bin
Get Flash ID for size:
/Users/kevindarrah/Library/Arduino15/packages/esp32/tools/esptool_py/2.6.1/esptool.py --port /dev/cu.usbserial-DA00Y7QG --baud 921600 flash_id
Read trigBoard (16MB):
/Users/kevindarrah/Library/Arduino15/packages/esp32/tools/esptool_py/2.6.1/esptool.py --port /dev/cu.usbserial-DA00Y7QG --baud 230400 read_flash 0 0x1000000 trigBoardbackup.bin
Write trigBoard:
/Users/kevindarrah/Library/Arduino15/packages/esp32/tools/esptool_py/2.6.1/esptool.py --chip esp32 --port /dev/cu.usbserial-DA00Y7QG --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x0 /Users/kevindarrah/trigBoardbackup.bin
Tindie link to trigBoard: www.tindie.com...
Thanks to all the Patrons for dropping a few bucks in the tip jar to help make these videos happen!
/ kdarrah
Twitter: / kdcircuits
For inquiries or design services:
www.kdcircuits...
After all the years, I can still follow along with the math. When I was a younger man, serving in the Navy, I used to teach numbering systems to civilan programmers who were writting code for the Navy's Naval Tactical Data System. I taught Decimal to Binary conversion, Binary to Hexidecimal conversion, and assembly and compiling languages. Shortly after I left, they included teaching ForTran and Pascal languages. Gives you an idea just how long ago it was when I was teaching programming.
Thanks Wade!
Thanks, Kevin. Very useful. I'll definitely be using this soon. Looking forward to part 2 when you get a chance. 👍
Flash encryption would be really interesting! Thanks for this cool video!
sorry to be off topic but does someone know of a tool to log back into an Instagram account?
I stupidly forgot the password. I love any assistance you can offer me!
@Bjorn Martin Instablaster =)
Does this encryption video exist?
Great explanation. Helped me to understand how to backup a 128Mbit (16MB) chip successfully.
How interesting this is, I went a different direction in life, but this is fascinating as in my older years been learning more and more on components ...my IT guy will love this, sharing
That may come in very handy in the near future. Thanks.
Thanks, this worked great. Still noobish and messed up a TTGO display ESP32. Bought a new one and recovered the old with this method. 🙌
Timely. Planned to research this tomorrow 😁👍
Part 2 will be interesting
Thank you very much, nice example and explanation, I was able to backup the Factory Watchface from my Watchy 2.0
I just saw your TRIGBOARD on the EEVBLOG, great job! thumbs up.
thanks yea that was so cool!
Cool video, I'm still a newbie with the ESP boards so very handy information
please don't stop making informative video.
it's kinda easy to stop you from duplicate their board, just put a condition on esp chip id and done, or perhaps checking the chip id on the server and rejecting the connection if it's not in their list
I am looking forward to see the part 2, for a looong time :D
@Kevindarrah
Nice video. Were you able to work on the part 2 video of protecting the flash? Please share the link if it is available. Also if you can confirm if flash encryption can be done on ESP12-F as well? Thanks in advance.
huz·zah : /həˈzä/
exclamation
used to express approval or delight; hurrah.
"someone yelled “Huzzah!”"
ha, did not know this!
How do you keep your WiFi credentials safe (if you have an IoT module outside)? Is encrypting the flash enough (you mentioned at the end that part 2 would be about encrypting the flash)
Great tutorial. Was researching how to do this only yesterday!
nice!
This was super helpful, thank you!
Great video as always 👍🙂
Nice tool to use as a backup
Thanks for sharing your knowledge to all of us 👍😊
looking forward to a future video about protecting memory contents... if not the entire memory, perhaps just specific variables such as passwords and things. I would imagine that there would be simple mechanisms you could put into your code that would at least make storing passwords not obvious in a dump of the memory and would be simple for most folks to do.
yea got it on my list!
@@Kevindarrah sorry to exhibit search laziness but did this follow up happen? Thanks for this video. I had backburnered this chore since before you actually released this solution.
I saw your video today. And then i encounter you again on Eevblog video one hour ago! Nice. It's a shame the low effort dave put in his videos nowadays.
either way, I was blow away to see Dave holding a trigBoard!
On Atmel 8bit AVR you can set a fuse to prevent people from reading the flash/eeprom. They would only get zeroes.
Im surprised the ESP32 doesnt have a similiar feature, being an more advanced MCU and all
I need to get the read circuit reason why is I coded an esp and I didn’t save the code to my laptop please I need help
@Kevin, did you make the part 2 of the video you mentioned. It would be very interesting. Please share the link.
Wow, this just save my day................thank you very much
Nice Video - quite informative
Can you share the name or a link to the windows version of the Hex calculator i saw you using?
regards
On Chip last line XX, u can read the flash size
Thanks! Some useful stuff learnt
Hi, would like to ask if cloning an ESP32 will also clone it's MAC address ? For example, if you clone three pcs. ESP32, will all three have same MAC address ? Would like to know a good encryption technique using easy to use flashing software . Thanks
Hello Kevin,
How can I extract from ESPRESSIF if it does not have a USB Port? I can find the GND TX0 RX0, GND RST, CK and DA port.
Nice video interesting ,,, when will be the part 2 video comes for esp32 flash encryption, if any one has part 2 video details plz share in comments thank you .
01:51 waiting for that
My use-case is that if I have a device that I have bought as part of a solution and I want to try it with my own version of the software I don't want to permanently delete the software it came with. (EG, Specifically a multi relay board with built in ESP01 and I want to temporarily change the ESP SW) So I need to be able to read the flash and restore it afterward.
How can you connect to one of these that has no USB port
god that was interesting. thanks a lot
Please create a video about flash encryption 🙏
29% after heng problem ???
What program did you use? This is no help.
hi ...how can i write a file with .bin extension
@kevindarrah Where is the second part? I've had a child now, but I don't think I'll ever find out the gender.
Very cool!
wil it work even if its read protected esp32?
ESP32 does have a flash encryption function to get around this issue. it uses AES-256 encryption and the key can not be accessed by software. PLuse there is also a secure boot option. So you can protect your firmware if you want, but i expect that somebody could still hack it if they spent enough time and effort.
It's not uncommon to have memory protection on microcontrollers.
thanks yea it's normally pretty easy with uC's, but with the external flash here, takes a couple extra steps.
@@Kevindarrah what is uC ? Does it get you the encryption key
Hi Kevin, realy useful but not sure if will work with protected Firmware
Do you have any videos for total newbs
Do I do the same with an esp-12f 12e 12s ?
It does not work for me. I get the error A fatal error occurred: Invalid head of packet (0xFF). Any idea how I could fix it?
try changing baud rate
How to prevent clone my esp code?
man i wish we can just do this with the Arduino software i am so lost and getttiing frustrated...
Thanks
I miss the link to part two
*"EEVblog Mailbag" brought me here*
whoa, so many people showing up over here - thanks!
Cooooool
can u make tutorial like this but for ESP8266 ?
Hi,
Does it also copy the EEPROM/SPIFFS/PREFERENCES of the device?
yea it's a complete flash copy
Clone MAC address?
very nice. I hopped we could go and dissemble the code to see the wifi password ;-)
(>^.^)> Dave from EEVBLOG suggested your channel. Sub’d from Bezerkeley!
cool thanks!
Does anyone know of a discord group related to the ESP32 etc?
You shouldn't be allowed to show this on video.
Thank you Kevin, very helpful to get a backup bin. Just a note, the PCB under the Antenna PCB will change the resonance frequency a fair bit... See Robert Feranec czcams.com/video/Rke7d9MKOLs/video.html
You should consider using platformio for future projects
5:08 EGAD! Bent pin on the dev board. Please! Spare your user's this horrible view.
nice catch!
@@Kevindarrah Thanks for the ACK.
I've seen a lot of bent EPROM pins like that years ago. Now I gently remove parts from sockets or breadboards.
Thanks again for CARING enough to SHARE with us. Maybe you should write a book?
Thanks, Kevin. Tried to use this after a library upgrade cause my Sketch to no longer run. I took an new empty ESP32 Cam, loaded a program and tried to read it. An immediate fatal error of COM port doesn't exist occurs and the IDE never tries to connect. Just wondering if you heard if Arduino IDE has done something to prevent reads. I tried reading a single memory location with the same results. Here is the message when not specifiying a serial port.
esptool.py v4.5
Found 1 serial ports
Serial port COM7
COM7 failed to connect: Could not open COM7, the port doesn't exist
I'm an old fogie trying to learn new stuff but find many sketches do not work due to changes made in the library.