CircuitPython supports capturing images from "parallel cameras" on select boards. You have to select the right module or library depending on the microcontroller family:
- ESP32 family: the built in
espcamera
module configures cameras and captures images - RP2040 family: the built in
imagcapture
captures images, and camera-specific installable libraries such asadafruit_ov5640
configure the camera.
While not up to standards we’re used to from a current smartphone or laptop, these camera modules are nicely balanced to the capabilities of recent 32-bit microcontrollers.
CircuitPython on the Grand Central M4 is prone to locking up when the camera function is used. The Arduino implementation is much more reliable on that board. We recommend using Espressif or RP2040/Pico instead.
The Arduino library for OV7670 cameras on the Grand Central M4 has its own dedicated guide.
Parts
Items needed
- Compatible microcontroller board & camera, such as
- Adafruit Memento with ESP32-S3 (if you have this product you may want to proceed to the dedicated guide)
- Raspberry Pi Pico with PiCowBell Camera
- SPI TFT module recommended with Raspberry Pi Pico
- Appropriate USB data + power cable
OV7670, OV5640, and OV2640 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, as occasionally there are incompatible variants. The cameras are sometimes sold in sets which is a good idea, as they’re easily damaged with the wrong voltage or rough handling, especially if you need to modify it for use with the Grand Central M4. This guide shows how to wire these cameras, but because there are multiple high speed digital signals, a manufactured PCB is highly recommended!
Other sensor models (such as OV3660) exist, but they require different initialization code and cannot currently be used.
When using esp32camera
, a wider range of camera boards are supported, but note that the guide author has only tried OV2640 and OV5640. A list of cameras supported by the underlying esp32camera
library can be seen on GitHub.
Text editor powered by tinymce.