Skocz do zawartości
jordanj

Problem z flashem - Fatal error: Invalid head of packet (0x00)

Pomocna odpowiedź

Napisano (edytowany)

Cześć, bawię się z ESP32, do wczorajszej nocy wszystko szło OK, ale zaczęły się problemy z uploadowaniem flasha, których nigdy wcześniej nie miałem, a pół nocy Googlania nie przyniosło rezultatu.

Otóż, gdy uploaduję za pomocą Arduino IDE (na Mac OS X, jeśli to ma znaczenie) to widzę taki błąd w konsoli:

Sketch uses 727370 bytes (55%) of program storage space. Maximum is 1310720 bytes.
Global variables use 38448 bytes (11%) of dynamic memory, leaving 289232 bytes for local variables. Maximum is 327680 bytes.
esptool.py v2.6
Serial port /dev/cu.usbserial-AM00LYR0
Connecting....
Chip is ESP32D0WDQ5 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 3c:71:bf:dd:0b:00
Uploading stub...

A fatal error occurred: Invalid head of packet (0x00)
A fatal error occurred: Invalid head of packet (0x00)

Restart komputera, zamiana gniazda USB i podobne zabiegi z różnych forów nie przyniosły rezultatu. Zmiana baudrate również bez efektu.

Wobec tego dokonałem eksportu do pliku .bin i wgrałem flash na komputerze z MS Windows Vista za pomocą Node MCDU. Sama operacja wg logu zakończyła się powodzeniem. Rzeczywistość jest jednak odmienna. Moduł wpada w bootloopa i do konsoli pluje takim logiem:

13:44:49.957 -> rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
13:44:49.957 -> flash read err, 1000
13:44:49.957 -> ets_main.c 371

Gdy zewrę GPIO 0 z GND to w konsoli pokazuje:

13:45:00.879 -> rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
13:45:00.879 -> waiting for download

Czyli niby dobrze, ale nie mogę zrobić upload.

Na koniec taka drobna, ale być może bardzo istotna uwaga. Kilka godzin przed wystąpieniem problemy podłączyłem niechcący odwrotnie zasilanie czyli 3V3 do GND i GND do 3V3. 😞 W tym czasie miałem tam program, który między innymi wystawiał access point i serwer HTTP. Jakież było moje zdziwienie gdy po poprawnym podłączeniu działał normalnie. Od tego czasu (..., a może wcześniej, ale nie miałem okazji spróbować) nie mogę zaktualizować flasha. Czyżbym go uszkodził w jakiś nietypowy sposób?

Jakikolwiek pomysł mile widziany.

Edytowano przez jordanj

Udostępnij ten post


Link to post
Share on other sites

Najwyraźniej uszkodził się w bardzo typowy sposób - odwrócona polaryzacja zasilania. To że nie wszystko poszło z dymem to jak widać niewielka pociecha. Zawsze możesz pobawić się hotair'em i próbować podmienić flash, kiedyś kupiłem paczkę 4MB 10szt za parę $.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Niestety to nie to. Wylutowałem go i wlutowałem nowiutki z paczki nieotwieranej wcześniej i problem nadal występuje. Na płytce zwarć nigdzie nie ma. Do tego podłączałem go do Arduino IDE na innym Macu i rezultat zupełnie taki sam. Kończą mi się pomysły co może być źle.

Ten nowy również flashowałem za pomocą NodeMCU (po nieudanej próbie z Arduino IDE), zakończyło się tak jak z poprzednim tj. wg logu sukces, a naprawdę D 😞

Command: esptool.py --port COM23 --baud 115200 --after no_reset write_flash --flash_mode dio 0x00000 D:\Desktop\main.ino.esp32.bin --erase-all

esptool.py v2.6
Serial port COM23
Connecting....
Detecting chip type... ESP32
Chip is ESP32D0WDQ5 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 3c:71:bf:dc:f9:44
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Erasing flash (this may take a while)...
Chip erase completed successfully in 9.0s
Compressed 727488 bytes to 406996...
Wrote 727488 bytes (406996 compressed) at 0x00000000 in 37.6 seconds (effective 154.9 kbit/s)...
Hash of data verified.

Leaving...
Staying in bootloader.

Firmware successfully flashed. Unplug/replug or reset device 
to switch back to normal boot mode.

Po restarcie w konsoli widziałem:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

 

Edytowano przez jordanj

Udostępnij ten post


Link to post
Share on other sites

Zaproponowałem Ci wymianę flasha bo to jest prostsze, tak jak szukanie zagubionych kluczy tylko pod latarnią. Widocznie jednak leżą gdzieś w ciemności. Ważne to nie mieć tylko tego jednego modułu, jak masz kilka to łatwo zweryfikować, czy to nie wina po stronie PC. 

Udostępnij ten post


Link to post
Share on other sites

Ja właśnie przylutowałem cały moduł, a nie tylko pamięć tj. testowałem na zupełnie nowym ESP32.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Do czego go wlutowałeś? Piszę o innym module - całej kompletnej płytce, która na 99% powinna działać od strzału, jakiś WEMOS LOLIN32 czy DoIt. Nie używasz przypadkiem pinów GPIO 6-11?

Tu znajdziesz pełną listę "kłopotliwych" GPIO w tym ESP: https://espeasy.readthedocs.io/en/latest/Reference/GPIO.html#best-pins-to-use-on-esp32

Edytowano przez kaczakat
Edycja:

Udostępnij ten post


Link to post
Share on other sites

Nie, w tej chwili używam tylko pinów 3V3, GND, EN, IO0, 23, TX i RX.

Używam https://botland.com.pl/pl/moduly-wifi/7655-uklad-wifi-bluetooth-ble-esp-wroom-32-smd.html w tej chwili na czymś takim: https://botland.com.pl/pl/przejsciowki-smd-dip/8894-adapter-dla-modulu-wifi-esp-32s.html . Po drugiej nocce walki też pomyślałem, że warto spróbować z gotowym modułem, więc zamówiłem: https://botland.com.pl/pl/moduly-wifi/8893-esp32-wifi-bt-42-platforma-z-modulem-esp-wroom-32-zgodny-z-esp32-devkit.html .

 

Udostępnij ten post


Link to post
Share on other sites

Na Ali można kupić za około 10$ taką podstawkę do chipów:

image.thumb.png.d6b2c64775a806e9dc6d7f23919f7119.png

Można szybko przetestować przed lutowaniem, czy chip jest sprawny, nie ma potem wątpliwości czy coś z tym poszło nie tak.

Mam też zlutowany ESP32 na czystej płytce, moja nie ma tych rezystorów przy przyciskach (wlutowałeś je raczej). Do prawidłowej pracy musiałem dołożyć kondensator 1000uF, no ale tu problemy objawiały się dopiero na etapie łączenia do WIFI.

Udostępnij ten post


Link to post
Share on other sites

Ja tego rezystora do płytki nie wlutowałem gdyż nie było w zestawie, a w domu miałem tylko THT. Wobec tego celem uruchomienia mam drucik z rezystorem łączący zasilanie z EN lub to samo za pomocą płytki stykowej (płytka ma strasznie duże opory, ale o tym przy okazji).

P.s. Takiej właście podstawku szukam, ale jakoś nie mam szczęścia i nie mogę trafić na aukcjach.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...