A feature we were excited to see in the SAMD51 microcontroller — the heart of all our “M4” boards — was the inclusion of a Parallel Capture Controller (PCC), a camera interface that can quickly (30 frames/second) pipe images straight into RAM with only negligible work from the CPU. Whenever possible, we’ve designed our M4 boards to make sure all the necessary pins are routed and accessible for this.
One camera that can interface with the Parallel Capture Controller is the OmniVision OV7670. This model is super common and affordable for hobbyists.
While not up to standards we’d demand from a current smartphone or laptop, it’s nicely balanced to the capabilities of recent 32-bit microcontrollers. A SAMD51 has enough RAM for a 320x240 pixel image. Many projects, like basic machine vision, need only a fraction of that resolution.
Now we have an Arduino library to tie these two together, with examples for the Adafruit M4 Grand Central board. But first we’ll show how to modify one of these inexpensive OV7670 carrier boards to interface with Grand Central’s pin headers…
- Adafruit Grand Central M4
- Adafruit TFT Touch Shield (resistive or capacitive) or 1.8" Color TFT shield.
- OV7670 camera module — pinout must match images above
- Two 2.2K resistors (color bands: red+red+red+gold)
- Soldering iron and related paraphernalia
- Optional: microSD card
OV7670 camera modules with the 18 pin, 2-row header can be found on Amazon, eBay, etc. Make sure the pinout matches the camera shown above…occasionally there are incompatible variants. The cameras are sometimes sold in sets of two…which is a good idea, as they’re easily damaged with the wrong voltage or rough handling as we make some modifications…