Тёмный

How To Read from ESP32 - CLONE/BACKUP Everything 

Подписаться
Просмотров 52 тыс.
% 956

This was kind of a fun one that you might find useful someday like I did.
Esptool git reference: github.com/espressif/esptool
Flash chip datasheets: www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en&selected=128Mb#Density
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/products/kdcircuits/trigboard-ultra-low-power-esp32-iot-platform/
Thanks to all the Patrons for dropping a few bucks in the tip jar to help make these videos happen!
www.patreon.com/kdarrah
Twitter: KDcircuits
For inquiries or design services:
www.kdcircuits.com

Наука

Опубликовано:

 

13 фев 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 88   
@wadefallin
@wadefallin 3 года назад
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.
@Kevindarrah
@Kevindarrah 3 года назад
Thanks Wade!
@renebrsch
@renebrsch 3 года назад
Flash encryption would be really interesting! Thanks for this cool video!
@bjornmartin6480
@bjornmartin6480 3 года назад
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!
@landenemmitt3729
@landenemmitt3729 3 года назад
@Bjorn Martin Instablaster =)
@MysteryElectronicz
@MysteryElectronicz 2 года назад
Does this encryption video exist?
@ClaytonDarwin
@ClaytonDarwin 3 года назад
Thanks, Kevin. Very useful. I'll definitely be using this soon. Looking forward to part 2 when you get a chance. 👍
@TomHermans
@TomHermans 2 года назад
Thanks, this worked great. Still noobish and messed up a TTGO display ESP32. Bought a new one and recovered the old with this method. 🙌
@DarrahValentine
@DarrahValentine 3 года назад
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
@panoriega
@panoriega 2 месяца назад
Thank you very much, nice example and explanation, I was able to backup the Factory Watchface from my Watchy 2.0
@automationtechnologyclub
@automationtechnologyclub 22 дня назад
worked well for me using a esp32s3, thank you for the simple solution
@pileofstuff
@pileofstuff 3 года назад
That may come in very handy in the near future. Thanks.
@richardperritt
@richardperritt 3 года назад
Timely. Planned to research this tomorrow 😁👍 Part 2 will be interesting
@stevetobias4890
@stevetobias4890 3 года назад
Cool video, I'm still a newbie with the ESP boards so very handy information
@DavidLeeMenefee
@DavidLeeMenefee 3 года назад
I just saw your TRIGBOARD on the EEVBLOG, great job! thumbs up.
@Kevindarrah
@Kevindarrah 3 года назад
thanks yea that was so cool!
@reshadrei1788
@reshadrei1788 11 месяцев назад
please don't stop making informative video.
@antoni2nguyen
@antoni2nguyen 2 года назад
I am looking forward to see the part 2, for a looong time :D
@ChaseCares
@ChaseCares 7 месяцев назад
This was super helpful, thank you!
@stupossibleify
@stupossibleify 3 года назад
Great tutorial. Was researching how to do this only yesterday!
@Kevindarrah
@Kevindarrah 3 года назад
nice!
@avejst
@avejst 3 года назад
Great video as always 👍🙂 Nice tool to use as a backup Thanks for sharing your knowledge to all of us 👍😊
@nyckid
@nyckid 3 года назад
huz·zah : /həˈzä/ exclamation used to express approval or delight; hurrah. "someone yelled “Huzzah!”"
@Kevindarrah
@Kevindarrah 3 года назад
ha, did not know this!
@emanuelkszenics7689
@emanuelkszenics7689 2 года назад
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
@ridwanullahiabdulrauf3224
@ridwanullahiabdulrauf3224 2 года назад
Wow, this just save my day................thank you very much
@FrankGraffagnino
@FrankGraffagnino 3 года назад
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.
@Kevindarrah
@Kevindarrah 3 года назад
yea got it on my list!
@dmackle3849
@dmackle3849 2 года назад
@@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.
@WistrelChianti
@WistrelChianti 3 года назад
Thanks! Some useful stuff learnt
@sandeepkapare
@sandeepkapare Год назад
@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.
@oskimac
@oskimac 3 года назад
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.
@Kevindarrah
@Kevindarrah 3 года назад
either way, I was blow away to see Dave holding a trigBoard!
@ch0asnature
@ch0asnature 7 месяцев назад
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
@leejohannes
@leejohannes Год назад
On Chip last line XX, u can read the flash size
@Daniel-ri2ys
@Daniel-ri2ys 3 года назад
Please create a video about flash encryption 🙏
@Sysshad
@Sysshad 8 месяцев назад
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
@zeref783
@zeref783 10 дней назад
It does. It's called Secure Boot in combination with Flash Encryption. But on a prototype why would this be set...
@charlesmarseille123
@charlesmarseille123 2 года назад
god that was interesting. thanks a lot
@Beatfreak19831
@Beatfreak19831 3 года назад
Very cool!
@imranics1142
@imranics1142 2 года назад
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 .
@NicksStuff
@NicksStuff 8 месяцев назад
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)
@Od3o_ela_sabil_rabek
@Od3o_ela_sabil_rabek 3 года назад
01:51 waiting for that
@mansurbhamani3905
@mansurbhamani3905 10 месяцев назад
@Kevin, did you make the part 2 of the video you mentioned. It would be very interesting. Please share the link.
@michaeldavison9808
@michaeldavison9808 5 месяцев назад
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.
@DebdutBiswasOnline
@DebdutBiswasOnline 3 года назад
Cooooool
@mikevhx5682
@mikevhx5682 Год назад
Thanks
@espero_dev
@espero_dev 2 года назад
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
@ESP32-ARD
@ESP32-ARD 6 месяцев назад
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
@lombard-ri7il
@lombard-ri7il Год назад
Hi Kevin, realy useful but not sure if will work with protected Firmware
@permanenthairsystemludhian5143
@permanenthairsystemludhian5143 5 месяцев назад
29% after heng problem ???
@dpatt6175
@dpatt6175 10 месяцев назад
How can you connect to one of these that has no USB port
@paulkirchhof9546
@paulkirchhof9546 3 года назад
I miss the link to part two
@Mr_Meowingtons
@Mr_Meowingtons Год назад
man i wish we can just do this with the Arduino software i am so lost and getttiing frustrated...
@MedSou
@MedSou 3 года назад
*"EEVblog Mailbag" brought me here*
@Kevindarrah
@Kevindarrah 3 года назад
whoa, so many people showing up over here - thanks!
@RobertDickens2002
@RobertDickens2002 Год назад
Do you have any videos for total newbs
@sevketkarayilan
@sevketkarayilan 10 месяцев назад
How to prevent clone my esp code?
@rimbang_
@rimbang_ 2 года назад
can u make tutorial like this but for ESP8266 ?
@HasanJunaid-y8h
@HasanJunaid-y8h 10 месяцев назад
wil it work even if its read protected esp32?
@chanyorkful
@chanyorkful Год назад
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.
@signosvitales7969
@signosvitales7969 Год назад
hi ...how can i write a file with .bin extension
@zyghom
@zyghom 2 года назад
very nice. I hopped we could go and dissemble the code to see the wifi password ;-)
@TheEmbeddedHobbyist
@TheEmbeddedHobbyist 3 года назад
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.
@Kevindarrah
@Kevindarrah 3 года назад
thanks yea it's normally pretty easy with uC's, but with the external flash here, takes a couple extra steps.
@solidfuel0
@solidfuel0 Год назад
@@Kevindarrah what is uC ? Does it get you the encryption key
@sinezty
@sinezty 11 месяцев назад
@kevindarrah Where is the second part? I've had a child now, but I don't think I'll ever find out the gender.
@databang
@databang 3 года назад
(>^.^)> Dave from EEVBLOG suggested your channel. Sub’d from Bezerkeley!
@Kevindarrah
@Kevindarrah 3 года назад
cool thanks!
@rainerteschner7597
@rainerteschner7597 2 года назад
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?
@Kevindarrah
@Kevindarrah 2 года назад
try changing baud rate
@espero_dev
@espero_dev 2 года назад
Do I do the same with an esp-12f 12e 12s ?
@leef_me8112
@leef_me8112 3 года назад
You shouldn't be allowed to show this on video.
@dugy40
@dugy40 3 года назад
What program did you use? This is no help.
@altitude1039
@altitude1039 2 года назад
Does anyone know of a discord group related to the ESP32 etc?
@ebb2421
@ebb2421 Год назад
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 ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Rke7d9MKOLs.html
@liroysabah1563
@liroysabah1563 2 года назад
Hi, Does it also copy the EEPROM/SPIFFS/PREFERENCES of the device?
@Kevindarrah
@Kevindarrah 2 года назад
yea it's a complete flash copy
@jessejgm
@jessejgm Год назад
Clone MAC address?
@leef_me8112
@leef_me8112 3 года назад
5:08 EGAD! Bent pin on the dev board. Please! Spare your user's this horrible view.
@Kevindarrah
@Kevindarrah 3 года назад
nice catch!
@leef_me8112
@leef_me8112 3 года назад
@@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?
@joelhowell5402
@joelhowell5402 3 года назад
You should consider using platformio for future projects
@chicagolandjim2829
@chicagolandjim2829 Год назад
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.