Skip to main content
Visitor II
June 17, 2025
Solved

STM32N6570-DK Ux_Host_VIDEO example not working with UVC cameras (e.g. Logitech C270)

  • June 17, 2025
  • 1 reply
  • 485 views

Hello,

I'm trying to run the Ux_Host_VIDEO example from STM32CubeN6 on the STM32N6570-DK board, but UVC camera streaming does not work. The USB device is detected, but no video stream starts.

 

Test Environment:

  • Board: STM32N6570-DK

  • Example: Ux_Host_VIDEO (from STM32CubeN6 package)

  • IDE: STM32CubeIDE 1.18.1

  • Camera models tested: Logitech C270

  • Connection: USB-C OTG (HS) port using USB-A adapter

 

USB host stack detects the device and logs:

 

**** USB OTG HS in HS VIDEO Host ****

USB Host Video library started.

Starting VIDEO Application
Connect your VIDEO Device

USB Video Device Inserted

PID: 0x825
VID: 0x46d
USB Video Host App...
Video Device is ready...

 

 

  • No streaming happens after that.

  • Function _ux_host_class_video_alternate_setting_locate() filters out most alternate settings.

  • The condition:

     
    if (payload_size >= max_payload_size)

    causes only a few alternate settings (e.g., >= 7) to be selected, but those don’t work either.


    Questions:

    1. Has anyone successfully tested this example with a specific UVC camera model?

    2. Why is the payload size condition (payload_size >= max_payload_size) required? Can I safely bypass it?

    3. What’s the correct way to manually select an alternate setting or override wMaxPacketSize?

    4. Is there any known issue with Logitech C270 compatibility in USBX Ux_Host_VIDEO?

    5. Some UVC alternate settings use high-bandwidth isochronous endpoints with multiple transactions (wMaxPacketSize > 1024). Are these supported in the Ux_Host_VIDEO example?

    Let me know if I should share logs or control packet dumps. Any help would be greatly appreciated.

    Thanks!

 

 

 

 

    This topic has been closed for replies.
    Best answer by FBL

    Hi @JayGani 

    First, the camera provided with the board is recommended to be used with available examples. In your case, you need to make sure your camera is compatible. 

    In USB Video Class (UVC), alternate settings correspond to different bandwidth capabilities. Some have smaller max packet sizes (lower bandwidth), others higher.
    As of now, it is implemented in examples. (It's supported in device mode we have this example function  and we support it in core MW, configurable here and descriptor here

    Without this condition, the host might pick an alternate setting with insufficient bandwidth, resulting in dropped frames or streaming failure. Needs to be tested!

    >Are these supported in the Ux_Host_VIDEO example?

    As of now, it is not supported in this example.

    1 reply

    FBLAnswer
    Technical Moderator
    July 4, 2025

    Hi @JayGani 

    First, the camera provided with the board is recommended to be used with available examples. In your case, you need to make sure your camera is compatible. 

    In USB Video Class (UVC), alternate settings correspond to different bandwidth capabilities. Some have smaller max packet sizes (lower bandwidth), others higher.
    As of now, it is implemented in examples. (It's supported in device mode we have this example function  and we support it in core MW, configurable here and descriptor here

    Without this condition, the host might pick an alternate setting with insufficient bandwidth, resulting in dropped frames or streaming failure. Needs to be tested!

    >Are these supported in the Ux_Host_VIDEO example?

    As of now, it is not supported in this example.