Which camera to choose for the Raspberry Pi 3 or Pi Zero W

All models of Raspberry Pi (including Raspberry Pi 3 and Raspberry Pi Zero W) have a CSI connector for connecting a digital camera. The foundation markets a color camera v2.1 equipped with an 8MP sensor and a sensitive camera in low light (v2.1 NoIR). You will also find cameras compatible with Led lighting cheaper at Asian manufacturers.

Original camera v2.1 or Night Vision (NoIR)?

The NoIR designation means No Infrared, ie the CMOS sensor is not equipped with the infrared filter. A more sensitive sensor with very low luminosity is obtained.

Be careful, this is not a night vision camera, nor a thermal camera! It takes a little Led lighting so that the camera can capture images. 2x Led (3W) are enough to see on a tens of meters. For a greater distance or better image, there is also a version with 4x Led. Read this article to learn more.

Original version Raspberry Pi or compatible asian camera?

Version 2.1 costs between $25 to $35 (Night Vision – NoIR – version). There are compatible cameras of good quality for less than $15. The official camera is equipped with a CMOS sensor Sony IMX219. Compatible cameras generally use a 5MP CMOS OmniVision OV5647 sensor. The OmniVision OV5647 sensor provides lower image quality. However, it is largely sufficient for night-vision video surveillance applications which do not require very high resolution.

Which camera for the Raspberry Pi 3?

The foundation offers two cameras. The first one designated v2.1 is a color camera based on the Sony CMOS CMOS sensor with a resolution of 8MP (3280 × 2464 pixels). CMOS (Complementary Metal-Oxide-Semiconductor) technology delivers excellent image quality even when the brightness is very high. Unlike the CCD (Charge Coupled Device), each pixel is independent of its neighbor. The pixels do not overflow on neighbors in bright light. This is the vertical banking trail (also called blooming) that can be seen on some digital photos.

ccd blooming

Source : http://www.camerarepair.org/2012/03/blooming-a-camera-repair-that-isnt/

The second designated camera v2.1 NoIR is equipped with a sensor on which the infrared filter has not been installed. The camera is more sensitive in low light.

Attention, some denominations are misleading, it is not a night vision camera. In full black, the sensor will be completely blind. On the other hand, by adding a complementary light (2 or 3 infrared LED for example), the sensor is (really) very powerful. In full black, you can hope to see at 10m, which is enough to make a surveillance camera. To learn more, you can read this detailed comparison.

Alongside the official Raspberry products, many manufacturers (mainly Chinese) sell compatible cameras. Very often the performance is lower but the budget is more reasonable.

Here is a brief summary of the main technical characteristics.


Official color v2.1 8MP Raspberry Pi camera Official Night Vision v2.1 8MP Raspberry Pi camera NoIR compatible camera

(with double LED lighting)

raspberry pi camera v2.1 raspberry pi v2.1 noir camera official noir compatible camera raspberry pi
Connector CSI CSI CSI, compatible Raspberry
Dimensions 25 × 24 × 9 mm 25 × 24 × 9 mm 25x24x26 mm

25x75x26mm (with LEDs)

Resolution 8MP

3280 × 2464 pixels


3280 × 2464 pixels


2592 × 1944 pixels

Sensor CMOS Sony IMX219 CMOS Sony IMX219 CMOS OmniVision OV5647
Max. video resolution. 1080p30 1080p30 1080p30
Sensor size 1/4” 1/4” 1/4”
Driver V4L2 V4L2 V4L2
Focale 3.60 mm 3.60 mm 3.60 mm
Field of vision 53°(horiz.) x 41°(vert.) 53°(horiz.) x 41°(vert.) 75,7° (horiz.)
Deals Originale 8MP camera Originale 8MP NoIR camera 5MP NoIR compatible camera

The CSI connector

The camera connector of the Raspberry Pi is called CSI connector for Camera Serial Interface. It is an industry standard managed by the Mobile Industry Processor Interface alliance. There are 3 standards (CSI-1, CSI-2, CSI-3) currently. The most recent version dates from 2012. The Raspberry Pi is equipped with a CSI-2 connector. The problem with the CSI connector is that there is no logo that makes it possible to be there as well rated Raspberry Pi and camera side. And it’s the same for the Orange Pi which is also equipped with a CSI connector incompatible with the Raspberry Pi camera!

raspberry pi camera connector connecteur picamera

Stay on familiar ground and check compatibility with the Raspberry Pi (or another mini-PC) at the time of purchase.

Which camera for the Raspberry Pi Zero W?

The Raspberry Pi Zero W (since revision 1.3) also has its camera connector CSI. But it is narrower than the one that equips his big brother: twisted:.

Fortunately, it is quite possible to use a camera v2.1 or v2.1 NoIR by replacing the flexible table with a compatible table (also called camera ribbon). This is the solution chosen by most manufacturers.

If you already have a camera, you can buy on Amazon for about $8. Live from Asia, we find for about $2.

adaptateur nappe camera raspberry pi zero 1.3

There are also kits that integrate the ribbon compatible with the Raspberry Pi Zero W connector.

Comparison of original and compatible cameras for Raspberry Pi 3 and Raspberry Pi Zero (v1.3+)

No posts for this criteria.
Technical specifications are subject to change by manufacturers at any time without notice.

Connect the camera to Raspberry Pi

The Raspberry Pi has a dedicated CSI connector. The CSI connector is located right next to the HDMI video output. Before connecting the camera to the Raspberry, stop Raspbian (sudo halt ) and unplug the board.

raspberry pi camera connector connecteur picamera

There is no direction indicator on the ribbon. Insert the ribbon by placing the tracks toward the HDMI connector.

raspberry pi connect ruban camera picamera

Close the connector. It is locked by lowering it all the way down. There is no “click” that confirms the closing of the connector. Pull slightly to make sure the ribbon is in place and properly held. As you can imagine, this is not a foolproof mechanical assembly. Do not use too much mechanical action on the ribbon, otherwise the camera will be disconnected.

camera connectee raspberry pi 3

Enable Camera Module on Raspbian Stretch Pixel

Before you can use the camera module, it is necessary to activate it. Under Raspbian Stretch, open Menu and then Preferences and open the Raspberry Pi Configuration panel. Go to the Interfaces tab to activate the camera module.

 raspberry pi configuration camera

Restart to complete camera activation.

Activate the camera under Raspbian Stretch Lite

Under Raspbian Stretch Lite (without GUI) but also from an external SSH connection, you can access raspi-config with the sudo raspi-config  command. Go to menu (5) Interfacing Options.

raspberry pi i2c raspi-config

Then to the menu (P1) Enable Camera and answer with Yes.

raspberry pi i2c activate raspi-config

Restart to complete camera activation.

Test the camera with the raspistill command

Raspbian comes with a small utility that allows taking snapshots and saving small footage using the camera. This is the raspistill command. Open the Terminal

To take a snapshot called demo.jpg, the snapshot will be saved in the execution directory of the command, run

raspistill -o demo.jpg

You can add the -vf  option to make a vertical rotation of 180 ° and -hf  horizontally

raspistill -o -vf -hf demo.jpg

Run the raspistill command without arguments to list all available options. It is a very powerful command that can very easily be integrated into a Linux script without any other dependency.


raspistill Camera App v1.3.11

Runs camera for specific time, and take JPG capture at end if requested

usage: raspistill [options]

Image parameter commands

-?, --help  : This help information
-w, --width : Set image width <size>
-h, --height    : Set image height <size>
-q, --quality   : Set jpeg quality <0 to 100>
-r, --raw   : Add raw bayer data to jpeg metadata
-o, --output    : Output filename <filename> (to write to stdout, use '-o -'). If not specified, no file is saved
-l, --latest    : Link latest complete image to filename <filename>
-v, --verbose   : Output verbose information during run
-t, --timeout   : Time (in ms) before takes picture and shuts down (if not specified, set to 5s)
-th, --thumb    : Set thumbnail parameters (x:y:quality) or none
-d, --demo  : Run a demo mode (cycle through range of camera options, no capture)
-e, --encoding  : Encoding to use for output file (jpg, bmp, gif, png)
-x, --exif  : EXIF tag to apply to captures (format as 'key=value') or none
-tl, --timelapse    : Timelapse mode. Takes a picture every <t>ms. %d == frame number (Try: -o img_%04d.jpg)
-fp, --fullpreview  : Run the preview using the still capture resolution (may reduce preview fps)
-k, --keypress  : Wait between captures for a ENTER, X then ENTER to exit
-s, --signal    : Wait between captures for a SIGUSR1 or SIGUSR2 from another process
-g, --gl    : Draw preview to texture instead of using video render component
-gc, --glcapture    : Capture the GL frame-buffer instead of the camera image
-set, --settings    : Retrieve camera settings and write to stdout
-cs, --camselect    : Select camera <number>. Default 0
-bm, --burst    : Enable 'burst capture mode'
-md, --mode : Force sensor mode. 0=auto. See docs for other modes available
-dt, --datetime : Replace output pattern (%d) with DateTime (MonthDayHourMinSec)
-ts, --timestamp    : Replace output pattern (%d) with unix timestamp (seconds since 1970)
-fs, --framestart   : Starting frame number in output pattern(%d)
-rs, --restart  : JPEG Restart interval (default of 0 for none)

Preview parameter commands

-p, --preview   : Preview window settings <'x,y,w,h'>
-f, --fullscreen    : Fullscreen preview mode
-op, --opacity  : Preview window opacity (0-255)
-n, --nopreview : Do not display a preview window

Image parameter commands

-sh, --sharpness    : Set image sharpness (-100 to 100)
-co, --contrast : Set image contrast (-100 to 100)
-br, --brightness   : Set image brightness (0 to 100)
-sa, --saturation   : Set image saturation (-100 to 100)
-ISO, --ISO : Set capture ISO
-vs, --vstab    : Turn on video stabilisation
-ev, --ev   : Set EV compensation - steps of 1/6 stop
-ex, --exposure : Set exposure mode (see Notes)
-awb, --awb : Set AWB mode (see Notes)
-ifx, --imxfx   : Set image effect (see Notes)
-cfx, --colfx   : Set colour effect (U:V)
-mm, --metering : Set metering mode (see Notes)
-rot, --rotation    : Set image rotation (0-359)
-hf, --hflip    : Set horizontal flip
-vf, --vflip    : Set vertical flip
-roi, --roi : Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0])
-ss, --shutter  : Set shutter speed in microseconds
-awbg, --awbgains   : Set AWB gains - AWB mode must be off
-drc, --drc : Set DRC Level (see Notes)
-st, --stats    : Force recomputation of statistics on stills capture pass
-a, --annotate  : Enable/Set annotate flags or text
-3d, --stereo   : Select stereoscopic mode
-dec, --decimate    : Half width/height of stereo image
-3dswap, --3dswap   : Swap camera order for stereoscopic
-ae, --annotateex   : Set extra annotation parameters (text size, text colour(hex YUV), bg colour(hex YUV))


Exposure mode options :

AWB mode options :

Image Effect mode options :

Metering Mode options :

Dynamic Range Compression (DRC) options :

Preview parameter commands

-gs, --glscene  : GL scene square,teapot,mirror,yuv,sobel,vcsm_square
-gw, --glwin    : GL window settings <'x,y,w,h'>

Here is a series of articles to go further:


Click to rate this post!
[Total: 0 Average: 0]


  1. Hi everyone.. i’m looking for the install and configuration of 3d printer to my arduino… someone know how to make it? i wanna print one model for this site https://www.stlfinder.com/

  2. In the section called “The CSI Connector”, you have this sentence: “The problem with the CSI connector is that there is no logo that makes it possible to be there as well rated Raspberry Pi and camera side.”

    That sentence makes absolutely no sense

Leave a Reply

DIY Projects
DIY Projects
%d bloggers like this: