Product and Purchase
- Product model: HD Wide-Angle Camera (two units) with So101 Arm Advanced kit
- SKU or kit name: (1) GC0308 sensor, 300K pixel wide-angle camera (2) GC2083 sensor, 2MP wide-angle camera
- Purchase channel: HiWonder
- Controller board: laptop (ASUS ROG), not a Hiwonder controller board
Software and Environment
- Operating system: Ubuntu 22.04 (tried on windows 11 as well similar issue)
- Connection method: USB — tested both direct laptop USB port and via USB hub
- Software version: ffplay/FFmpeg 4.4.2-0ubuntu0.22.04.1, OpenCV (Python 3.12), LeRobot
lerobot-find-camerasutility - Firmware version: Unknown — no firmware update tool provided/found for either camera
- Image version: N/A (standard Ubuntu desktop, not a Hiwonder OS image)
- Tutorial step: Hiwonder’s LeRobot SO-101 setup documentation, camera verification step (
lerobot-find-cameras opencv)
Issue Description
- What did you expect to happen? Camera should stream a clear, correctly colored live image, as advertised (“plug-and-play, no drivers needed”).
- What actually happened? Stream opens successfully and is visibly live (responds in real time to motion and lighting changes), but displays as a fine grid/moiré-like corrupted pattern instead of a coherent image. A real light gradient/shadow is visible underneath the distortion, confirming the sensor is capturing real data that’s being scrambled somewhere before or during output.
- Error message or logs: None.
ffplay,v4l2-ctl, andlerobot-find-camerasall report successful format negotiation (YUYV and MJPEG both) and clean stream opens — no decode errors, no connection errors. The corruption is in the image content itself, not a failure state.
Reproduction Steps
- Connect either camera (GC0308 or GC2083) via USB to a Linux (Ubuntu 22.04) machine
- Run
lerobot-find-cameras opencv, orffplay -f v4l2 -input_format yuyv422 -video_size 640x480 -framerate 30 /dev/videoN - Observe corrupted grid-pattern output despite successful stream negotiation and live responsiveness
Evidence
- Photos or short video: Available on request (screenshots of corrupted output captured)
- Wiring photo: N/A — standard USB connection with 4 pin from laptop to camera
- Screenshot of result attached
What You Have Tried
- Ruled out application-level bug — identical corruption across
ffplay, raw Pythonv4l2/OpenCV, andlerobot-find-cameras opencv - Ruled out hub/power/EMI — same corruption direct-plugged and via hub (a separate, confirmed hub EMI/disconnect issue was fixed independently via
uvcvideo quirks=128; image corruption persisted regardless) - Ruled out byte-order/format mislabeling — tested YUYV and UYVY interpretations, and all 4 Bayer demosaic orderings (BGGR/RGGB/GBRG/GRBG); corruption pattern was visually identical across all of them
- Ruled out codec-specific bug — GC2083 shows identical corruption in both raw YUYV and MJPEG; MJPEG decoded with zero errors from ffmpeg, meaning the JPEG bitstream itself is structurally valid but contains scrambled pixel data at the source
- Ruled out system-wide/laptop issue — laptop’s built-in webcam (separate UVC device) streams perfectly clean on the same machine, same session, same drivers
Urgency
- High priority — this is blocking active robot vision/data-collection setup (LeRobot SO-101 arm project); both cameras affected identically, no current workaround available.
