Всем привет! В электронике я нуб, заказал из любопытства esp32 cam с али, чтобы поиграться. Вот такую плату (парочку) и дев-плату под нее: https://aliexpress.ru/item/1005002932297533.html esptool flash_id показывают следующее: Код (Bash): #1 Chip is ESP32-D0WD-V3 (revision v3.1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: [удален] Uploading stub... Running stub... Stub running... Manufacturer: 5e Device: 4016 Detected flash size: 4MB Hard resetting via RTS pin... #2 Chip is ESP32-D0WD-V3 (revision v3.1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: [удален] Uploading stub... Running stub... Stub running... Manufacturer: 85 Device: 2016 Detected flash size: 4MB Hard resetting via RTS pin... Пытаюсь прошить в нее micropython. Шил прошивки отсюда, отсюда и отсюда. А также брал прошивки с оффсайта. Шил так: Код (Bash): esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 ... И не растет у меня кокос: при подключении через putty плата выдает крякозябры и висит, при попытке подключиться через thonny пишет device is busy. Так как я нуб в этом, я застрял . Что я делаю не так? . Или если это битые платы китайские, как это можно проверить?
1. Прошейте утилитой Flash Download Tools. 2. Там все абсолютно ясно - выберете там бинарник и укажете адрес 0x1000 (из вашего сообщения) На плате должна быть кнопочка Boot. Нажмите ее и держите пока прошивка не начнется. Как начнется можно отпустить. Нет кнопки - значит не нажимайте
Мак адреса через интернет не ходят - можете не скрывать. В составе Esp-idf есть прошивальщика и дебаггер. Ставится как расширение для редактора Vscode. А дальше все просто - клацаете по кнопочкам и оно само собирается и прошивается. Не надо никакой возни с адресами и прочим.
Спасибо за ответы, попробую. К вопросу о кнопках: на плате есть кнопки IOO и RST. С последним все понятно (reset), а вот что за IOO и не должен ли он быть нажат?
Обычно его "нажимает" загрузчик. Если не получится (особенности платы) - подержите его. Источник знаний Когда загрузка идет через командную строку, модуль переводить в режим загрузки надо вручную. Так что можете попробовать также как грузили, только с нажатой кнопкой.
@inemig, у вас Linux? Для пользователя есть разрешения на группы dialout и tty? Код (Bash): sudo usermod -a -G dialout your-username sudo usermod -a -G tty your-username
Может и не ходють, но попользовать их для себя, иногда, можно очень даже удачно. В esp32 cam все кнопички нужно нажимать только ручками.
Увы, не помогло. Все то же самое. Пример из этой статьи норм прошился и отработал Прошивка: Код (Bash): 1348 mkdir -p ~/esp 1349 cd ~/esp 1350 git clone -b v5.2.1 --recursive https://github.com/espressif/esp-idf.git 1351 cd ~/esp/esp-idf 1352 ./install.sh esp32,esp32s2 1353 . ./export.sh 1354 tree 1355 ls -l 1356 cd examples/ 1357 ls -l 1358 cd get-started/ 1359 ls -l 1360 cd hello_world/ 1361 idf.py set-target esp32 1362 history | grep erase 1363 esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash 1364 idf.py build 1365 idf.py -p /dev/ttyUSB0 flash 1366 idf.py -p /dev/ttyUSB0 monitor Вывод: Код (Bash): ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:7172 load:0x40078000,len:15540 load:0x40080400,len:4 0x40080400: _init at ??:? ho 8 tail 4 room 4 load:0x40080404,len:3904 entry 0x40080640 I (31) boot: ESP-IDF v5.2.1 2nd stage bootloader I (31) boot: compile time Apr 27 2024 22:05:45 I (31) boot: Multicore bootloader I (35) boot: chip revision: v3.1 I (39) boot.esp32: SPI Speed : 40MHz I (44) boot.esp32: SPI Mode : DIO I (48) boot.esp32: SPI Flash Size : 2MB I (53) boot: Enabling RNG early entropy source... I (58) boot: Partition Table: I (62) boot: ## Label Usage Type ST Offset Length I (69) boot: 0 nvs WiFi data 01 02 00009000 00006000 I (76) boot: 1 phy_init RF data 01 01 0000f000 00001000 I (84) boot: 2 factory factory app 00 00 00010000 00100000 I (91) boot: End of partition table I (96) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=095e4h ( 38372) map I (117) esp_image: segment 1: paddr=0001960c vaddr=3ffb0000 size=0220ch ( 8716) load I (121) esp_image: segment 2: paddr=0001b820 vaddr=40080000 size=047f8h ( 18424) load I (130) esp_image: segment 3: paddr=00020020 vaddr=400d0020 size=135c8h ( 79304) map I (159) esp_image: segment 4: paddr=000335f0 vaddr=400847f8 size=07f58h ( 32600) load I (178) boot: Loaded app from partition at offset 0x10000 I (178) boot: Disabling RNG early entropy source... I (190) cpu_start: Multicore app I (198) cpu_start: Pro cpu start user code I (198) cpu_start: cpu freq: 160000000 Hz I (199) cpu_start: Application information: I (202) cpu_start: Project name: hello_world I (207) cpu_start: App version: v5.2.1 I (212) cpu_start: Compile time: Apr 27 2024 22:05:34 I (218) cpu_start: ELF file SHA256: b3badee8f... I (223) cpu_start: ESP-IDF: v5.2.1 I (228) cpu_start: Min chip rev: v0.0 I (233) cpu_start: Max chip rev: v3.99 I (238) cpu_start: Chip rev: v3.1 I (243) heap_init: Initializing. RAM available for dynamic allocation: I (250) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM I (256) heap_init: At 3FFB2AD0 len 0002D530 (181 KiB): DRAM I (262) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM I (268) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM I (275) heap_init: At 4008C750 len 000138B0 (78 KiB): IRAM I (282) spi_flash: detected chip: generic I (285) spi_flash: flash io: dio W (289) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header. I (303) main_task: Started on CPU0 I (313) main_task: Calling app_main() Hello world! This is esp32 chip with 2 CPU core(s), WiFi/BTBLE, silicon revision v3.1, 2MB external flash Minimum free heap size: 300876 bytes Restarting in 10 seconds... Restarting in 9 seconds... Restarting in 8 seconds... Restarting in 7 seconds... Restarting in 6 seconds... Restarting in 5 seconds... Restarting in 4 seconds... Restarting in 3 seconds... Restarting in 2 seconds... Restarting in 1 seconds... Restarting in 0 seconds... Restarting now. Смущает разница в выводе Код (Bash): rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) И разница между Код (Bash): I (48) boot.esp32: SPI Flash Size : 2MB Код (Bash): Detected flash size: 4MB Попробовал зашить , но все то же самое. В общем, как видно, с железом все ок: проблема не в кабеле, ни в порте, ни в плате. Проблема с прошивкой или настройками подключения к последовательному порту. Идеи?
Я чет не обратил внимания, что вы из под Линукса. Маленьких питонистов на этом сайте я не наблюдал. Есть один товарищ, который универсально знает все, но не всегда понятно выражается. Может есть какой-то специальный сайт по вашей системе?
У меня dual-boot, но обычно работаю под ubuntu. Ваш вариант попробовал под windows, но результат тот же. Ок, попробую спросить на форуме разработки micropython. Всем спасибо за участие!
А ресет вы нажимаете? 1. Жмёте и держите Д0. 2. Нажимаете и отпускаете ресет. Д0 все время держите. 3. Теперь запускаете загрузку и когда пойдёт- отпускаете Д0. Так действуете?
Не, оно что под windows, что под линукс зашивается норм. esptool.py verify_flash выдает ок после прошивки.