Update 12/2/2021 06:21 PT:
Arducam has provided an update regarding its own modded version of libcamera, and compatibility with other Raspberry Pi cameras. The modded version of libcamera was created as the official libcamera software does not as yet support autofocus. Arducam built its own version of the software until libcamera officially offers autofocus support.
Arducam confirms that compatibility with older Raspberry Pi cameras is easily fixed, and that an update to the code will soon enable official camera support.
Arducam’s latest camera, currently being crowd funded, sees the familiar official Raspberry Pi camera V1 / V2 form factor but with an autofocus lens and a sensor, Sony’s IMX519, which is more powerful than that used in the official Raspberry Pi HQ camera.
This new camera comes at an “interesting” time in the history of Raspberry Pi. We’ve just had a new Raspberry Pi OS based on Bullseye and this update has removed the raspistill / raspivid and PiCamera Python package in favor of the libcamera API. The recent release of the Raspberry Pi Zero 2 W throws another issue into the mix. The Pi Zero 2 W will not work with any camera using Bullseye OS.
Despite all of the external issues, Arducam’s $25 High-Resolution Auto-Focus Camera is currently being crowdfunded and we have one on our desk ready for testing. Could this be the one camera to rule them all? Do we get great, focused images or just a blur as we try to photograph that squirrel? We tested the camera with our Raspberry Pi 4 and Pi Zero 2 W and here is what we found.
Arducam High-Resolution Auto-focus Camera Specifications
|Optical Size||Type 1 / 2.53"|
|Sensor Resolution||4656 x 3496|
|Still Resolution||16 Megapixels|
|Video Modes||1080p30 720p60|
|Focal ratio (F-Stop)||1.75|
|Focus Range||10cm to infinity|
|Dimensions||26 x 24 x 18 mm|
|40 x 34 x 15 mm|
Arducam High-Resolution Auto-focus Camera Design
At a quick glance this camera looks just like the official v1.3 and v2 cameras from Raspberry Pi, but then we notice the 16MP Autofocus silkscreen print and we know that this is a different beast. The included plastic case provides decent protection to the camera unit, but the lens is exposed to the world.
Around the back of the case is something most welcome, a 1/4 inch thread for tripods. This alone is worth the purchase price.The included CSI flat flex cable is the same as used with the official cameras, and it can be changed for longer / shorter cables, or used with converters if the Raspberry Pi Zero is your chosen thing.
Using Arducam High-Resolution Auto-Focus Camera
As you would expect from a Raspberry Pi camera, the unit connects to the Camera (CSI) port just next to the HDMI port. Enabling the camera interface, via the Raspberry Pi Configuration tool or via raspi-config is the same as the official cameras but then we deviate from the norm. In order for the camera to work, we need to follow a few simple steps to download and install a driver and then a tweaked version of libcamera which has since become the standard camera software on Raspberry Pi OS “Bullseye”.
With the installation complete, we can now launch into a few tests and our first is the “Hello World” test using libcamera-hello. We secured our camera into a suitable tripod and pointed it to a suitable test subject, and we saw that the image wasn’t focused. It transpires that the camera focuses when the libcamera command is invoked with the --autofocus switch and it does not constantly “hunt” or change focus as objects move around the frame.
In order to refocus the camera we need to use an additional switch, --keypress. Using this command we can arrange the subject to be captured, then switch to the terminal window and press f then ENTER to refocus the camera. After learning how to effectively use the Arducam High-Resolution Auto-Focus Camera, we found that the experience is not too different from using the official Raspberry Pi cameras with libcam.
Does the Arducam High-Resolution Auto-focus Camera Work With Buster?
Out of the box with raspistill / raspicam, no. Raspberry Pi OS Buster cannot detect the camera and these commands just fail. The same is true with the popular Python PiCamera library.
So how can we use this camera with Buster? We performed the same install process as we did with Bullseye and libcamera detected and used the camera with no issues. The same cannot be said for raspistill, raspicam and PiCamera. They just don’t work with this camera, and that is a big shame. If you depend on PiCamera, then you are stuck with the Raspberry Pi HQ camera and manual focus or one of the V1 / V2 models. If you can migrate your project from raspistill / raspicam to libcamera then you will have no issues with the Arducam.
Capturing Test Images with Arducam High-Resolution Auto-focus Camera
Our test setup saw the tripod set to 9 inches above the test subjects and our lighting remained the same across all images and cameras. Our first image used libcamera-still with no tweaks via command arguments and the resulting image was blurred and poor. To capture a sharper image, we needed to use the --autofocus switch, and this time the image was much improved.
We tested using two subjects, a selection of fruit with colored objects, and a selection of Raspberry Pi boards. We compared Arducam to the Raspberry Pi HQ camera, with a 6mm wide angle lens. Both sets of images had rich colors and bright images. Arducam had slightly-better image quality than the HQ camera. Colors were more vibrant; our red Lego block really popped!
Looking at the details, we compared the shots of our Raspberry Pi boards and Arducam took first place. We could see nice detail in the PCB tracks and the white silkscreen used for the Pi logo was sharp.
Arducam’s camera has much better focus than the fixed focus official V1 and V2 cameras. The V1 and V2 cameras have a 1 - 2 meter to infinity focus range. So anything greater than 1 - 2 meters is sharp and clear, but close up, we get a blurred mess (unless you hack the lens that is). With Arducam and its autofocus we have a focus range between 10 centimeters and infinity. Raspberry Pi HQ camera users can manually adjust their lens to set the focus.
During our comparison tests, we noticed an unfortunate side effect of installing the Arducam software; it broke compatibility with the official Raspberry Pi cameras. We tested our Bullseye and Buster test installations, both of which were running Arducam’s software and sadly our official Raspberry Pi HQ camera was not detected. We confirmed that the HQ camera worked using a fresh Bullseye install. The HQ camera was detected and ran without a hitch, enabling us to capture the comparison images. We reached out to Arducam and the current workaround is to comment out (use a #) one of these two lines.
dtoverlay=arducam or dtoverlay=imx519
Save and reboot the Pi and your official cameras will work again. This issue will be fixed in the next update, which should be when Kickstarter backers receive their units.
We couldn’t test the Arducam with the Raspberry Pi Zero 2 W for two reasons. The first is a well known issue with Bullseye which affects all models of camera. At this time no camera will work with Raspberry Pi Zero 2 W on Bullseye. The second issue is that the Buster install, used to successfully test Arducam on our Raspberry Pi 4, did not detect Arducam on Raspberry Pi Zero 2 W. We removed the card and set up our Pi 4 test machine with Arducam and everything worked. Could this issue be related to the Raspberry Pi Zero 2 W issue? It is possible and we hope that it will be fixed in a future update.
What Projects Is Arducam High-Resolution Auto-focus Camera Good For?
If you need the quality of the HQ camera and the size of the V1 and V2 official cameras, then Arducam High-Resolution Auto-focus Camera is for you. The size and shape of the camera mean that it can be a drop-in replacement for bird cams, wildlife trails and openCV robotics projects. Autofocus, the key selling point is great and while it may not constantly set the autofocus, focus time is fast.
In fact we accidentally took a focused image in 1/100th of a second. If your project depends on libcamera, then Arducam’s new camera will drop right into your scripts. Python users, you will have to wait for Raspberry Pi to release PiCamera 2, but this won’t be in 2021. Otherwise stick to Buster and your old cameras.
Arducam’s latest camera is great. Autofocus is fast and relatively sharp. Images are detailed, a little smudgy in lower / artificial light but only at high resolution and under magnification. With Arducam’s High-Resolution Auto-focus Camera we have convenience: the power of the HQ camera in the V1 / V2 package. The $25 final price is almost in the instant purchase territory, but with the kickstarter offering a lower price, there is little to stop us from picking one up.