Espressif IoT Library. IoT Device Drivers, Documentations And Solutions.

Overview

Documentation Status

Espressif IoT Solution Overview

ESP-IoT-Solution contains device drivers and code frameworks for the development of IoT system, which works as extra components of ESP-IDF and much easier to start.

ESP-IoT-Solution contains following contents:

  • Device drivers for sensors, display, audio, input, actuators, etc.
  • Framework and documentation for Low power, security, storage, etc.
  • Guide for espressif open source solutions from practical application point.

Documentation Center

Versions

ESP-IoT-Solution Dependent ESP-IDF Major Change User Guide Support State
master release/v4.3 code structure change, add support for ESP32-S2 Docs online active, new feature develop
release/v1.1 v4.0.1 IDF version update, remove no longer supported code v1.1 Overview limited support
release/v1.0 v3.2.2 legacy version v1.0 Overview archived

Quick Reference

Development Board

You can choose any of the ESP32/ESP32-S series development boards to use ESP-IoT-Solution, or choose one of the boards supported in boards component to quick start.

Powered by 40 nm technology, ESP32/ESP32-S series SOC provides a robust, highly integrated platform, which helps meet the continuous demands for efficient power usage, compact design, security, high performance, and reliability.

Setup Build Environment

Setup ESP-IDF Environment

ESP-IoT-Solution is developed based on ESP-IDF functions and tools, so ESP-IDF development environment must be setup first, you can refer Setting up Development Environment for the detailed steps.

Please note that different versions of ESP-IoT-Solution may depend on different versions of ESP-IDF, please refer to Versions for details.

Get ESP-IoT-Solution

  • If select the master version, open terminal, and run the following command:

    git clone --recursive https://github.com/espressif/esp-iot-solution
    
  • If select the release/v1.1 version, open terminal, and run the following command:

    git clone -b release/v1.1 --recursive https://github.com/espressif/esp-iot-solution
    

For other versions, replace release/v1.1 with the target branch name

Create Your Project

You can use the components of ESP-IoT-Solution in the following methods:

Method 1. Add all components' PATH of ESP-IoT-Solution to the project

Add the following code directly to the project's CMakeLists.txt:

cmake_minimum_required(VERSION 3.5)

include($ENV{IOT_SOLUTION_PATH}/component.cmake)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)

project(empty-project)

Method 2. Add specified components' PATH of ESP-IoT-Solution to the project

Add the following code directly to the project's CMakeLists.txt, please add the REQUIRES components also:

set(EXTRA_COMPONENT_DIRS "${EXTRA_COMPONENT_DIRS} ${IOT_SOLUTION_PATH}/components/{component_you_choose}")

Method 3. Copy specified components of ESP-IoT-solution to the project's components directory

Please copy the REQUIRES components together.

Note: CMake based build system is recommended (default in IDF v4.0 and later). If using GNU Make, you can refer legacy build system based on GNU Make.

Set up the environment variables

Add ESP-IDF environment variables:

  • For Windows CMD terminal, run the following command:

    %userprofile%\esp\esp-idf\export.bat
    
  • For Linux or macOS terminal, run the following command:

    . $HOME/esp/esp-idf/export.sh
    

Add IOT_SOLUTION_PATH environment variables:

  • For Windows CMD terminal, run the following command:

    set IOT_SOLUTION_PATH=C:\esp\esp-iot-solution
    
  • For Linux or macOS terminal, run the following command:

    export IOT_SOLUTION_PATH=~/esp/esp-iot-solution
    

Note:

  1. Please replace the example path with your actual installation path.
  2. The environment variables set above only valid for the current terminal. please re-run the command if open new terminal.

Resources

Comments
  • Unable to use I2S LCD mode with 8-bit parallel

    Unable to use I2S LCD mode with 8-bit parallel

    I have ported over an ILI9488 display with an init sequence that's known to work on other libraries. However I'm noticing the code expects 16 bit commands/registers, and there are no provisions on the code to check for 8 bit data paths for registers. In fact it seems that the 8 bit defines are just plain wrong for the combination of displays with 8 bit commands and 8 bit bus (https://github.com/espressif/esp-iot-solution/blob/db36832d90b0077bc7fa5a455b789497f8a12911/components/i2s_devices/lcd_common/i2s_lcd_com.c#L36 is pretty telling in this regard).

    When connected via a 16 bit bus the top byte/8 lines are ignored, but as far as I can tell on 8 bits bus the ILI commands are seemingly being cancelled by NOPs when the bytes are swapped (high byte is 0x0). I unfortunately can't follow up on this suspicion right now as I don't have a logic analyser handy. I do know that the connections are right and I do know that bit banging the GPIOs as a bus works. I suspect there could be something weird with the WS clock but first I'd like to make sure that my reading of i2s_lcd_com makes any sense...

    For kicks, I also attempted to port over ILI9341 as 8-bit parallel I2S; everything is royally garbled there but I can see some thin strips with parts of what the original image is supposed to be. So I'm still hoping it's just misconfigured somehow...

    opened by classic-gentleman 26
  • No output on OLED on i2c using ESP32-Azure-IoT Kit (ESP32-WROVER-B)

    No output on OLED on i2c using ESP32-Azure-IoT Kit (ESP32-WROVER-B)

    Environment

    • Development Kit: ESP32-Azure IoT Kit
    • Kit version:
    • Module or chip used: ESP32-Wrover-B
    • IDF version: v3.2-2
    • Build System: Make
    • Compiler version: xtensa-esp32-elf-gcc (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a) 5.2.0
    • Operating System: Linux (via WSL)
    • Power Supply: USB

    Problem Description

    Hi, I have the Azure IoT board and I am having an issue with the OLED displaying the output from the example application from esp32_azure_iot_kit from the examples in the esp-iot-solution repo. I am using the sample as is without any changes as yet but I am planning to enhance this application to write to Azure IoT using the esp-azure sdk.

    Before I do this I need to ensure that the board and all sensors are working correctly. Looking at the monitor the application is working correctly and I can see the data being captured from sensors and shown in monitor. The issue is that this data it is not showing up on the OLED. Please Note before I used the example from this repo and powered the board the OLED was working and displaying data/output as it should. It was only when I started using the example so that I could develop against it (have not as yet) did I start having issues.

    I have run i2cdetect and it is not showing anything. (see screenshots I have attached)

    Expected Behavior

    Application to run and sensor data to display on OLED

    Actual Behavior

    Application runs but no sensor data is displayed on OLED

    Steps to repropduce

    1. Clone esp-iot-solution repo and make flash monitor application
    2. Review monitor to see data is coming through accurately, push button to see that application changes to different sensor data and monitor displays data
    3. Notice that no data is displayed at all on OLED.

    // It helps if you attach a picture of your setup/wiring here. Pictures attached below, as well as zip file with .elf file and sdkconfig.

    Other items if possible

    • [X ] sdkconfig file (attach the sdkconfig file from your project folder)
    • [ X] elf file in the build folder (note this may contain all the code details and symbols of your project.)
    • [ ] coredump (This provides stacks of tasks.)

    esp-iot-solution
i2cdetect
-monitor2 esp-iot-solution-wiring esp-iot-solution-monitor1

    FileforDebug.zip i2cdetect

    opened by tawalke 25
  • Support for TK043F1569 (16 bit parallel RGB mode)

    Support for TK043F1569 (16 bit parallel RGB mode)

    Problem Description

    I recently purchased 2x displays with adapters to use with the ESP32 DevKit V4 (WROVER-IE) and the Espressif LCDKit v1.1 Based on advice from EspressIf (TK043F1508 ) and from users (link below) I ordered what I thought was the correct module. https://github.com/espressif/esp-iot-solution/issues/89#issue-674226075

    I purchased the display modules from the following link: https://buy.tbfocus.com/item.php?id=560872117142#3512775208514

    Upon receiving the modules I find that the pins are (slightly different) but more important that the controller has changed from NT35510 or RM68120 to LG4572

    Expected Behavior

    Any chance to get a driver adapted to support the LG4572 when used together with the DevKit and LCDKit mentioned above?

    Photo of modules I purchased: FC_20210408_0026

    Datasheet of controller: Datasheet.hk_lg4572b_8093633.pdf

    opened by ammaree 19
  • uvc摄像头例子通讯报错

    uvc摄像头例子通讯报错

    开发板:esp32s2-Saola-v1.2 开发环境:win10 + IDFv4.4 + esp iot solution 摄像头:USB2.0 uvc免驱支持MJPEG摄像头

    我根据摄像头描述符配置了usb_camera_wifi_transfer例程的参数后烧写测试,发现在通讯之后报错“SWAP NO EOF ”。

    运行log

    I (816) UVC_STREAM: UVC Streaming Config Succeed
    I (866) UVC_STREAM: UVC Streaming Starting
    I (896) UVC_STREAM: Port=1 init succeed
    I (896) UVC_STREAM: Waitting USB Connection
    I (1146) UVC_STREAM: line 353 HCD_PORT_EVENT_CONNECTION
    I (1146) UVC_STREAM: Resetting Port
    I (1206) UVC_STREAM: Setting Port FIFO
    I (1206) UVC_STREAM: Getting Port Speed
    I (1206) UVC_STREAM: Port speed = 1
    I (1206) UVC_STREAM: USB Speed: full-speed
    I (1206) UVC_STREAM: Set Device Addr = 1
    I (1226) UVC_STREAM: Set Device Addr Done
    I (1226) UVC_STREAM: Set Device Configuration = 1
    I (1236) UVC_STREAM: Set Device Configuration Done
    I (1236) UVC_STREAM: SET_CUR Probe
    I (1236) UVC_STREAM: SET_CUR Probe Done
    I (1236) UVC_STREAM: GET_CUR Probe
    bmHint: 0001
    bFormatIndex: 2
    bFrameIndex: 5
    dwFrameInterval: 10000000
    wKeyFrameRate: 0
    wPFrameRate: 0
    wCompQuality: 0
    wCompWindowSize: 0
    wDelay: 0
    dwMaxVideoFrameSize: 614400
    dwMaxPayloadTransferSize: 800
    dwClockFrequency: 0
    bmFramingInfo: 0
    bPreferredVersion: 0
    bMinVersion: 0
    bMaxVersion: 0
    bInterfaceNumber: 0
    I (1276) UVC_STREAM: GET_CUR Probe Done, actual_num_bytes:64
    I (1276) UVC_STREAM: SET_CUR COMMIT
    I (1286) UVC_STREAM: SET_CUR COMMIT Done
    I (1286) UVC_STREAM: Set Device Interface = 1, Alt = 4
    I (1296) UVC_STREAM: Set Device Interface Done
    I (1296) UVC_STREAM: Sample processing task started
    I (1356) UVC_STREAM: Camera Start Streaming
    W (5346) UVC_STREAM: SWAP NO EOF 9412
    W (5846) UVC_STREAM: SWAP NO EOF 9536
    W (6336) UVC_STREAM: SWAP NO EOF 9656
    

    我的配置:

        uvc_config_t uvc_config = {
            .dev_speed = USB_SPEED_FULL, //固定为 USB_SPEED_FULL
            .configuration = 1, //配置描述符编号,一般为 1
            .format_index = 2, // MJPEG 对应的 bFormatIndex, bFormatIndex: 0x02 (2)
            .frame_width = 160, // MJPEG 横向像素,例如 320
            .frame_height = 120, // MJPEG 纵向像素,例如 240
            .frame_index = 5, //MJPEG 320*240 对应的 bFrameIndex, bFrameIndex: 0x05
            .frame_interval = 333333, //可选的帧率 dwFrameInterval,例如 30fps
            .interface = 1, // 可选的视频流接口 bInterfaceNumber,一般为 1
            .interface_alt = 4, // 接口选项 bAlternateSetting, bAlternateSetting: 0x04
            .isoc_ep_addr = 0x82, // 接口选项对应的 bEndpointAddress, bEndpointAddresS: 0x82 (Direction=IN EndpointID=2)
            .isoc_ep_mps = 512, // 接口选项的确定的 MPS, 例如为 512
            .xfer_buffer_size = 20*1024, //单帧图像大小,需要根据实际测试确定,320*240 一般小于 35KB
            .xfer_buffer_a = pointer_buffer_a, // 已经申请的 buffer 指针
            .xfer_buffer_b = pointer_buffer_b, // 已经申请的 buffer 指针
            .frame_buffer_size = 20*1024, //单帧图像大小,需要根据实际测试确定
            .frame_buffer = pointer_frame_buffer, // 已经申请的 buffer 指针
        };
    

    摄像头描述符,我是用win10的软件获取的,比较多 摄像头描述符.txt

    请问可能是什么问题导致的?uvc协议还在学习中不是很明白,是描述符配置的不对还是摄像头本身就不支持?或者说例程需要改动?

    opened by Gornerrrrr 15
  • USB 4G, 停留在这,不动了 ESP_USBH: Port power: ON Succeed

    USB 4G, 停留在这,不动了 ESP_USBH: Port power: ON Succeed

    ESP-ROM:esp32s3-20210327
    Build:Mar 27 2021
    rst:0x1 (POWERON),boot:0x2b (SPI_FAST_FLASH_BOOT)
    SPIWP:0xee
    mode:DIO, clock div:1
    load:0x3fce3808,len:0x17b0
    load:0x403c9700,len:0xe64
    load:0x403cc700,len:0x30e8
    entry 0x403c9980
    I (25) boot: ESP-IDF v4.4.2-dirty 2nd stage bootloader
    I (25) boot: compile time 17:49:18
    I (25) boot: chip revision: 0
    I (27) qio_mode: Enabling default flash chip QIO
    I (32) boot.esp32s3: Boot SPI Speed : 80MHz
    I (37) boot.esp32s3: SPI Mode       : QIO
    I (42) boot.esp32s3: SPI Flash Size : 4MB
    I (46) boot: Enabling RNG early entropy source...
    I (52) boot: Partition Table:
    I (55) boot: ## Label            Usage          Type ST Offset   Length
    I (63) boot:  0 nvs              WiFi data        01 02 00009000 00006000
    I (70) boot:  1 phy_init         RF data          01 01 0000f000 00001000
    I (78) boot:  2 factory          factory app      00 00 00010000 00100000
    I (85) boot:  3 storage          Unknown data     01 82 00110000 00100000
    I (93) boot: End of partition table
    I (97) esp_image: segment 0: paddr=00010020 vaddr=3c080020 size=19b2ch (105260) map
    I (121) esp_image: segment 1: paddr=00029b54 vaddr=3fc98560 size=041d0h ( 16848) load
    I (124) esp_image: segment 2: paddr=0002dd2c vaddr=40374000 size=022ech (  8940) load
    I (129) esp_image: segment 3: paddr=00030020 vaddr=42000020 size=78970h (493936) map
    I (210) esp_image: segment 4: paddr=000a8998 vaddr=403762ec size=12270h ( 74352) load
    I (225) esp_image: segment 5: paddr=000bac10 vaddr=50000000 size=00010h (    16) load
    I (233) boot: Loaded app from partition at offset 0x10000
    I (233) boot: Disabling RNG early entropy source...
    I (245) cpu_start: Pro cpu up.
    I (245) cpu_start: Starting app cpu, entry point is 0x403755b0
    0x403755b0: call_start_cpu1 at /home/lubuntu/esp/esp-idf/components/esp_system/port/cpu_start.c:160
    
    I (0) cpu_start: App cpu up.
    I (259) cpu_start: Pro cpu start user code
    I (259) cpu_start: cpu freq: 240000000
    I (259) cpu_start: Application information:
    I (262) cpu_start: Project name:     cdc_4g
    I (267) cpu_start: App version:      1cd3f3d
    I (272) cpu_start: Compile time:     Oct 30 2022 17:49:08
    I (278) cpu_start: ELF file SHA256:  d0ff3e383b210f06...
    I (284) cpu_start: ESP-IDF:          v4.4.2-dirty
    I (289) heap_init: Initializing. RAM available for dynamic allocation:
    I (296) heap_init: At 3FC9FEF0 len 00040110 (256 KiB): D/IRAM
    I (303) heap_init: At 3FCE0000 len 0000EE34 (59 KiB): STACK/DRAM
    I (309) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
    I (316) heap_init: At 600FE000 len 00002000 (8 KiB): RTCRAM
    I (322) spi_flash: detected chip: generic
    I (327) spi_flash: flash io: qio
    W (331) spi_flash: Detected size(8192k) larger than the size in the binary image header(4096k). Using the size in the binary image header.
    I (344) sleep: Configure to isolate all GPIO pins in sleep state
    I (350) sleep: Enable automatic switching of GPIO sleep configuration
    I (358) cpu_start: Starting scheduler on PRO CPU.
    I (0) cpu_start: Starting scheduler on APP CPU.
    I (3415) 4g_main: ====================================
    I (3415) 4g_main:      ESP 4G Cat.1 Wi-Fi Router
    I (3415) 4g_main: ====================================
    I (3421) gpio: GPIO[15]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
    I (3430) gpio: GPIO[17]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
    I (3440) gpio: GPIO[16]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
    W (3449) modem_board: Force reset modem
    I (3453) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
    W (3463) modem_board: Resetting modem using io=13, level=0
    W (3669) modem_board: Waiting for modem initialize ready
    I (8699) ESP_USBH: USB Port=1 init succeed, fifo strategy=0
    I (8699) ESP_USBH: usb port start succeed
    I (8699) USB_HCDC: CDC task start
    I (8699) USB_HCDC: usb driver install succeed
    I (8708) USB_HCDC: Waiting CDC Device Connection
    I (8699) ESP_USBH: USB Processing Start
    I (8717) ESP_USBH: Waiting USB Connection
    I (8722) ESP_USBH: Port power: ON Succeed
    

    ESP32S3, EC600N, Air724UG,试了,是同样停留在这。 是哪里设置有问题呢?

    opened by Leadrive 13
  • Db/access user data from callbacks

    Db/access user data from callbacks

    As of now the user does not have a way to access their own data in the callbacks. This solves that problem.

    The problem arose when i was trying to queue a button event to a queue that was owned by a class.

    opened by bennettbe 10
  • programming esp-01

    programming esp-01

    i want to use esp-prog to program esp-01

    connection are:

    esp-prog / esp-01

    TX / rx RX / tx I00 / i00 EN / RST (tryed also on CH_PD) GND / GND usb conn. / +V (external source) -- / CH-PD with pullup 10k -- / i02 to pullup 10k

    the blue light flash when i start to program

    i try with program like esp8266flasher, inside visual studio (with visualmicro),ESPFlashDownloadTool_v3.6.4

    when the green light flash, also on the esp01 flash the blue light

    noone of this can program, what is the trick?

    thanks

    opened by fastlink30 10
  • about USB CDC 4G Module 示例程序 :  HCD_PIPE_EVENT_ERROR_STALL

    about USB CDC 4G Module 示例程序 : HCD_PIPE_EVENT_ERROR_STALL

    I (24) boot: ESP-IDF v4.4-dev-2184-g166c30e7b-dirty 2nd stage bootloader I (24) boot: compile time 16:02:41 I (24) boot: chip revision: 0 I (28) qio_mode: Enabling default flash chip QIO I (33) boot.esp32s2: SPI Speed : 80MHz I (38) boot.esp32s2: SPI Mode : QIO I (43) boot.esp32s2: SPI Flash Size : 4MB I (48) boot: Enabling RNG early entropy source... I (53) boot: Partition Table: I (57) boot: ## Label Usage Type ST Offset Length I (64) boot: 0 nvs WiFi data 01 02 00009000 00006000 I (71) boot: 1 phy_init RF data 01 01 0000f000 00001000 I (79) boot: 2 factory factory app 00 00 00010000 00100000 I (86) boot: End of partition table I (91) esp_image: segment 0: paddr=00010020 vaddr=3f000020 size=1912ch (102700) map I (117) esp_image: segment 1: paddr=00029154 vaddr=3ffcbc30 size=031ech ( 12780) load I (119) esp_image: segment 2: paddr=0002c348 vaddr=40024000 size=03cd0h ( 15568) load I (126) esp_image: segment 3: paddr=00030020 vaddr=40080020 size=79844h (497732) map I (216) esp_image: segment 4: paddr=000a986c vaddr=40027cd0 size=13f5ch ( 81756) load I (235) esp_image: segment 5: paddr=000bd7d0 vaddr=50000000 size=00010h ( 16) load I (246) boot: Loaded app from partition at offset 0x10000 I (246) boot: Disabling RNG early entropy source... I (258) cache: Instruction cache : size 16KB, 4Ways, cache line size 16Byte I (258) cpu_start: Pro cpu up. I (260) cache: flash_count=1, size=16, spiram_count=0, size=0,together=0 I (268) cache: Flash wrap enabled, size = 16. I (284) cpu_start: Pro cpu start user code I (284) cpu_start: cpu freq: 240000000 I (284) cpu_start: Application information: I (289) cpu_start: Project name: cdc_4g I (294) cpu_start: App version: e7f7cda-dirty I (299) cpu_start: Compile time: Aug 3 2021 19:11:48 I (305) cpu_start: ELF file SHA256: b0b44e1ee0f79092... I (311) cpu_start: ESP-IDF: v4.4-dev-2184-g166c30e7b-dirty I (318) heap_init: Initializing. RAM available for dynamic allocation: I (326) heap_init: At 3FF9E000 len 00002000 (8 KiB): RTCRAM I (332) heap_init: At 3FFD35E8 len 00028A18 (162 KiB): DRAM I (338) heap_init: At 3FFFC000 len 00003A10 (14 KiB): DRAM I (344) spi_flash: detected chip: generic I (349) spi_flash: flash io: qio I (356) cpu_start: Starting scheduler on PRO CPU. I (614) main: ==================================== I (614) main: ESP 4G Cat.1 Wi-Fi Router I (614) main: ==================================== I (619) gpio: GPIO[15]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (628) gpio: GPIO[17]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (637) gpio: GPIO[16]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (647) USB_HCDC: Waitting 4G_moudle AT response I (652) USB_HCDC: usb driver install suceed I (657) gpio: GPIO[12]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (666) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (927) USB_HCDC: Resetting Port

    I (987) USB_HCDC: Port speed = 1

    I (987) USB_HCDC: Pipe Default Created I (987) USB_HCDC: 1. Set Device Addr = 1 I (989) USB_HCDC: Set Device Addr Done I (993) USB_HCDC: 2. Sending set_config = 1 I (998) USB_HCDC: Config is set I (1002) USB_HCDC: 3. Sending set_line state itf= 0 dtr=1 rts=0 W (1008) USB_HCDC: line 400 Pipe: default HCD_PIPE_EVENT_ERROR_STALL E (1176) esp-modem-dte: esp_modem_dte_send_cmd(192): process command timeout response timeoutm_dce: esp_modem_dce_generic_command(31): Command:AT I (1181) modem_board: Current timeouts: 1 and errors: 0 E (6187) esp-modem-dte: esp_modem_dte_send_cmd(192): process command timeout W (6187) esp_modem_dce: esp_modem_dce_generic_command(31): Command:+++ response timeout E (6692) esp-modem-dte: esp_modem_dte_send_cmd(192): process command timeout response timeoutm_dce: esp_modem_dce_generic_command(31): Command:AT E (7197) esp-modem-dte: esp_modem_dte_send_cmd(192): process command timeout response timeoutm_dce: esp_modem_dce_generic_command(31): Command:AT I (7202) modem_board: Current timeouts: 2 and errors: 0 I (7208) modem_board: Restart to connect modem........ I (7214) modem_board: modem_board_reset!

    ===================================================================== the AT command timeout, and through 'lsusb -v' get the cat.1 module info as below

    bEndpointAddress 0x01 EP 1 OUT bEndpointAddress 0x82 EP 2 IN

    Bus 003 Device 055: ID 1782:4e00 Spreadtrum Communications Inc. Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x1782 Spreadtrum Communications Inc. idProduct 0x4e00 bcdDevice 0.00 iManufacturer 1 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x00b4 bNumInterfaces 6 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 400mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 6 Ethernet Networking bFunctionProtocol 0 iFunction 3 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 6 Ethernet Networking bInterfaceProtocol 0 iInterface 5 CDC Header: bcdCDC 1.10 CDC Union: bMasterInterface 0 bSlaveInterface 1 CDC Ethernet: iMacAddress 6 (??) bmEthernetStatistics 0x00000000 wMaxSegmentSize 1514 wNumberMCFilters 0x0000 bNumberPowerFilters 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 7 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 7 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 7 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 7 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

    =====================================================================

    opened by qq0901001 9
  • Migrate ADC to NG driver in button component

    Migrate ADC to NG driver in button component

    Now, it is working with old ADC driver in IDF 5.0 and graeter, but when user want to use ADC, he cannot use NG driver with combination this component which is using old ADC driver.

    opened by espzav 8
  • usb_camera_wifi_transfer 例子无法获取 USB 摄像头图片。

    usb_camera_wifi_transfer 例子无法获取 USB 摄像头图片。

    Environment

    • Development Kit: ESP32-S2 多功能开发板
    • IDF version: v4.4-dev-3703-gddc44956bf
    • esp-iot-solution: commit 49c940ca7d5faab445b8e08b99eb68feec8fcce6 (HEAD -> usb/add_usb_solutions)
    • Build System: CMake
    • Compiler version : xtensa-esp32-elf-gcc (crosstool-NG esp-2021r2) 8.4.0
    • Operating System: Linux
    • Power Supply: USB

    Problem Description

    运行 分支 usb/add_usb_solutions 上的 usb_camera_wifi_transfer ,无报错,也无摄像头数据流返回。完整的获取参数见文件: 摄像头参数.txt

    Other

    已确保USB摄像头是完好的,已通过 lsusb -v 获取:

        VideoStreaming Interface Descriptor:
            bLength                            46
            bDescriptorType                    36
            bDescriptorSubtype                  7 (FRAME_MJPEG)
            bFrameIndex                         2
            bmCapabilities                   0x00
              Still image unsupported
            wWidth                            640
            wHeight                           480
            dwMinBitRate                 49152000
            dwMaxBitRate                147456000
            dwMaxVideoFrameBufferSize      614989
            dwDefaultFrameInterval         333333
            bFrameIntervalType                  5
            dwFrameInterval( 0)            333333
            dwFrameInterval( 1)            400000
            dwFrameInterval( 2)            500000
            dwFrameInterval( 3)            666666
            dwFrameInterval( 4)           1000000
    

    我的配置如下:

      #define DESCRIPTOR_CONFIGURATION_INDEX 1 //fix
      #define DESCRIPTOR_FORMAT_MJPEG_INDEX 1
      #define DESCRIPTOR_STREAM_INTERFACE_INDEX 1
    
      #define DESCRIPTOR_STREAM_ISOC_ENDPOINT_ADDR 0x83
    
      #define DEMO_FRAME_WIDTH 640
      #define DEMO_FRAME_HEIGHT 480
      #define DEMO_XFER_BUFFER_SIZE 614989 //Double buffer
      #define DEMO_FRAME_INDEX 2
      #define DEMO_FRAME_INTERVAL 333333
    
      /* max packet size of esp32-s2 is 1*512, bigger is not supported*/
      #define DEMO_ISOC_EP_MPS 512
      #define DEMO_ISOC_INTERFACE_ALT 1
    
        uvc_config_t uvc_config = {
            .dev_speed = USB_SPEED_FULL,
            .configuration = DESCRIPTOR_CONFIGURATION_INDEX,
            .format_index = DESCRIPTOR_FORMAT_MJPEG_INDEX,
            .frame_width = DEMO_FRAME_WIDTH,
            .frame_height = DEMO_FRAME_HEIGHT,
            .frame_index = DEMO_FRAME_INDEX,
            .frame_interval = DEMO_FRAME_INTERVAL,
            .interface = DESCRIPTOR_STREAM_INTERFACE_INDEX,
            .interface_alt = DEMO_ISOC_INTERFACE_ALT,
            .isoc_ep_addr = DESCRIPTOR_STREAM_ISOC_ENDPOINT_ADDR,
            .isoc_ep_mps = DEMO_ISOC_EP_MPS,
            .xfer_buffer_size = DEMO_XFER_BUFFER_SIZE,
            .xfer_buffer_a = xfer_buffer_a,
            .xfer_buffer_b = xfer_buffer_b,
            .frame_buffer_size = DEMO_XFER_BUFFER_SIZE,
            .frame_buffer = frame_buffer,
        };
    

    串口打印是能获取到的,并且显示成功:

    ...
    I (809) camera_httpd: Starting web server on port: '80'
    I (809) camera_httpd: Starting stream server on port: '81'
    I (819) UVC_STREAM: UVC Streaming Config Succeed
    I (869) UVC_STREAM: UVC Streaming Starting
    I (899) UVC_STREAM: Port=1 init succeed
    I (899) UVC_STREAM: Waitting USB Connection
    I (1149) UVC_STREAM: line 353 HCD_PORT_EVENT_CONNECTION
    I (1149) UVC_STREAM: Resetting Port
    I (1209) UVC_STREAM: Setting Port FIFO
    I (1209) UVC_STREAM: Getting Port Speed
    I (1209) UVC_STREAM: Port speed = 1
    I (1209) UVC_STREAM: USB Speed: full-speed
    I (1209) UVC_STREAM: Set Device Addr = 1
    I (1219) UVC_STREAM: Set Device Addr Done
    I (1219) UVC_STREAM: Set Device Configuration = 1
    I (1229) UVC_STREAM: Set Device Configuration Done
    I (1229) UVC_STREAM: SET_CUR Probe
    I (1239) UVC_STREAM: SET_CUR Probe Done
    I (1239) UVC_STREAM: GET_CUR Probe
    bmHint: 0001
    bFormatIndex: 1
    bFrameIndex: 2
    dwFrameInterval: 333333
    wKeyFrameRate: 0
    wPFrameRate: 0
    wCompQuality: 0
    wCompWindowSize: 0
    wDelay: 0
    dwMaxVideoFrameSize: 2147606528
    dwMaxPayloadTransferSize: 3154247680
    dwClockFrequency: 0
    bmFramingInfo: 0
    bPreferredVersion: 0
    bMinVersion: 0
    bMaxVersion: 0
    bInterfaceNumber: 0
    I (1269) UVC_STREAM: GET_CUR Probe Done, actual_num_bytes:64
    I (1279) UVC_STREAM: SET_CUR COMMIT
    I (1289) UVC_STREAM: SET_CUR COMMIT Done
    I (1289) UVC_STREAM: Set Device Interface = 1, Alt = 1
    I (1469) UVC_STREAM: Set Device Interface Done
    I (1469) UVC_STREAM: Sample processing task started
    I (1519) UVC_STREAM: Camera Start Streaming
    
    opened by xuhongv 8
  • unit-test-app don't work.

    unit-test-app don't work.

    I tried unit-test-app, but error occure.

    Environment

    freeRTOS version:V8.2.0
    NEWLIB version:2.2.0
    lwIP version:2-0-3-255
    ESP-IDF version:v4.0-dev-311-g70eda3d22-dirty
    

    Problem Description

    unit-test-app don't work.

    Steps to repropduce

    $ cd MY_IOT_SOLUTION_PATH/tools/unit-test-app
    $ make erase_flash
    $ make defconfig
    $ make flash IOT_TEST_ALL=1 monitor
    
    --- idf_monitor on /dev/ttyUSB0 115200 ---
    --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    Enabling RNG e?ets Jun  8 2016 00:22:57
    
    rst:0x1 (POWERON_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:0x3fff0018,len:4
    load:0x3fff001c,len:5888
    ho 0 tail 12 room 4
    load:0x40078000,len:9188
    load:0x40080000,len:6084
    0x40080000: _WindowOverflow4 at /home/robotics/esp-iot-solution/submodule/esp-idf/components/freertos/xtensa_vectors.S:1779
    
    entry 0x4008032c
    0x4008032c: _KernelExceptionVector at ??:?
    
    I (30) boot: ESP-IDF v3.1.3 2nd stage bootloader
    I (30) boot: compile time 10:12:34
    I (30) boot: Enabling RNG early entropy source...
    I (34) boot: SPI Speed      : 40MHz
    I (39) boot: SPI Mode       : DIO
    I (43) boot: SPI Flash Size : 4MB
    I (47) boot: Partition Table:
    I (50) boot: ## Label            Usage          Type ST Offset   Length
    I (58) boot:  0 nvs              WiFi data        01 02 00009000 00004000
    I (65) boot:  1 otadata          OTA data         01 00 0000d000 00002000
    I (73) boot:  2 phy_init         RF data          01 01 0000f000 00001000
    I (80) boot:  3 ota_0            OTA app          00 10 00010000 00100000
    I (87) boot:  4 ota_1            OTA app          00 11 00110000 00100000
    I (95) boot: End of partition table
    I (99) boot: No factory image, trying OTA 0
    I (104) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x269354 (2528084) map
    I (998) esp_image: segment 1: paddr=0x0027937c vaddr=0x3ffc0000 size=0x04350 ( 17232) load
    I (1005) esp_image: segment 2: paddr=0x0027d6d4 vaddr=0x40080000 size=0x00400 (  1024) load
    0x40080000: _WindowOverflow4 at /home/robotics/esp-iot-solution/submodule/esp-idf/components/freertos/xtensa_vectors.S:1779
    
    I (1006) esp_image: segment 3: paddr=0x0027dadc vaddr=0x40080400 size=0x02534 (  9524) load
    I (1018) esp_image: segment 4: paddr=0x00280018 vaddr=0x400d0018 size=0xfdc08 (1039368) map
    0x400d0018: _flash_cache_start at ??:?
    
    I (1387) esp_image: segment 5: paddr=0x0037dc28 vaddr=0x40082934 size=0x17580 ( 95616) load
    0x40082934: _xt_medint3 at /home/robotics/esp-iot-solution/submodule/esp-idf/components/freertos/xtensa_vectors.S:1323
    
    I (1427) esp_image: segment 6: paddr=0x003951b0 vaddr=0x400c0000 size=0x00064 (   100) load
    I (1427) esp_image: segment 7: paddr=0x0039521c vaddr=0x50000200 size=0x00008 (     8) load
    E (1434) esp_image: Image length 3691088 doesn't fit in partition length 1048576
    E (1442) boot: OTA app partition slot 0 is not bootable
    E (1448) esp_image: image at 0x110000 has invalid magic byte
    W (1454) esp_image: image at 0x110000 has invalid SPI mode 141
    W (1461) esp_image: image at 0x110000 has invalid SPI size 7
    E (1467) boot: OTA app partition slot 1 is not bootable
    E (1473) boot: No bootable app partitions in the partition table
    Fatal exception (0): IllegalInstruction
    epc1=0x40080354, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
    0x40080354: _UserExceptionVector at ??:?
    
    opened by nopnop2002 8
Owner
Espressif Systems
Espressif Systems
ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS.

Espressif IoT Development Framework 中文版 ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS. ESP-IDF Release

Espressif Systems 9.7k Jan 4, 2023
designed for debug Espressif's ESP series chips, include ESP32/ESP32-S2/ESP32-C3/ESP32-S3...

ESPLink 中文 ESPLink Introduce Features Pin Description esplink-tool Product Link Reference ESPLink Introduce ESPLink is a debug tool build for Expressi

wuxx 34 Nov 19, 2022
Intel Wi-Fi Drivers for macOS

An Intel Wi-Fi Adapter Kernel Extension for macOS, based on the OpenBSD Project.

OpenIntelWireless 5.9k Jan 7, 2023
Introduction to AWS IoT Core and a Post Messaging demo

IoT_Message_Box_Workshop Introduction to programming microcontrollers for IoT applications and interfacing them with AWS IoT Core This workshop was pr

Raw Matter 5 Dec 1, 2021
Open Source IoT Operating System

IoTaaP OS Open Source IoT Operating System Usage Include IoTaaP_OS.h to your project and define IoTaaP OS object Usage example #include <IoTaaP_OS.h>

IoTaaP 40 Oct 27, 2022
Iot smart weighting concept code

iot-smart-sensory-weighing Iot smart weighting concept code - Coded in C language [ Hardware assembly code ] - Module for Arduino In this project we h

Ashutosh Rana 1 Nov 17, 2021
Google IOT MQTT Sample

This is an adaptation of Zephyr's Google Cloud IoT Core MQTT sample samples/net/cloud/google_iot_mqtt for the nRF9160-DK, using modem features to offload certificate storage, TLS and JWT calculation.

Jeffrey Urban 5 Jan 27, 2022
SNIF ~ e2e TLS trust for IoT

/************************************************************************** * _________ * /````````_\ S N I F ~ e2e TLS trus

VESvault 14 Dec 25, 2022
Hyelicht is an IoT/embedded project for home decoration/automation.

Hyelicht is an IoT/embedded project for home decoration/automation. Its software allows you to do colorful painting and animations on a LED-b

Eike Hein 107 Dec 23, 2022
Run SSH on iOS 12 device.

Shelly12 Run SSH on iOS 12 device. Only worked on iPad Air 1, iOS 12.4 Working Get root Set tfp0 to hsp4 Escape Sandbox Restore/Remount RootFS Defeat

null 6 May 11, 2021
WiFi scanner with visual persistence, intended to find the idlest channel e.g. to assign to a ZigBee device

WiFiChanViz Motivation This tool was initially coded to help find the idlest 2.4GHz channel in order to connect a ZigBee device to HomeAssistant in id

tobozo 15 Oct 27, 2022
Mongoose Embedded Web Server Library - a multi-protocol embedded networking library with TCP/UDP, HTTP, WebSocket, MQTT built-in protocols, async DNS resolver, and non-blocking API.

Mongoose - Embedded Web Server / Embedded Networking Library Mongoose is a networking library for C/C++. It implements event-driven non-blocking APIs

Cesanta Software 9k Jan 1, 2023
Ole Christian Eidheim 741 Dec 27, 2022
A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio.

A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio. Created to be an easy way to make REST resources available from C++ applications.

Ole Christian Eidheim 2.4k Dec 23, 2022
C Hypertext Library - A library for writing web applications in C

CHL C Hypertext Library - A library for writing web applications in C #include <chl/chl.h> int main() { chl_set_default_headers(); chl_print_header

null 271 Nov 14, 2022
The C++ Network Library Project -- cross-platform, standards compliant networking library.

C++ Network Library Modern C++ network programming libraries. Join us on Slack: http://slack.cpp-netlib.org/ Subscribe to the mailing list: https://gr

C++ Network Library 1.9k Dec 27, 2022
Cross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library with the right balance between performance and ease of use

What Is RESTinio? RESTinio is a header-only C++14 library that gives you an embedded HTTP/Websocket server. It is based on standalone version of ASIO

Stiffstream 924 Jan 6, 2023
Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution

CppServer Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and

Ivan Shynkarenka 958 Jan 3, 2023