Всем привет! Откопал тут из ящика старое устройство на ESP32, которое пролежало там больше месяца. Включение показало, что всё работает нормально, но та же самая прошивка не загружается. Вот лог: Код (Text): Скетч использует 135538 байт (10%) памяти устройства. Всего доступно 1310720 байт. Глобальные переменные используют 11124 байт (3%) динамической памяти, оставляя 283788 байт для локальных переменных. Максимум: 294912 байт. C:\Users\anton\Documents\Arduino\hardware\espressif\esp32/tools/esptool.exe --chip esp32 --port COM7 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 C:\Users\anton\Documents\Arduino\hardware\espressif\esp32/tools/partitions/boot_app0.bin 0x1000 C:\Users\anton\Documents\Arduino\hardware\espressif\esp32/tools/sdk/bin/bootloader.bin 0x10000 C:\Users\anton\AppData\Local\Temp\arduino_build_431498/Blink.ino.bin 0x8000 C:\Users\anton\AppData\Local\Temp\arduino_build_431498/Blink.ino.partitions.bin esptool.py v2.1 Connecting........_ Chip is ESP32D0WDQ6 (revision 1) Uploading stub... Running stub... Stub running... Changing baud rate to 921600 Changed. Configuring flash size... Warning: Could not auto-detect Flash size (FlashID=0x0, SizeID=0x0), defaulting to 4MB Compressed 8192 bytes to 47... Writing at 0x0000e000... (100 %) [здесь зависает на несколько минут] Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 9362.0 kbit/s)... A fatal error occurred: Timed out waiting for packet header A fatal error occurred: Timed out waiting for packet header Итак, что мне не нравится. Во-первых, как мы видим, скетч имеет размер около 132 КБ, но esptool пишет, что сжал 8 КБ в 47 байт(!). Во-вторых, он не смог определить размер флеш-памяти. В-третьих, происходит ошибка. Вспомнил, что в текущей, уже загруженной прошивке есть функция просмотра файловой системы на флеш-памяти. После вывода первых четырёх (это число не меняется) файлов происходит Guru Meditation Error. Отслеживание при помощи ESP Exception Decoder показало, что ошибка произошла в функции чтения памяти, которую написали разработчики arduino-esp32. Полагаю, что что-то произошло с памятью, но раз прошивка запускается, то очевидно, что это "что-то" произошло в области, следующей за прошивкой и этими четырьмя файлами. Какие предположения?
После полной разборки схемы всё заработало как часы. Возможно, проблема была в большом потреблении, но я не думаю, что SD карта, дисплей ILI9341 и клавиатура так много потребляют.