Reachy Robot 1 Camera Not Detected: Diagnosing Blank lsusb and /dev/video Output
What blank lsusb output is actually telling you
lsusb lists every USB device the Linux kernel can see on the bus. If the Reachy cameras don’t appear anywhere in that output — not even as an anonymous or unrecognized device — the OS genuinely cannot find them. That’s a hard line between two very different classes of problem.
When a camera shows up in lsusb but not in /dev/video*, that’s a driver issue: the kernel sees the hardware but no UVC module has claimed it. Fixable in software. When lsusb is completely silent, no software fix will help — there’s nothing for a driver to bind to. The problem is physical, and that’s where to focus.
How the Reachy 1 camera system is wired
The Reachy 1 head carries two Raspberry Pi cameras, each paired with a different optical lens — one wide-angle for environment perception and one macro for manipulation tasks. These are CSI cameras, not standalone USB devices. They connect via ribbon cable to a compute board inside the head, which bridges them onto the USB bus so the host computer can reach them through /dev/video*.
That bridging step matters. There are two potential failure points before you even get to software: the CSI ribbon connection between each camera and the internal board, and the USB connection between that board and the host machine. Either one failing produces exactly the blank output described here.
Software checks to run first
Before touching any cables, exhaust the software side. It’s faster and safer.
Watch dmesg live while replugging
Open a terminal and run:
dmesg --follow
While that’s streaming, physically reseat the USB cable coming from the Reachy head. If the camera board enumerates at all — even briefly, even with an error — you’ll see it here. Look for lines containing usb, video, uvcvideo, or error codes like -71 (device not responding) or -32 (broken pipe). A completely silent dmesg during that replug means the USB event never reached the host at all.
Check the USB tree
lsusb -t
This shows bus hierarchy and link speeds. It won’t surface a missing device, but if you expect the camera on a specific port and see that slot empty, it confirms the absence rather than leaving you guessing.
Try loading the UVC module manually
sudo modprobe uvcvideo
lsmod | grep uvc
If the module loads cleanly but lsusb still shows no camera, the module is not the issue. The device is simply absent from the bus and no amount of driver work will change that.
Pull boot-time USB events
journalctl -b | grep -i usb
Compare this with your video-specific grep. USB errors at boot — power issues, enumeration failures — sometimes appear here when a narrower filter misses them.
Physical checks inside and around the head
If every software check comes up empty, the problem is almost certainly physical. Opening the Reachy head requires care; the Orbita ball-joint mechanism and internal cable routing are tight. Read Pollen Robotics’ documentation before proceeding, and don’t force anything.
The USB cable from head to host
Start with the simplest thing. Swap the USB cable connecting the head to the host for a known-good one. Then plug a different USB device into the same port on the host to confirm that port is live and not the culprit.
Internal CSI ribbon cables
Inside the head, each camera connects to the compute board via a CSI ribbon cable. ZIF (zero insertion force) connectors are fragile. The locking tab can partially release during shipping or reassembly, and a ribbon that looks seated may not be making full contact. Power everything off, open the locking tab, reseat the ribbon until it stops, then close the latch firmly. Test before closing anything up.
Power connector to the camera board
The internal compute board gets power from the head’s wiring harness. That connector can come partially loose and still look attached. Check it while you’re already in there.
Ruling out the host USB port
Before concluding the camera hardware is dead, plug a USB webcam into the same host port. If it shows up in lsusb and creates a /dev/video* node, the port, kernel modules, and driver stack are all working — the problem is inside the Reachy head. If an external webcam also fails to appear, the host side needs attention before anything else.
When to contact Pollen Robotics support
If reseating cables doesn’t fix it and an external camera confirms the host is healthy, the camera module or internal board may have failed outright. Pollen Robotics supports users through their community forum and handles hardware failures under warranty. When you reach out, include your dmesg --follow output from the replug test — even a completely silent log is useful, because it rules out partial enumeration and tells them the device never appeared on the bus at all.
Sources
- pollen-robotics.github.io
- docs.pollen-robotics.com
- ideasonboard.org
- tldp.org
- xitoring.com
- bbs.archlinux.org
- forums.developer.nvidia.com
- pollen-robotics.github.io
