Не удается подружить micropython и esp32 cam

Тема в разделе "ESP8266, ESP32", создана пользователем inemig, 26 апр 2024.

  1. inemig

    inemig Нерд

    Всем привет! В электронике я нуб, заказал из любопытства 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.
    Так как я нуб в этом, я застрял :(. Что я делаю не так? :(. Или если это битые платы китайские, как это можно проверить?
     
  2. ИгорьК

    ИгорьК Гуру

    1. Прошейте утилитой Flash Download Tools.
    2. Там все абсолютно ясно - выберете там бинарник и укажете адрес 0x1000 (из вашего сообщения)

    На плате должна быть кнопочка Boot. Нажмите ее и держите пока прошивка не начнется. Как начнется можно отпустить. Нет кнопки - значит не нажимайте :)
     
  3. parovoZZ

    parovoZZ Гуру

    Мак адреса через интернет не ходят - можете не скрывать.

    В составе Esp-idf есть прошивальщика и дебаггер. Ставится как расширение для редактора Vscode. А дальше все просто - клацаете по кнопочкам и оно само собирается и прошивается. Не надо никакой возни с адресами и прочим.
     
  4. inemig

    inemig Нерд

    Спасибо за ответы, попробую. К вопросу о кнопках: на плате есть кнопки IOO и RST. С последним все понятно (reset), а вот что за IOO и не должен ли он быть нажат?
     
  5. ИгорьК

    ИгорьК Гуру

    Обычно его "нажимает" загрузчик. Если не получится (особенности платы) - подержите его.

    Источник знаний

    Когда загрузка идет через командную строку, модуль переводить в режим загрузки надо вручную. Так что можете попробовать также как грузили, только с нажатой кнопкой.
     
  6. ZAZ-965

    ZAZ-965 Гуру

    @inemig, у вас Linux? Для пользователя есть разрешения на группы dialout и tty?
    Код (Bash):
    sudo usermod -a -G dialout your-username
    sudo usermod -a -G tty your-username
     
     
    Igor68 и ИгорьК нравится это.
  7. ivan_alexoff

    ivan_alexoff Гик

    Может и не ходють, но попользовать их для себя, иногда, можно очень даже удачно.
    В esp32 cam все кнопички нужно нажимать только ручками.
     
  8. parovoZZ

    parovoZZ Гуру

    я про это:
     
  9. inemig

    inemig Нерд

    Да, проблем нет с разрешениями - я под root'ом шью
     
  10. inemig

    inemig Нерд

    P.S. иногда рандомно вылезает такая фиговина
     

    Вложения:

  11. inemig

    inemig Нерд

    Увы, не помогло. Все то же самое.

    Пример из этой статьи норм прошился и отработал

    Прошивка:
    Код (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
    Попробовал зашить
    , но все то же самое.

    В общем, как видно, с железом все ок: проблема не в кабеле, ни в порте, ни в плате. Проблема с прошивкой или настройками подключения к последовательному порту. Идеи?
     
    Последнее редактирование: 27 апр 2024
  12. ИгорьК

    ИгорьК Гуру

    Я чет не обратил внимания, что вы из под Линукса.

    Маленьких питонистов на этом сайте я не наблюдал. Есть один товарищ, который универсально знает все, но не всегда понятно выражается. Может есть какой-то специальный сайт по вашей системе?
     
  13. inemig

    inemig Нерд

    У меня dual-boot, но обычно работаю под ubuntu. Ваш вариант попробовал под windows, но результат тот же.

    Ок, попробую спросить на форуме разработки micropython.

    Всем спасибо за участие!
     
  14. parovoZZ

    parovoZZ Гуру

    ничего страшного. В ESP-IDF это прописывается в конфиг файле.
     
  15. ИгорьК

    ИгорьК Гуру

    А ресет вы нажимаете?
    1. Жмёте и держите Д0.
    2. Нажимаете и отпускаете ресет. Д0 все время держите.
    3. Теперь запускаете загрузку и когда пойдёт- отпускаете Д0.

    Так действуете?
     
  16. inemig

    inemig Нерд

    Не, оно что под windows, что под линукс зашивается норм. esptool.py verify_flash выдает ок после прошивки.
     
    ИгорьК нравится это.
  17. ИгорьК

    ИгорьК Гуру

    Тогда вам на другой форум.

    Ну или здесь затевать свою тему.