Skip to content

Instantly share code, notes, and snippets.

@tstellanova
Created July 7, 2020 20:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tstellanova/e977d61f6ce098eeaf13b579d6062da9 to your computer and use it in GitHub Desktop.
Save tstellanova/e977d61f6ce098eeaf13b579d6062da9 to your computer and use it in GitHub Desktop.
Learning about camera modules

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.

Fun fact

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment