Connecting USB Camera to Uno Q

Has anyone successfully connected a USB camera directly to the USB-C port while powering the Uno Q via the 5V pin? I also tried two different cameras using a USB adapter with an external power supply, but the camera isn’t detected. I flashed the latest image before testing the camera, so I can’t tell if the issue is with the new firmware. The lsusb command has no outputs and the v4l2-ctl --list-devicescommand shows the following output with/without the camera connected.
Qualcomm Venus video encoder (platform:qcom-venus):
/dev/video0
/dev/video1

EDIT: I am using this dongle: https://aliexpress.com/item/1005009797874527.html?gatewayAdapt=glo2jpn

Hi @yokonav ,

The USB-C port is only a Power Delivery (PD) sink, so it can’t give power to devices connected to it.

To have a USB camera working with the Uno Q, you still need to connect it to a powered USB-C hub and then connect the USB-C hub to the board.

I think there is a P-MOSFET that can switch power to the connected device over the USB-C (in USB HOST mode) when power is provided to the UNO-Q via the 5V or VIN pin.

5V Rail (5V_SYS)

5V_SYS is the board's system 5 V bus. It feeds the two step-down converters, to 3.8 V and 3.3 V via the 3.8 V stage, and provides the path for USB VBUS back-drive when the board works as a host/OTG. A P-channel MOSFET switches that back-drive path. Its enable is gated, so VBUS is not driven unless rails are valid. On headers, it appears as VBUS_USBC, and it is a 5 V bus.

I tested it and the camera gets power but no logs in dmesg or lsusb. By the way I am using a dongle with PD passthrough and it does not work either. https://aliexpress.com/item/1005009797874527.html

I guess USB Host mode switching is not working for some reason.

I have recently done this, I wanted to check out the image classification example.

I ran Photo Booth which recognised my Logitech HD webcam C270. With this I was able to take shots of objects. These then could be draged out of Photo Booth to where ever I wanted them. In my case it was onto the desktop. Then I opened up Preview and cropped the images before saving them.

Hi @Grumpy_Mike. We already have one:

Development Tools > App Lab

OK thanks for that. Sorry to bother you.

No worries. I'm glad to have the opportunity to bring it to your attention. I hope you'll be able to share some of your knowledge there.

Did you intend this for a different thread?

No.

So how does your suggestion to copy images from a computer to the UNO Q solve the problem? This thread explicitly states that the USB camera is not being detected.

Because the camera was not being detected on my system until I went through Photo Booth.

Now I get it; you meant the Cheese application.

1 Like

I have the same issue, I want to try powering the cam with 5v of the uno q.

Let me know if you have tried it and whether it works for you.

Hi all,

I have collected answers helpful for this discussion in other threads.

Please see

1 Like

:white_check_mark: SOLVED: USB Host Mode fix when powered via VIN

I found a solution for USB devices not working when Arduino UNO Q is powered via VIN pins.

The Problem:
The DWC3 USB controller defaults to "device" mode when there's no USB-C negotiation at boot.

The Solution:
A systemd service that writes to debugfs to force host mode:

echo host > /sys/kernel/debug/usb/4e00000.usb/mode

Full guide with automatic install script:
:backhand_index_pointing_right: GitHub - Psalmustrack/arduino-uno-q-usb-fix: Fix to enable USB Host mode on Arduino UNO Q when powered via VIN

Tested with:

  • Sonoff Zigbee 3.0 USB Dongle Plus
  • Home Assistant in Docker
  • Arduino UNO Q powered via VIN 12V

Hope this helps! :star:

2 Likes

Hey @psalmustrack99

Can you please share the image version you are using?

You can retrieve the numbers with the following command:

cat /etc/buildinfo

Using the latest image, which can be installed with the arduino-flasher-cli tool, the board starts automatically in host mode when powered via VIN with no device connected to the USB-C port.

Please consider that the correct command to retrieve the USB mode is

cat /sys/kernel/debug/usb/4e00000.usb/mode

because /sys/class/typec/port0/data_role always shows the same output.

Thanks!

Hi @manchuino,

Thanks for the reply! I don't have /etc/buildinfo on my system:


$ cat /etc/buildinfo cat: /etc/buildinfo: No such file or directory

$ uname -a Linux Jervis 6.16.0-geffa8626771a #1 SMP PREEMPT Wed Aug 6 14:24:25 UTC 2025 aarch64 GNU/Linux

$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 13 (trixie)" VERSION_ID="13" DEBIAN_VERSION_FULL=13.2

Looks like I have an older image (kernel built Aug 6, 2025).

Good to know the latest image fixes this automatically! I'll update my GitHub repo to recommend updating the OS first with arduino-flasher-cli.

For users who can't update immediately, the systemd workaround still works.

Thanks for the clarification!

Does it work with powering over 5V pin?

Good question! I only tested with VIN (12V), but it should work the same way with the 5V pin.

The root cause is the same: when there's no USB-C cable connected at boot, the DWC3 controller defaults to "device" mode - regardless of power source (VIN or 5V pin).

The fix forces host mode via debugfs, so it should work with any power method.

If you try it with 5V pin, let me know if it works!

1 Like

Hi all,

The 5V pin is not intended to be a power input for the Uno Q: it is only a power output. The Uno Q can be powered only from Vin (7V-24V) or via USB-C Power Delivery. When you power the Uno Q via Vin and then connect a USB-C hub:

  1. You will need to power the USB-C hub independently.
  2. It must be a PD-enabled hub, powered by a PD power adapter.

Cheers!