I use a number of Raspberry Pi 3 Model B ARM-based Linux computers to help simplify my day-to-day life. Because I live in an urban area, I have been interested in setting up a security camera that could alert me to any issues that might arise when I’m not in the house. Most recent Raspberry Pis also include a CSI connector, meaning that it is easy to connect a high-resolution camera that can be easily accessed via python or via bash. This would also be helpful for any other computer vision setup, including OctoPrint. Since the Raspberry Pi runs OpenCV, I can use open source computer vision source code to quick and easily setup a security system. The first step is selecting a camera.

I plan on using a Raspberry Pi 3 or Raspberry Pi Zero v1.3 (with camera connector) as the base machine. However, there are a number of 3rd party cameras available. As is often the case, I was not able to find a comparison of the options available online, so today I am going to do a quick and dirty look at the following cameras:

In this post, I provide some demonstration photos for outdoor, indoor, and low-light scenarios for the modules.

The basic testing rig uses a Raspberry Pi 3 as the processor. I mounted the cameras onto a piece of cardboard so that they would have roughly the same origin and orientation. Images were captured through an SSH connection to my laptop and transferred via scp . Finally, I strapped on a portable battery (AUKEY 12000mAh powerbank) and the entire setup was portable. Since this is a headless machine, I streamed video from the Raspberry Pi to my laptop with the UV4L package to make sure that the image was sharp, especially for the Waveshare cameras, which required some focusing. Here’s a photo of the “test setup”:

Each module has different specifications and features, so it’s worthwhile to weigh the pros and cons when choosing one for your application. All of the modules are effectively plug-and-play with the CSI connector; however, the Waveshare RPi Camera IR-CUT also has a neat feature where the LED signal toggles a mechanical IR filter. This means that with some creative coding, you can use it as a day and night camera (it even includes high power IR LEDs, which I did not include in the comparison shots). However, the image quality is a bit worse and the IR filter is not terribly effective (meaning colors are washed-out in daytime shots).

All photos were taken with:

raspistill -o photo.jpg --vflip --hflip

Here are all of photos in a mosaic for quick comparison:

Image quality for the Raspberry Pi Camera and the Arducam 5MP RPi Camera were practically identical, which would be expected since they share the same sensor and lens setup. The Waveshare RPi Camera IR-CUT was disappointing and even after dialing in the focus there were still regions that were blurry when the IR filter was enabled. I really liked the field-of-view for the Waveshare RPi Camera (I) and Waveshare RPi Camera (J) and the image was quite sharp once the focus was adjusted. These would be ideal cameras for a home security solution. The Raspberry Pi v2 Camera performance was anti-climactic. Its dynamic range appears to be a bit wider, but it would often under-expose photos. This could probably be corrected by adjusting the parameters in raspistill . Bang for buck, the Arducam 5MP RPi Camera is best, but for shear field-of-view, the Waveshare RPi Camera (J) is pretty awesome.

And here are the full-resolution shots in each of the situations:

Outdoor (day)



Raspberry Pi Camera

Arducam 5MP RPi Camera

Waveshare RPi Camera IR-CUT (on)

Waveshare RPi Camera IR-CUT (off)

Waveshare RPi Camera (I)

Waveshare RPi Camera (J)

Raspberry Pi v2 Camera

Outdoor (night)



Raspberry Pi Camera

Arducam 5MP RPi Camera

Waveshare RPi Camera IR-CUT (on)

Waveshare RPi Camera IR-CUT (off)

Waveshare RPi Camera (I)

Waveshare RPi Camera (J)

Raspberry Pi v2 Camera

Indoor (day)



Raspberry Pi Camera

Arducam 5MP RPi Camera

Waveshare RPi Camera IR-CUT (on)

Waveshare RPi Camera IR-CUT (off)

Waveshare RPi Camera (I)

Waveshare RPi Camera (J)

Raspberry Pi v2 Camera

Indoor (night)



Raspberry Pi Camera

Arducam 5MP RPi Camera

Waveshare RPi Camera IR-CUT (on)

Waveshare RPi Camera IR-CUT (off)

Waveshare RPi Camera (I)

Waveshare RPi Camera (J)

Raspberry Pi v2 Camera