Cameras
Cameras are devices that capture images/video and convert them into an analogue or digital signal. At the heart of a camera is an image sensor, which in today’s cameras is usually a CMOS (complementary metal-oxide-semiconductor) sensor. The image sensor is made up of an array of pixels, which are light-sensitive elements that convert light into an electrical signal.
This image sensor is usually paired with a lens which focuses light onto the sensor. There are a number of different camera and lens types available for embedded systems.
Camera Sensor Parameters
Sensor Size (Optical Format)
The sensor size (a.k.a. optical format) is the physical size of the image sensor in a camera. It is usually measured as the diagonal of the sensor in either a weird fraction of an inch (e.g. 1/2.3”) or directly in millimetres (e.g. 6.3 mm).
The 1/2.3” format is a legacy convention from the 1950s vacuum-tube video cameras (vidicons). A “1-inch” tube had a glass tube diameter of 1 inch (25.4 mm), but the usable image area was only about 2/3 of that, approx. 16 mm (on the diagonal). Solid-state sensors replaced tubes, but manufacturers kept the same naming convention, quoting the size of a hypothetical tube that would have the same image area.
As a general rule-of-thumb:
Sensor size is important because:
- Light gathering: A bigger sensor (at the same resolution) has bigger pixels, which can gather more light and produce better images in low-light conditions (and give better dynamic range).
- Lens compatibility: The lens’s image circle must be at least as big as the sensor so that you do not get vignetting (dark corners).
- Field of view: For a given lens focal length, a bigger sensor will give a wider field of view.
To give some examples:
Rolling vs Global Shutter
CMOS image sensors can either have a rolling or global shutter.
- Rolling shutter: Each row of pixels is exposed to light one at a time. The values of these pixels are then read one line time later. This is the most common type of shutter in CMOS sensors, and is fine for still images or slow-moving objects. But if the object is moving quickly, it can cause distortion in the image (e.g. a fast-moving propeller can look like a bent spiral).
- Global shutter: All pixels are exposed to light at the same time. Then all the pixels transfer their charge to an light-shielded in-pixel storage cell. These stored values are then read out one line at a time just like with a rolling shutter. This allows for capturing fast-moving objects without distortion, but it is more complex and expensive to implement (it needs the light-shielded in-pixel storage cell).
Front-side vs Back-side Illumination
CMOS image sensors can be either front-illuminated or back-illuminated. Front-illuminated sensors (FSI) are the traditional design in which light enters the sensor from the front. But in standard chip fabrication processes, the metal layers and transistors that connect to each pixel are built on top of the silicon substrate, which blocks some of the light from reaching the photodiodes.
Back-illuminated sensors (BSI) flip the sensor around so that light is now entering the back. The back of the wafer is ground/etched down so it is just a few microns thin. Light can pass through this relatively easily, and then hits the photodiodes directly without being blocked by the metal layers and transistors. This improves the quantum efficiency of the sensor.
Stacked Sensors
Closely related to back-illumination, stacked sensors is taking the BSI concept further by separating the pixel array die from the logic die. This allows the pixel array to be optimized for light gathering, while the logic die can be optimized for processing speed and power consumption (different process nodes). The two dies are then bonded together face to face. In BSI but non-stacked sensors, the readout circuitry has to be placed around the edges of the pixel array, which limits the fill factor (the percentage of the sensor area that is light-sensitive).
IP Cameras
IP cameras are cameras that are connected to a network and can be accessed via an IP address. Many of them support PoE, allowing a single cable to both power the camera and provide a network connection.
ONVIF (Open Network Video Interface Forum) is a popular standard that IP cameras can support.
Camera Sensors
Some popular camera sensor manufacturers:
- Sony: IMX family (e.g. IMX477, IMX296)
- OmniVision: OV family (e.g. OV5647, OV7251)
IMX296
The IMX296 is a 1.6 megapixel image sensor from Sony with a global shutter. The global shutter makes it suitable for capturing fast-moving objects without the motion blur that can occur with rolling shutters.2 Arducam sells a camera module containing the IMX296 with an M12 lens mount, designed for the Raspberry Pi.3
| Feature | Specification |
|---|---|
| Resolution | 1440 (H) x 1080 (V) |
| Pixel Size | 3.45 µm x 3.45 µm |
| Sensor Size | 1/2.9” (6.3 mm diagonal) |
| Interface | MIPI CSI-2 |
| Shutter Type | Global Shutter |
| Frame Rate | 1440x1080 @ 60 fps |
| Output Format | RAW10 |
Note that 6.3 mm is Sony’s quoted optical diagonal for the Type 1/2.9 format — the active pixel array itself is 1440 x 1080 x 3.45 µm = 4.97 mm x 3.73 mm, giving a 6.21 mm diagonal.
IMX477
The IMX477 is a 12.3 megapixel CMOS image sensor from Sony. It is a backside illuminated stacked image sensor with a square pixel array. It has an electronic shutter with variable integration time. It is in the Raspberry Pi High Quality Camera and the Arducam IMX477 module.4
The pixel size is 1.55 µm x 1.55 µm which allows for good low-light performance. The sensor array is 4056 x 3040 pixels.
| Feature | Specification |
|---|---|
| Resolution | 4056 (H) x 3040 (V) (12 MP) |
| Pixel Size | 1.55 µm x 1.55 µm |
| Sensor Size | 1/2.3” (7.857 mm diagonal) |
| Interface | MIPI CSI-2, D-PHY spec. v1.2 compliant |
| Shutter Type | Rolling Shutter |
| Video Modes | 1080p @ 30 fps, 720p @ 60 fps, 640x480 @ 60/90 fps |
| Output Format | RAW12 |
The MIPI CSI-2 interface supports 2 or 4 data lanes, with a max. of 2.1 Gbps per lane. It is D-PHY spec. v1.2 compliant, and supports 8/10/12-bit RAW output formats.5
The picamera2 driver supports the following modes for the IMX477:
| Size | MP | Field of View | Binning | Max. FPS | ||
|---|---|---|---|---|---|---|
| 8-bit | 10-bit | 12-bit | ||||
| 1332x990 | 1.3 | 43% (crop 2664x1980) | 2x | 147.9 | 120.5 | 101.7 |
| 2028x1080 | 2.2 | 71% (crop 4056x2160) | 2x | 92.3 | 74.7 | 62.8 |
| 2028x1520 | 3.1 | full | 2x | 66.4 | 53.8 | 45.2 |
| 4056x2160 | 8.8 | 71% (crop 4056x2160) | native | 24.3 | 19.6 | 16.4 |
| 4056x3040 | 12.3 | full | native | 17.4 | 14.0 | 11.7 |
The default AE curve is:
shutter [100, 10000, 30000, 50000, 66666]gain [1.0, 1.5, 2.0, 4.0, 16.0]IMX500
The IMX500 is a 12.3 megapixel CMOS image sensor from Sony with an integrated AI processing unit. Along with the image sensor, it also has a DSP and ≅8MB SRAM (to be shared between it’s firmware, model weights and working memory) for running neural networks.6 As of August 2026, the IMX500 supports 4 of the 7 Ultraanalytics tasks (detect, segment, classify and prose). It supports the YOLOv8 and YOLO11 models, but does not support YOLO26. It supports maximum image sizes of 640x640 pixels for inference.
| Feature | Specification |
|---|---|
| Resolution | 4056 (H) x 3040 (V) (12.3 MP) |
| Pixel Size | 1.22 µm x 1.22 µm |
| Sensor Size | 1/2.3” (7.857 mm diagonal) |
| Interface | - |
| Shutter Type | Rolling Shutter |
| Video Modes | Full @ 60 fps, 4056x2288 (4K) @ 60 fps, 1080p @ 240 fps |
| Output Format | Bayer RAW, YUV/RGB |
The IMX500 supports a mode in where only the detection data from the inference in outputted, rather than the image. This reduces the bandwidth and processing requirements for the host processor.
IMX519
The IMX519 is a 16 megapixel CMOS image sensor from Sony.
| Feature | Specification |
|---|---|
| Resolution | 4656 (H) x 3496 (V) (16 MP) |
| Pixel Size | 1.22 µm x 1.22 µm |
| Sensor Size | 1/2.53” (??? mm diagonal) |
| Interface | - |
| Shutter Type | Rolling Shutter |
| Video Modes | 1080p @ 30 fps, 720p @ 60 fps |
| Output Format | RAW8/10, COMP8 |
Camera Modules
MIPI CSI-2 is the most common standard for connecting cameras to processors in mobile and embedded devices — see the MIPI CSI Communication Protocol page for more info on how the protocol works.
Some popular camera module manufacturers (they take a “raw” camera sensor and package it into module):
- Arducam: Online orders were sent by Nanjing Paichi Elec. Co. Ltd. (I presume this is the same company/parent company)
- Raspberry Pi
- Weinan Electronics
Arducam IMX296 Camera Module
The Arducam IMX296 camera module is a small camera module that includes the global shutter Sony IMX296 image sensor, an M12 lens mount, and a 15-to-22 pin FPC connector for MIPI CSI-2. It also comes with a 45° (HFOV) M12 lens (this can be swapped out as needed).3
Arducam IMX477 Camera Module
SKU: B0240E
The Arducam IMX477 camera module with C/CS mount bundles the Sony IMX477 image sensor with a C/CS mount lens holder and MIPI CS-2 interface.7
Arducam IMX500 AI Camera Module
The Arducam IMX500 features a Sony IMX500 image sensor with an integrated AI processing unit.

Arducam IMX519 Camera Module
The lens holder screws are 18 mm apart (hole center to hole center).
Nanoleaf 4D Screen Mirror Camera
Just to give you an example of a camera module used in a consumer product, below are photos of the camera used in the Nanoleaf 4D screen mirror. I couldn’t find any further specs on the camera based on the markings, except that 720p most likely means it is a 1280x720 pixel camera. The lens thread appears to be M12.
Lenses
A lens is an optical device that focuses light onto the image sensor. The lens determines the field of view, depth of field, and overall image quality.
What does a lens do? Consider a tip of a pencil. It scatters light in all directions. The whole cone of those rays enters the lens aperture. Light rays from the pencil tip hit the top, bottom and central parts of the lens. The lens then bends all rays from that one source point so they reconverge at a single point on the image plane.
For a thin lens, the equation is:
Where:
- is the distance from the object to the lens.
- is the distance from the lens to where the image forms.
A pinhole camera avoids the problem of sorting a cone of light rays from every object and instead only allows a single ray from each object to pass through the pinhole. This makes it sharp and in focus for any distance, at the expense of being very dim. A lens allows more light to enter the camera (it allows a cone of light from every object), but it requires focusing to ensure that the image is sharp.
Focal Length
The focal length is the distance from the lens to the image sensor when a subject at infinity is in focus. It is usually measured in millimetres (mm). A shorter focal length gives a wider field of view, while a longer focal length gives a narrower field of view.

Effective focal length (EFL) is the optical focal length of the whole lens assembly. This is the distance from the lens’s rear principal plane to the focal point. The principal plane is a theoretical plane that can sit anywhere (even inside or in front of the glass).
Back focal length (BFL) is the distance from the rearest most surface of the lens to the image plane. This space is where IR filters, cover glass and other optical elements are placed. Note however this is generally not the same as the clearance from the rear-most mechnical part of the lens assembly to the image plane. That is the MBF (see below).
Minimum back focus (MBF) is the distance from the rear-most mechanical part of the lens assembly to the image plane. For C-mount and CS-mount, this is standardized at 17.526 mm and 12.526 mm respectively, so you can use any lens of that mount type and it will focus correctly. For M12, which has no standard flange height, this also tells you how tall your lens holder needs to be.
Aperture and f-number
The f-number is defined as:
where:
- is the f-number (dimensionless).
- is the focal length of the lens, in mm.
- is the diameter of the entrance pupil, in mm.
When lenses are sold, the f-number is usually specified in the form f/2.8, where the “2.8” is the f-number (). The reason it looks like a fraction is because it is — it’s a re-arrangement of the above equation to solve for :
The most confusing part about all this is that for a given focal length, a larger f-number means a smaller aperture (less light).
One of the the reasons the f-number is used rather than just specifing the aperture diameter is that the same f-number gives you the same brightness no matter what the focal length is. This also makes intuitive sense as a larger focal length means the lens is magnifying a smaller area of the scene onto the same sensor area, so it needs a bigger aperature to keep the level of illuminance constant.
Most M12 lense have a fixed aperture (i.e. no adjustable ring to change the aperture size).
Field of View
The field of view (FoV) is how much of the scene the camera captures. It depends on both the focal length of the lens and the size of the sensor. The diagram below shows the geometry.
Under the thin-lens model, the angular field of view is:
and the size of the scene captured at a working distance from the lens is:
Where:
- is the angular field of view in radians.
- is the size of the scene captured at the working distance, in mm.
- is a dimension of the sensor’s active pixel array, in mm.
- is the focal length of the lens, in mm.
- is the working distance from the lens to the object, in mm.
The equations work for any of the three sensor dimensions — width, height or diagonal. For example, if you substitute in the sensor width you get the horizontal angular field of view (and the width of the captured scene); substitute the sensor height or diagonal and you get the vertical () or diagonal () field of view instead.
For working distances much larger than the focal length this simplifies to the familiar .
These equations only hold for low-distortion (rectilinear) lenses. Wide-angle and fisheye lenses have strong barrel distortion which “squeezes” a wider scene onto the sensor, so their real field of view is considerably wider than the focal length predicts.
Depth of Field
The depth of field (DoF) is the distance between the nearest and farthest objects in a scene that appear acceptably sharp in an image. It depends on the focal length of the lens, the aperture size, and the distance to the subject. An easy way to remember the relationship with aperture is to remember that a pinhole camera has infinite depth of field. Obviously a pinhole camera has a very small aperture because it’s just a “pinhole”. So smaller aperture = more depth of field. A larger aperture = less depth of field. This also makes sense intuitively — a larger aperture lets in more light, but because it lets in light from more angles, the range of distances that are in focus is smaller.
Lens Field of View Calculator
A common design task is working out what focal length lens you need so that a camera sees an object of a certain size at a certain distance, and how much detail (mm per pixel) you get on that object. The calculator below solves this using the field of view equations above.
The lens preset dropdown is populated with the 10 lenses from the Arducam M12 lens set (SKU LK005), a popular lens kit for embedded cameras covering focal lengths from a 16 mm telephoto down to a 1.7 mm fisheye.10
Mounts
Lens mounts hold the lens in the correct place in-front of the image sensor. The image sensor is typically mounted on a circuit board with one side of the mount, and the lens has a mating piece which screws or slides on. There are a few common lens mounts used for embedded cameras.
C-mount
A 1-inch diameter, 32 threads per inch lens mount. The flange height (distance from the top of the flange to the sensors image plane) is 17.526 mm.11

CS-mount
Has the same 1-inch diameter and 32 threads per inch thread as the C-mount, but with a shorter flange height of 12.526 mm. A C-mount lens might work on a CS mount camera, but it doesn’t normally work the other way around (a CS-mount lens on a C-mount camera won’t focus).12
M12-mount
A small lens mount that has an M12 x 0.5 thread (12 mm nominal diameter and 0.5 mm thread pitch). Unlike C and CS-mount, it does not have a standardized flange height. Because of this, M12 lenses must be screwed in and out until they are in focus (and then sometimes secured with a screw or glue). It is smaller and lighter (≈10 grams) than the CS/C-mount and used when space and weight constraints are important. It is also known as an S-mount.13
Below is a photo of a 100 mm long focal length M12 lens. 100 mm is getting very long for a M12, and the lens itself gets physically long also!

Suppliers
TREEYE is on AliExpress and sells a range of M12 lens with focal lengths from approx. 1 mm to 100 mm.
Witrue is another AliExpress store with a range of M12 lenses.
cnAICO (aico-lens.com) is a Chinese company that makes a range of lenses for embedded cameras.
Commonlands Optics is a US company that sells lenses. As expected, as of Aug 2026 they are priced higher than the Chinese suppliers. They provide good quality documentation with their parts.
Footnotes
-
GSMArena Team (2025, Feb 5). Samsung Galaxy S25 review: Camera. GSMArena. Retrieved 2026-07-21, from https://www.gsmarena.com/samsung_galaxy_s25-review-2794p5.php. ↩ ↩2
-
Arducam. 1.58MP IMX296 [documentation]. Arducam Wiki. Retrieved 2026-07-20, from https://docs.arducam.com/Raspberry-Pi-Camera/Native-camera/Global-Shutter/1.58MP-IMX296/. ↩
-
Arducam. 1.58MP IMX296 Color Global Shutter Camera Module with M12 Lens for Raspberry Pi [product page]. Retrieved 2026-07-28, from https://www.arducam.com/1-58mp-imx296-color-global-shutter-camera-module-with-m12-lens-for-raspberry-pi.html. ↩ ↩2
-
Arducam. 12MP IMX477 [documentation]. Arducam Wiki. Retrieved 2026-07-20, from https://docs.arducam.com/Raspberry-Pi-Camera/Native-camera/12MP-IMX477/. ↩
-
Sony Semiconductor Solutions (2018, Dec 12). IMX477-AACK - Diagonal 7.857 mm (Type 1/2.3) 12.3 Mega-Pixel CMOS Image Sensor with Square Pixel for Color Cameras [product flyer]. Retrieved 2026-07-22, from https://www.sony-semicon.com/files/62/pdf/p-13_IMX477-AACK_Flyer.pdf. ↩
-
Gareth Halfacree (2024, Sep 30). Raspberry Pi’s AI Eye: Hands-On with the Raspberry Pi AI Camera Module. Hackster.io. Retrieved 2026-08-25, from https://www.hackster.io/news/raspberry-pi-s-ai-eye-hands-on-with-the-raspberry-pi-ai-camera-module-383fb34afcf7. ↩
-
Arducam. Arducam 12.3MP IMX477 Camera Module w/ C/CS-Lens Mount and Tripod Adapter for Raspberry Pi [product page]. Retrieved 2026-08-25, from https://www.arducam.com/arducam-12-3mp-imx477-camera-module-w-c-cs-lens-mount-and-tripod-adapter-for-raspberry-pi.html. ↩
-
Arducam. Arducam IMX500 AI MIPI Camera Module for Raspberry Pi [product page]. Retrieved 2026-08-25, from https://www.arducam.com/arducam-imx500-ai-mipi-camera-module-for-raspberry-pi.html. ↩
-
Witrue. Witrue HD Lens 5MP M12 25MM 35MM 50MM Low Distortion for Surveillance Security Cameras [product page]. AliExpress. Retrieved 2026-08-18, from https://www.aliexpress.com/item/1005007800829731.html. ↩
-
Arducam. Arducam M12 Lens Set, Arducam Lens for USB Camera(1/2.7” 1/2.8” 1/2.9”), Telephoto, Macro, Wide Angle, Fisheye Lens Kit (20°- 180°) with M12 Lens Holder and Cleaning Cloth, Optical All-in-One [product page]. Retrieved 2026-07-23, from https://www.arducam.com/arducam-m12-lens-set-arducam-lens-for-usb-camera1-2-7-1-2-8-1-2-9-telephoto-macro-wide-angle-fisheye-lens-kit-20-180-with-m12-lens-holder-and-cleaning-cloth-optical.html. ↩
-
Wikipedia (2025, Jul 25). C mount [wiki]. Retrieved 2026-07-24, from https://en.wikipedia.org/wiki/C_mount. ↩ ↩2
-
Commonlands Optics. Types of Camera Lens Mounts - C-Mount, CS-Mount, and M12 Mount (S-Mount). Retrieved 2026-07-21, from https://commonlands.com/pages/lens-mounts-101. ↩
-
Commonlands Optics. What Is an M12 Lens? S-Mount Definition, M12 x 0.5 Thread, and Selection Guide. Retrieved 2026-07-21, from https://commonlands.com/blogs/technical/what-is-an-m12-lens. ↩ ↩2






