cmio
cmio copied to clipboard
Feature request: camera connectors
Hi, thanks for such a cool project! I've been trying to create a similar project on circuits.io, but haven't gotten this far (I don't have any prior experience about pcb designing). My motivation is to have a CM3 IO board lightweight enough for model aircraft use, with stereo camera support for 3D FPV (first person flying), utilizing wifibroadcast project.
IMO, the dual camera support really makes Raspberry Pi an unique platform, but unfortunately the foundation hasn't exposed the needed pins in their 'consumer' boards (Zero/A/B). The camera connectors wouldn't add much cost, as no expensive extra components are needed, aside the connectors and maybe few passives. (And one can always build the board without them, but it would be nice to have the routing.)
I'm creating this issue just for general interest. I'll try to implement this by myself once I get familiar with Kicad.
Hi! Thanks for your interest and kind words.
I've never looked in to camera support on the Raspberry Pi. Note that the two sets of camera pins are different. One is 4-lane and one is 2-lane. So you're going to have to make sure you use camera modules that are compatible with 4-lane and 2-lane respectively.
Also note that the CSI ports on the Raspberry Pi are not openly documented. Only two camera modules are supported, and they probably only support one set of the CSI pins (the ones broken out on the Raspberry Pi). You may be able to find some light in this issue through the open source VC4 driver. Let me know how that goes.
I was very dissapointed to see that DSI has also poor documentation and nearly no support.
Let me know if you have any questions or want some help. :) Keep us updated!
I've tested the dual camera setup with the official Compute Module Development Kit, so technically everything works fine, both software and hardware wise. AFAIK both cameras use only two data lanes (cameras are interchangeable). (I've also tested streaming the stereo video over wifi to OSVR 3D glasses, the result is very impressive.)
The only challenge with DIY board is that the CSI data lanes use differential pairs, requiring impedance matching and precice tolerances, but I've no idea how critical it is in practise (from hobbyist point of view, occasionally few flipped bits are probably not so big deal).
I had no idea!
KiCad has differential matching support, so that shouldn't be too much of an issue.