Combining Camera Zero with an Arducam 12MP camera, a Raspberry Pi Zero WH, a PiMoRoNi trackball breakout, and an Adafruit 16-LED NeoPixel ring will result in a neat little screenless camera that can be controlled with your thumb.
- Use Raspberry Pi Imager to install Raspberry Pi OS Lite (Bookworm) on a microSD card
- Use raspi-config to:
- Enable the CSI camera interface
- Enable the I2C interface
- Set up your WiFi connection
- Connect the camera to your Raspberry Pi
Installation of the program, any software prerequisites, as well as DNG support can be completed with the following two-line install script.
wget -q https://raw.githubusercontent.com/eat-sleep-code/camera.zero/master/install-camera.sh -O ~/install-camera.sh
sudo chmod +x ~/install-camera.sh && ~/install-camera.sh
camera.zero <options>
- --rotate : Rotate the camera in 90° increments (default: 0)
- --exifFStop : Set the numeric F-Stop value in the image EXIF data (default: Not specified)
- --exifFocalLength : Set the numeric Focal Length value (mm) in the image EXIF data (default: Not specified)
- --exifFocalLengthEquivalent : Set the numeric 35mm Focal Length value (mm) in the image EXIF data (default: Not specified)
camera.zero --rotate 180 --exifFStop 2.2 --exifFocalLength 2.75 --exifFocalLengthEquivalent 16
Tip
The EXIF data shown above is completely optional but may prove useful when using captured images with third-party applications such as photogrammetry software.
- Scroll left and right to change setting selection:
- Capture Photo
- Capture Video1
- Shutter Speed
- ISO Setting
- Exposure Compensation
- Bracketing
- Scene Light: Red Light Level
- Scene Light: Green Light Level
- Scene Light: Blue Light Level
- Scene Light Natural White Level
- Exit
- Press for 5 - 9 seconds to exit the program and launch Camera Remote (if installed)
- Press for 10+ seconds to exit the program
- Scroll up and down to change the values of the current setting
- Press the trackball to trigger the shutter
If you need to control your camera via a web-based interface, please see Camera Remote.
To enable autostart of the program, execute the following command:
sudo mv /etc/service/camera.zero/run.disabled /etc/service/camera.zero/run
To disable autostart of the program, execute the following command:
sudo mv /etc/service/camera.zero/run /etc/service/camera.zero/run.disabled
If you are using an infrared (IR) camera, you will need to modify the Auto White Balance (AWB) mode at boot time.
This can be achieved by executing sudo nano /boot/config.txt
and adding the following lines.
# Camera Settings
awb_auto_is_greyworld=1
Note
While IR cameras utilize "invisible" (outside the spectrum of the human eye) light, they can not magically see in the dark. You will need to illuminate night scenes with one or more IR lights to take advantage of an Infrared Camera.
Tip
If you are using a Raspberry Pi with 1GB – or less – of memory, you may wish to increase your SWAP file to match your memory size as outlined in this third-party guide.
Important
This application was developed using a Arducam 12MP camera and a Raspberry Pi Zero WH board. This application should also work without issue with Raspberry Pi Zero 2W boards. This application should also work with Raspberry Pi 12MP (2023) and Raspberry Pi HQ (2020) cameras. Issues may arise if you are using either third party or older hardware.
Footnotes
-
Due to licensing restrictions, video is captured with an .h264 format. To convert the .h264 file into the more common .mp4 format, you can execute the following command:
ffmpeg -framerate 30 -i input.264 -c copy output.mp4
↩