There are a million camera modules out there. Many support a common hardware interface:
- A set of parallel data lines that provide image (pixel) data
- A set of scan line and frame synchronization output lines (horizontal and vertical sync, and pixel clock)
- A low-speed two-wire (i2c) configuration and control interface
- A clock input. Many of these modules do not have their own hardware clock connected: instead they rely upon a microcontroller or the CPU they're attached to to provide a clock.
When you connect the i2c lines of the module to, say, a linux i2c bus and run, say, sudo i2cdetect -y 1
,
nothing will appear at the camera's i2c address! This is because the module requires an external clock input
(that is not the i2c bus).