Skocz do zawartości

Zgranie szkicu z ESP32 do pliku, który można zarchiwizować- jak to zrobić?


Pomocna odpowiedź

Napisano

Witam!

Taki stary kotlet odgrzewam......ponad rok temu kompilowałem szkic do zegara ESP32 na lampie oscyloskopowej.

Wgrałem skompilowany szkic do dwóch ESP32, nie zmieniłem SSID/hasła do routera(wieś to nie blokowisko), chodzi o zgranie do binarki , tak by szło wgrać do innego modułu, tudzież łatwo skompilować.

Sęk w tym, że 99% pracy na komputerze robię na systemie Linux, konkretnie Zorin OS 17.2, tym "edukacyjnym", nie zrobiłem backupu danych z katalogów Arduino IDE.

Arduino IDE i też v2 naturalnie działa na Linuxie(bo czemu nie.....na MacOS też a to praktycznie identyczny system pod względem budowy i obsługi).

Mam też na stole warsztatowym komputer z Windows 11 Pro na którym szło by zgrać.......niestety moja Mama jest bardzo chora i nie mam czasu na zgłębianie C+/++, jak potrzeba, to jest ChatGPT, student to robi na uczelni na zaliczenie, to czemu ja nie mam na głupi zegarek na bazie rosyjskiej czy innej, starej lampy oscyloskopowej?

Ogólnie od dwóch lat nie chce mi się pisać szkiców, nie bawię się tym i , skoro nie da się w analogu, to mi AI napisze szkic a ja go poprawię i tyle.

Nie jestem wychowany w epoce cyfrowej, w marcu kończę 42 lata i prościej mi zbudować wzmacniacz lampowy czy naprawić stare urządzenia niż analizować linijki kodu.

Proszę o pomoc.

  • Lubię! 1
  • 2 tygodnie później...
(edytowany)

Zastanawiałem się, czy wrzucić tego posta, ale może komuś oszczędzi trochę czasu.

W konsoli (linux; powłoka "bash") na co dzień używam tzw. aliasów, czyli alternatywnej, krótkiej nazwy dla komendy lub grupy komend (z parametrami). Może nie zastąpią rozbudowanej logiki skryptu, ale skracają czas klepania po klawie podczas prostych wywołań. Aliasy można umieścić bezpośrednio w ukrytym konfigu "~/.bashrc" (katalog domowy $HOME) albo w odrębnym pliku, np. "~/.bash_aliases". Korzystam z drugiej opcji. Czasem trzeba ją aktywować usuwając znaki komentarza "#" z poniższych linii w ukrytym pliku "~/.bashrc":

Np. za pomocą edytora nano:

nano ~/.bashrc

Sprawdzamy, czy wpis wygląda tak:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

 

Następnie sprawdzamy czy istnieje ukryty plik ".bash_aliases" w katalogu domowym:

ls ~/.bash_aliases

 

Jeżeli tak, wyświetli się ścieżka pliku; jeśli wspomni "Nie ma takiego pliku ani katalogu" - tworzymy go:

touch ~/.bash_aliases

 

Po czym przeładowujemy konfig komendą lub wylogowujemy się z systemu:

source ~/.bashrc
  
# lub

. ~/.bashrc

 

W ".bash_aliases" dodajemy łatwe do zapamiętania nazwy. Zazwyczaj mam wpięte tylko jedno esp32 na standardowym porcie /dev/ttyUSB0, więc:

# esp32; domyślny: port [/dev/ttyUSB0], rozmiar flash [4MB], baud [115200]; dodatkowy parametr "-z" (kompresja)
alias esp32-wgraj_fw-0x0='esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash && esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 write_flash -z 0x0'
alias esp32-wgraj_fw-0x0_bez_kompresji='esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash && esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 write_flash 0x0'
alias esp32-wgraj_fw-0x1000='esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash && esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 write_flash -z 0x1000'
alias esp32-czysc_flash='esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash'
alias esp32-kopia-fw_4MB='esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 read_flash 0x0 0x400000'
alias esp32-flash_info='esptool.py --chip esp32 --port /dev/ttyUSB0 flash_id | grep -i "^detected flash size"'
alias esp32-chip_info='esptool.py --chip esp32 --port /dev/ttyUSB0 chip_id'

 

Po dodaniu wpisów do pliku ".bash_aliases" przeładowujemy go za pomocą komendy "source ~/.bash_aliases" lub restartujemy terminal.

 

[Użycie]

Kiedy chcę zrobić kopię flasha esp32 do pliku "kopia.bin", wpisuję: (po "esp32" można nacisnąć TAB, który rozwinie dostępne aliasy)

esp32-kopia-fw_4MB "kopia.bin"

 

Wgranie np. firmware micropython-a (początkowy adres 0x1000):

esp32-wgraj_fw-0x1000 "ESP32_GENERIC-20241129-v1.24.1.bin"

 

Wgranie fw circuitpython-a (początkowy adres 0x0):

esp32-wgraj_fw-0x0 "adafruit-circuitpython-espressif_esp32_devkitc_v4_wroom_32e-pl-9.2.4.bin"

 

Wgranie wcześniej utworzonego backupu "kopia.bin" (bez parametru "-z" w esptool):

esp32-wgraj_fw-0x0_bez_kompresji "kopia.bin"

 

Czyszczenie flasha:

esp32-czysc_flash

 

Info o flashu:

esp32-flash_info

 

Edytowano przez orb777
  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...