# MB-001 camera research (Path B: 2x USB UVC cameras on a Pi 5, stereo to Vision Pro) Checked 2026-11-03 (Asia/Hong_Kong). Data: `MB-001-cameras.csv` (20 rows, 22 columns, one source URL per row). Only published specs are used. Anything a source does not state is written `unknown`. Prices are as shown on the page on that date. ## Ranked shortlist 1. **Keep using what you own: Quanrui USB48MP01-QFZ (CAM-01).** - It is the zero-cost prototype. It does MJPEG 4K30 and 1080p30 on USB 2.0, in a 38x38 mm board. - Cons: rolling shutter and autofocus, which are awkward on a head-tracked rig. The weight is only published on the ELP AF70 page (100 g). You need a second unit for stereo (ELP AF70 sells for USD 116.99). 2. **Best ready-made stereo: ELP-USB3D1080P02-V83 (CAM-05), USD 78.23.** - Two JX-F35 sensors in one board (80x16.5 mm, about 45 g). It sends a single synced 3840x1080 side-by-side MJPEG stream at 60 fps, so you get one USB device and no pairing work. - Cons: the baseline is not published and the sensors are modest. The GXIVISION LSM36156 (CAM-13, about USD 63, 30 fps, adjustable baseline) is the cheaper alternative, but its specs come from a seller listing only. 3. **Best low-latency / global shutter: Arducam B0385 OV9782 (CAM-10), USD 59.99.** - Colour global shutter, MJPG 100 fps at 1280x800, and a hardware trigger input (pins F and G) to sync two units. It is the best DIY synced colour pair, and global shutter suits head motion. - Cons: 1280x800 only, patchy stock (Amazon says unavailable), and an IR-filter conflict between the datasheet and one listing. - Colour 1080p60 alternative: ELP-USBFHD08S-L60 (CAM-02, OV4689, about 30 g, USD 65.10). It is rolling shutter and there is no sync. 4. **Best budget with on-camera H.264 (offloads the Pi): ELP-USBFHD06H-L100 (CAM-06), USD 54.60.** - IMX322, H.264 or MJPEG at 1080p30, about 30 g. The Pi 5 has no H.264 encoder, so camera-side H.264 is a real saving. It is 30 fps and unsynced, so use two units with software pairing. **Benchmark / not recommended for weight:** - ZED Mini (CAM-20, USD 399): 63 mm baseline, 60 g, USB 3, 2x1080p30 side-by-side. The encode is on the host, so the Pi 5 must software-encode. - Brio 4K (CAM-17, USD 169.99): about 65 g plus a separate 69 g clip, so it is heavy for a servo payload. - C920 (CAM-18): 162 g. - Not suitable for colour AVP video: mono OV9281 modules (CAM-03, 04, 09). They are great for tracking, not for viewing. ## Brio weight (you quoted ~63 g) - The Logitech datasheet and the UK product page say **65 g** (without cable). The Logitech support spec page says **85 g**. - The clip is 69.2 g separately. - I found no source that says 63 g. The CSV records 65 g, with the 85 g conflict noted. ## Key caveats - **Pi 5 Wi-Fi is 802.11ac (Wi-Fi 5) only.** Plan for Ethernet or a USB Wi-Fi 6 adapter for low-latency stereo. - **USB bandwidth:** USB 2.0 cameras need MJPEG (or camera H.264) at 1080p or above. Two cameras on the Pi 5 should go on separate controllers (it has 2x USB 3.0 and 2x USB 2.0). Untested by us. - **Software encode:** the Pi 5 has no hardware video encoder. MJPEG passthrough from the camera is the lowest-CPU path. A host encode of 3840x1080 is heavy. - **Latency is not published by any vendor.** The CSV gives only a derived frame interval (e.g. 16.7 ms at 60 fps). - **Baseline:** dual-sensor modules do not publish their baseline. The AVP range is 51-75 mm IPD, and the ZED Mini is 63 mm. - **Rolling shutter** distorts under fast head motion. Only the global-shutter parts (OV9281, OV9782, AR0234) avoid it. - **Autofocus** hunting is a risk on a moving rig. M12 lenses are manual focus. - **Weights:** most Chinese module vendors publish none (CSV `unknown`). Do not size servos from the "~30 g" figures without weighing the unit with its cable. - **Seller-listing-only specs:** the GXIVISION rows. One buyer review says the SC200AI "1080p60" is really 30 fps. - **Arducam B0495** (AR0234 USB3) is YUY2-only, so the host must encode it. It is backordered, at CAD 221.41. - **Logitech H.264:** newer C920/C922/Brio units dropped on-camera H.264. Check with `v4l2-ctl --list-formats`. ## Unknowns to test 1. `v4l2-ctl -d /dev/videoN --list-formats-ext` and `v4l2-ctl --all` on each candidate, for real modes, MJPEG/H.264 availability and controls. 2. Glass-to-glass latency (LED or stopwatch capture) per camera at the target mode, then through Pi, Wi-Fi and AVP. 3. Two-camera USB bandwidth and CPU on the Pi 5 at 1080p30 and 1080p60. 4. USB48MP01-QFZ: autofocus behaviour, fixed focus options, actual weight, 1080p60 availability. 5. Arducam B0385: trigger-sync test with two units on Linux, plus the IR-filter conflict. 6. Real fps of the GXIVISION SC200AI, and the baseline of the ELP and GXIVISION dual modules (measure). ## Sources and gaps - Sources: vendor and retailer pages (ELP via webcamerausb.com and svpro.cc, rervision.cn, Arducam docs and datasheet PDFs, RobotShop, Antratek, eBay HK, Logitech, Stereolabs). Every row has its URL. - arducam.com, Amazon, AliExpress and hdusbcameras.com blocked the fetcher. For those, the data came from other retailers, datasheets or search-index copies, and the CSV says so. - Link check: no 404s remain. The 403/500 responses from curl are bot-blocks on pages that opened fine in the fetch tool (eBay HK, RobotShop, rervision.cn). - No Insta360 rows (it cannot act as a webcam). Nothing was bought, posted or sent.