Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

usb_webcam example no longer working because no versions of espressif/tinyusb match >=0.15.0~10 (AEGHB-730) #383

Closed
3 tasks done
ohault opened this issue Jul 8, 2024 · 14 comments

Comments

@ohault
Copy link

ohault commented Jul 8, 2024

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

esp-idf-v5.2.2-2-v5.2

Espressif SoC revision.

ESP32-S3

Operating System used.

Windows

How did you build your project?

Command line with idf.py

If you are using Windows, please specify command line type.

CMD

Development Kit.

ESP32-S3-CAM WROOM

Steps to reproduce.

c:>git clone https://github.com/espressif/esp-iot-solution.git
c:>cd esp-iot-solution\usb\device\usb_webcam
c:\esp-iot-solution\examples\usb\device\usb_webcam>idf.py set-target esp32s3

Build Logs.

c:\>git clone https://github.com/espressif/esp-iot-solution.git
Cloning into 'esp-iot-solution'...
remote: Enumerating objects: 26311, done.
remote: Counting objects: 100% (26311/26311), done.
remote: Compressing objects: 100% (9820/9820), done.
remote: Total 26311 (delta 15251), reused 26090 (delta 15184), pack-reused 0
Receiving objects: 100% (26311/26311), 108.92 MiB | 6.38 MiB/s, done.
Resolving deltas: 100% (15251/15251), done.
Updating files: 100% (2750/2750), done.

c:\>cd esp-iot-solution\usb\device\usb_webcam

c:\esp-iot-solution\examples\usb\device\usb_webcam>idf.py set-target esp32s3
Adding "set-target"'s dependency "fullclean" to list of commands with default set of options.
Executing action: fullclean
Build directory 'C:\esp-iot-solution\examples\usb\device\usb_webcam\build' not found. Nothing to clean.
Executing action: set-target
Set Target to: esp32s3, new sdkconfig will be created.
Running cmake in directory C:\esp-iot-solution\examples\usb\device\usb_webcam\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DPYTHON=C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe -DESP_PLATFORM=1 -DIDF_TARGET=esp32s3 -DCCACHE_ENABLE=1 C:\esp-iot-solution\examples\usb\device\usb_webcam"...
-- Found Git: C:/Espressif/tools/idf-git/2.44.0/cmd/git.exe (found version "2.44.0.windows.1")
-- sdkconfig not exist
EYES_SHOW_TARGET is set to esp32s3
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32s3
Dependencies lock doesn't exist, solving dependencies.
Using component placed at C:\esp-iot-solution\examples\usb\device\usb_webcam\eyes_show for dependency eyes_show(*), specified in C:/esp-iot-solution/examples/usb/device/usb_webcam/main\idf_component.yml
Using component placed at C:\esp-iot-solution\components\usb\usb_device_uvc for dependency usb_device_uvc(1.1.*), specified in C:/esp-iot-solution/examples/usb/device/usb_webcam/main\idf_component.yml
...................Using component placed at C:\esp-iot-solution\examples\usb\device\usb_webcam\eyes_show for dependency eyes_show(*), specified in C:/esp-iot-solution/examples/usb/device/usb_webcam/main\idf_component.yml
Using component placed at C:\esp-iot-solution\components\usb\usb_device_uvc for dependency usb_device_uvc(1.1.*), specified in C:/esp-iot-solution/examples/usb/device/usb_webcam/main\idf_component.yml
CMake Error at C:/Espressif/frameworks/esp-idf-v5.2.2-2/tools/cmake/build.cmake:544 (message):
  ERROR: Because no versions of usb_device_uvc match >1.1.0,<1.2.0

   and usb_device_uvc (1.1.0) depends on espressif/tinyusb (>=0.15.0~10), usb_device_uvc (>=1.1.0,<1.2.0) requires espressif/tinyusb (>=0.15.0~10).

  So, because no versions of espressif/tinyusb match >=0.15.0~10

   and project depends on usb_device_uvc (1.1.*), version solving failed.

Call Stack (most recent call first):
  C:/Espressif/frameworks/esp-idf-v5.2.2-2/tools/cmake/project.cmake:605 (idf_build_process)
  CMakeLists.txt:25 (project)


...................-- Configuring incomplete, errors occurred!
See also "C:/esp-iot-solution/examples/usb/device/usb_webcam/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1, output of the command is in the C:\esp-iot-solution\examples\usb\device\usb_webcam\build\log\idf_py_stderr_output_576 and C:\esp-iot-solution\examples\usb\device\usb_webcam\build\log\idf_py_stdout_output_576

c:\esp-iot-solution\examples\usb\device\usb_webcam>

More Information.

No response

@github-actions github-actions bot changed the title usb_webcam example no longer working because no versions of espressif/tinyusb match >=0.15.0~10 usb_webcam example no longer working because no versions of espressif/tinyusb match >=0.15.0~10 (AEGHB-730) Jul 8, 2024
@leeebo
Copy link
Collaborator

leeebo commented Jul 9, 2024

  ERROR: Because no versions of usb_device_uvc match >1.1.0,<1.2.0

   and usb_device_uvc (1.1.0) depends on espressif/tinyusb (>=0.15.0~10), usb_device_uvc (>=1.1.0,<1.2.0) requires espressif/tinyusb (>=0.15.0~10).

  So, because no versions of espressif/tinyusb match >=0.15.0~10

Seems like IDF component manager parse components' version failed like #352, we did have https://components.espressif.com/components/espressif/tinyusb/versions/0.15.0~10.

@ohault Which version of idf-component-manager are you using? please run pip show idf-component-manager after you export IDF environment.

@leeebo
Copy link
Collaborator

leeebo commented Jul 9, 2024

I tested your case also using IDF v5.2.2 with idf-component-manager v1.5.3 , it works as normal. 🤔

@ohault
Copy link
Author

ohault commented Jul 9, 2024

Hi @leeebo,

C:\Espressif\frameworks\esp-idf-v5.2.2-2>pip show idf-component-manager
Name: idf-component-manager
Version: 1.5.3
Summary: The component manager for ESP-IDF
Home-page: https://github.com/espressif/idf-component-manager
Author: Sergei Silnov
Author-email: sergei.silnov@espressif.com
License: Apache License 2.0
Location: C:\Espressif\python_env\idf5.2_py3.11_env\Lib\site-packages
Requires: cachecontrol, click, colorama, contextlib2, packaging, pyparsing, pyyaml, requests, requests-file, requests-toolbelt, schema, six, tqdm, urllib3
Required-by:

This has been done on Microsoft Windows version 10.0.19045.4598

@leeebo
Copy link
Collaborator

leeebo commented Jul 9, 2024

@ohault Thanks for your report, I did reproduce the issue on Windows OS with the same code and idf-component-manager v1.5.3. The IDF component manager team is working on the fix. cc @hfudev

The current workaround is :

  1. (in IDF environment) upgrade idf-component-manager to v2.0 using pip install idf-component-manager==2.0.0.dev1
  2. modify the espidf.constraints.v5.2 file in your tools install path, change idf-component-manager~=1.2 to idf-component-manager>=1.2
  3. delete the build folder then retry

@ohault
Copy link
Author

ohault commented Jul 9, 2024

Hi @leeebo, thank you. I can confirm that the proposed workaround is indeed working in the while of the fix for v1.5.3 release

@ohault
Copy link
Author

ohault commented Jul 10, 2024

Now, I have this compile error with usb_webcam.

C:/esp-iot-solution/examples/usb/device/usb_webcam/main/usb_webcam_main.c:21:10: fatal error: bsp/esp-bsp.h: No such file or directory
   21 | #include "bsp/esp-bsp.h"
      |          ^~~~~~~~~~~~~~~
compilation terminated.

Full log:

c:\esp-iot-solution\examples\usb\device\usb_webcam>idf.py build
Executing action: all (aliases: build)
Running ninja in directory C:\esp-iot-solution\examples\usb\device\usb_webcam\build
Executing "ninja all"...
[28/1016] Generating ../../partition_table/partition-table.bin
Partition table binary generated. Contents:
*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,24K,
factory,app,factory,0x10000,2M,
*******************************************************************************
[993/1016] Performing configure step for 'bootloader'
-- Found Git: C:/Espressif/tools/idf-git/2.44.0/cmd/git.exe (found version "2.44.0.windows.1")
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32s3
-- Project sdkconfig file C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig
-- Compiler supported targets: xtensa-esp-elf
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of time_t
-- Check size of time_t - done
-- Adding linker script C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/soc/esp32s3/ld/esp32s3.peripherals.ld
-- Bootloader project name: "bootloader" version: 1
-- Adding linker script C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_rom/esp32s3/ld/esp32s3.rom.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/bootloader/subproject/main/ld/esp32s3/bootloader.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/bootloader/subproject/main/ld/esp32s3/bootloader.rom.ld
-- Components: boot_hooks bootloader bootloader_support efuse esp_app_format esp_bootloader_format esp_common esp_hw_support esp_rom esp_system esptool_py freertos hal log main micro-ecc newlib partition_table soc spi_flash xtensa
-- Component paths: C:/esp-iot-solution/examples/usb/device/usb_webcam/bootloader_components/boot_hooks C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/bootloader C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/bootloader_support C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/efuse C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_app_format C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_bootloader_format C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_common C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_hw_support C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_rom C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_system C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esptool_py C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/hal C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/log C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/bootloader/subproject/main C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/bootloader/subproject/components/micro-ecc C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/newlib C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/partition_table C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/soc C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/spi_flash C:/Espressif/frameworks/esp-idf-v5.2.2-2/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: C:/esp-iot-solution/examples/usb/device/usb_webcam/build/bootloader
[998/1016] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/usb_webcam_main.c.obj
FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/usb_webcam_main.c.obj
ccache C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20230928\xtensa-esp-elf\bin\xtensa-esp32s3-elf-gcc.exe -DESP_PLATFORM -DIDF_VER=\"v5.2.2\" -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -DUNITY_INCLUDE_CONFIG_H -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -IC:/esp-iot-solution/examples/usb/device/usb_webcam/build/config -IC:/esp-iot-solution/examples/usb/device/usb_webcam/main -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/newlib/platform_include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos/config/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos/config/include/freertos -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos/config/xtensa/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos/FreeRTOS-Kernel/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos/esp_additions/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_hw_support/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_hw_support/include/soc -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_hw_support/include/soc/esp32s3 -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_hw_support/port/esp32s3/. -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/heap/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/log/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/soc/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/soc/esp32s3 -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/soc/esp32s3/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/hal/platform_port/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/hal/esp32s3/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/hal/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_rom/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_rom/include/esp32s3 -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_rom/esp32s3 -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_common/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_system/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_system/port/soc -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_system/port/include/private -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/xtensa/esp32s3/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/xtensa/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/xtensa/deprecated_include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/include/apps -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/include/apps/sntp -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/lwip/src/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/port/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/port/freertos/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/port/esp32xx/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/port/esp32xx/include/arch -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/lwip/port/esp32xx/include/sys -IC:/esp-iot-solution/examples/usb/device/usb_webcam/managed_components/espressif__esp32-camera/driver/include -IC:/esp-iot-solution/examples/usb/device/usb_webcam/managed_components/espressif__esp32-camera/conversions/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/deprecated -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/analog_comparator/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/dac/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/gpio/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/gptimer/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/i2c/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/i2s/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/ledc/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/mcpwm/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/parlio/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/pcnt/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/rmt/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/sdio_slave/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/sdmmc/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/sigma_delta/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/spi/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/temperature_sensor/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/touch_sensor/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/twai/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/uart/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/usb_serial_jtag/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/driver/touch_sensor/esp32s3/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_pm/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_ringbuf/include -IC:/esp-iot-solution/components/usb/usb_device_uvc/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/usb/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_timer/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/efuse/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/efuse/esp32s3/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_mm/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/mbedtls/port/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/mbedtls/mbedtls/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/mbedtls/mbedtls/library -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/mbedtls/esp_crt_bundle/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/mbedtls/mbedtls/3rdparty/everest/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/mbedtls/mbedtls/3rdparty/p256-m -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/mbedtls/mbedtls/3rdparty/p256-m/p256-m -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_bootloader_format/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_app_format/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/bootloader_support/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/bootloader_support/bootloader_flash/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_partition/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/app_update/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/spi_flash/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/pthread/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/app_trace/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_event/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/nvs_flash/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_phy/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_phy/esp32s3/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/vfs/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_netif/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/wpa_supplicant/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/wpa_supplicant/port/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/wpa_supplicant/esp_supplicant/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_coex/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_wifi/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_wifi/wifi_apps/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/unity/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/unity/unity/src -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/cmock/CMock/src -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/console -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/http_parser -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp-tls -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp-tls/esp-tls-crypto -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_adc/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_adc/interface -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_adc/esp32s3/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_adc/deprecated/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_eth/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_gdbstub/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_hid/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/tcp_transport/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_http_client/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_http_server/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_https_ota/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_psram/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_lcd/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_lcd/interface -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/protobuf-c/protobuf-c -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/protocomm/include/common -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/protocomm/include/security -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/protocomm/include/transports -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/protocomm/include/crypto/srp6a -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/protocomm/proto-c -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/esp_local_ctrl/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/espcoredump/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/espcoredump/include/port/xtensa -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/wear_levelling/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/sdmmc/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/fatfs/diskio -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/fatfs/src -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/fatfs/vfs -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/idf_test/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/idf_test/include/esp32s3 -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/ieee802154/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/json/cJSON -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/mqtt/esp-mqtt/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/nvs_sec_provider/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/perfmon/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/spiffs/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/touch_element/include -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/wifi_provisioning/include -IC:/esp-iot-solution/examples/usb/device/usb_webcam/managed_components/espressif__tinyusb/src -IC:/Espressif/frameworks/esp-idf-v5.2.2-2/components/freertos/FreeRTOS-Kernel/include/freertos -IC:/esp-iot-solution/components/usb/usb_device_uvc/tusb -mlongcalls  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -fdiagnostics-color=always -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -O2 -fmacro-prefix-map=C:/esp-iot-solution/examples/usb/device/usb_webcam=. -fmacro-prefix-map=C:/Espressif/frameworks/esp-idf-v5.2.2-2=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -DUSB_DEVICE_UVC_VER_MAJOR=1 -DUSB_DEVICE_UVC_VER_MINOR=1 -DUSB_DEVICE_UVC_VER_PATCH=0 -DCFG_TUSB_MCU=OPT_MCU_ESP32S3 -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/usb_webcam_main.c.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\usb_webcam_main.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/usb_webcam_main.c.obj -c C:/esp-iot-solution/examples/usb/device/usb_webcam/main/usb_webcam_main.c
C:/esp-iot-solution/examples/usb/device/usb_webcam/main/usb_webcam_main.c:21:10: fatal error: bsp/esp-bsp.h: No such file or directory
   21 | #include "bsp/esp-bsp.h"
      |          ^~~~~~~~~~~~~~~
compilation terminated.
[113/114] Generating binary image from built executable
esptool.py v4.7.0
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
Generated C:/esp-iot-solution/examples/usb/device/usb_webcam/build/bootloader/bootloader.bin
[114/114] cmd.exe /C "cd /D C:\esp-iot-solution\examples\usb\device\usb_webcam\build\bootloader\esp-idf\...x8000 bootloader 0x0 C:/esp-iot-solution/examples/usb/device/usb_webcam/build/bootloader/bootloader.bin
Bootloader binary size 0x5840 bytes. 0x27c0 bytes (31%) free.
ninja: build stopped: subcommand failed.
ninja failed with exit code 1, output of the command is in the C:\esp-iot-solution\examples\usb\device\usb_webcam\build\log\idf_py_stderr_output_17508 and C:\esp-iot-solution\examples\usb\device\usb_webcam\build\log\idf_py_stdout_output_17508

c:\esp-iot-solution\examples\usb\device\usb_webcam>idf.py menuconfig
Executing action: menuconfig
Running ninja in directory C:\esp-iot-solution\examples\usb\device\usb_webcam\build
Executing "ninja menuconfig"...
[0/1] cmd.exe /C "cd /D C:\esp-iot-solution\examples\usb\device\usb_webcam\build && C:\Espressif\python_...env IDF_INIT_VERSION=5.2.2 --output config C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig
Loading defaults file C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig.defaults...
C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig.defaults:14 CONFIG_ESP32S3_SPIRAM_SUPPORT was replaced with CONFIG_SPIRAM
C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig.defaults:16 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 was replaced with CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240
C:/Espressif/frameworks/esp-idf-v5.2.2-2/Kconfig:15: warning: IDF_ENV_FPGA has 'option env="IDF_ENV_FPGA"', but the environment variable IDF_ENV_FPGA is not set
Loaded configuration 'C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig'
No changes to save (for 'C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig')
Loading defaults file C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig.defaults...
C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig.defaults:14 CONFIG_ESP32S3_SPIRAM_SUPPORT was replaced with CONFIG_SPIRAM
C:/esp-iot-solution/examples/usb/device/usb_webcam/sdkconfig.defaults:16 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 was replaced with CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240

@ohault
Copy link
Author

ohault commented Jul 12, 2024

Hi @leeebo,

do you confirm it is a bug or is it a missing dependencies I should have installed manually ?

Is there a possible workaround ?

@lijunru-hub
Copy link
Contributor

Hi @ohault
Before compiling, did you modify any configuration items in the menuconfig? Can you show me which components are in your management_components directory?

@ohault
Copy link
Author

ohault commented Jul 12, 2024

Hi @ohault Before compiling, did you modify any configuration items in the menuconfig? Can you show me which components are in your management_components directory?

Hi @lijunru-hub,

I didn't change menuconfig.
I can see the following three subdirectories in c:\esp-iot-solution\examples\usb\device\usb_webcam\managed_components

  • espressif__cmake_utilities
  • espressif__esp32-camera
  • espressif__tinyusb

@lijunru-hub
Copy link
Contributor

This is where the problem lies: the package manager did not retrieve the esp32_s3_eye and eyes_show packages. For some reason, the following lines in the idf_component.yml did not take effect. I think you can delete them.

    rules:
      - if: "target == $EYES_SHOW_TARGET"

Is your development board an esp32-s3-eye? If not, you can set the macro CAMERA_MODULE to CAMERA_MODULE_CUSTOM or another appropriate value.

@ohault
Copy link
Author

ohault commented Jul 12, 2024

@lijunru-hub,

I'm using an ESP32 S3 CAM ESP32 S3 WROOM 1 N16R8 Development Board with OV5640 Camera.

This module is working from ESP Launchpad for esp-iot-solution when I use the webcam application using ESP chipset type : esp32s3-esp32s3_eye

I need some help because if I remove only

rules:
      - if: "target == $EYES_SHOW_TARGET"

I get the following error

nts/usb/usb_device_uvc/tusb -mlongcalls  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -fdiagnostics-color=always -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -O2 -fmacro-prefix-map=C:/esp-iot-solution/examples/usb/device/usb_webcam=. -fmacro-prefix-map=C:/Espressif/frameworks/esp-idf-v5.2.2-2=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -DBUTTON_VER_MAJOR=2 -DBUTTON_VER_MINOR=5 -DBUTTON_VER_PATCH=6 -DUSB_DEVICE_UVC_VER_MAJOR=1 -DUSB_DEVICE_UVC_VER_MINOR=1 -DUSB_DEVICE_UVC_VER_PATCH=0 -DCFG_TUSB_MCU=OPT_MCU_ESP32S3 -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/usb_webcam_main.c.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\usb_webcam_main.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/usb_webcam_main.c.obj -c C:/esp-iot-solution/examples/usb/device/usb_webcam/main/usb_webcam_main.c
C:/esp-iot-solution/examples/usb/device/usb_webcam/main/usb_webcam_main.c:22:10: fatal error: show_eyes.h: No such file or directory
   22 | #include "show_eyes.h"
      |          ^~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
BUG: component_requirements.py: cannot match original component filename for source component main
ninja failed with exit code 1, output of the command is in the C:\esp-iot-solution\examples\usb\device\usb_webcam\build\log\idf_py_stderr_output_7164 and C:\esp-iot-solution\examples\usb\device\usb_webcam\build\log\idf_py_stdout_output_7164

With the same board, I can run without any problem this sample also using the camera with the default (ESP-S3-EYE DevKit) - https://github.com/espressif/esp-iot-solution/tree/master/examples/camera/video_stream_server

I hope this usb_webcam example app would be soon fixed and aligned with the same level of camera support than /examples/camera/video_stream_server.

In the while, how should I configure the usb_webcam example app to build it without errors (e.g. by removing the support of the LCD screen animation) ?

@lijunru-hub
Copy link
Contributor

Just try set CAMERA_MODULE to CAMERA_MODULE_CUSTOM and set your camera IO.

@ohault
Copy link
Author

ohault commented Jul 17, 2024

Hi @lijunru-hub, with this last command applied, it is eventually working. Thank you.

To summarize :

Actions/suggestions:

Expected behavior:

- git clone https://github.com/espressif/esp-iot-solution
- cd esp-iot-solution/examples/usb/device/usb_webcam
- idf.py set-target esp32s3
- idf.py build
- idf.py flash

without any errors.

@hfudev
Copy link
Member

hfudev commented Sep 3, 2024

idf-component-manager 2.0 has released for a while. I would recommend close this issue. @leeebo

@leeebo leeebo closed this as completed Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants