Since the 2013 release of the original OV5647-based Raspberry Pi Camera v1, the Cambridge-based computer creators have prioritized giving their machines sight, with MIPI/CSI connectors standard on all major Pi boards. The focus (sigh) has typically been on low-cost, yet capable modules, with the latest v3 version providing a competent 12-megapixel Sony IMX708 sensor for under $30. For applications where higher quality is warranted, RPi launched the 12.3MP Sony IMX477 Exmor-based High Quality Camera Module in 2020, which enables mounting of C- and CS-mount lenses. The Global Shutter Camera combines the lens mount of the HQ with Sony’s 1.6MP IMX296 sensor, which is optimized for capturing high-speed motion, while still keeping the cost under $50 (not including the required lens).
I was overjoyed when our snow-delayed sample finally arrived at the testing lab (OK, my house) and couldn’t wait to spend some hands-on time with it. One of the hardest steps in getting started with an Raspberry Pi Camera is getting your hands on the Pi itself, but thankfully I had a Pi 4 from another project that I didn’t mind eviscerating in order to get some quality time with the new module. The biggest difference from other modules I’ve used before (v1, v2, v3, various NoIRs…basically all of them except the HQ) was the fact that it uses a “real” lens. Once affixed, the module+lens combo looks almost like a little DSLR hanging off your Pi by a ribbon. And, like a “real” camera, it requires manual focusing and adjustment. That can certainly take a moment to get the hang of, but once you’ve got it adjusted, the results are pretty spectacular.
The unique sensor for which the Global Shutter Camera is named actually captures every single pixel simultaneously via paired analog storage elements, unlike the rolling shutter found in other modules. This means it can capture images at very high speed, without the tearing artifacts produced by other sensors. It also makes it potentially suited to lower-light applications, since the larger pixels on the 1.6MP, 6.3mm diagonal surface are each able to collect more light. All of this makes the module ideal for machine vision and high-speed photography applications.
Beyond the magnificence of the new hardware, one of the things that impressed me most in evaluating the unit was the state of the supporting software and documentation. Raspberry Pi have focused intensely (I’m not doing this on purpose I swear) on documentation and developer experience in recent years, and it really shows. The Pi I used already had a recent version of – I think they want us to call it Raspberry Pi OS now – on it, so ensuring it had the latest bits was as simple as:
sudo apt update
sudo apt full-upgrade
sudo shutdown now
Once the machine came back up, having inserted the Global Shutter Camera’s ribbon cable into the Pi, testing it was as simple as availing oneself of the incredibly handy:
which activates the camera and displays a preview window (add
-t 0 to preview indefinitely). The full collection of libcamera-apps offer a bevy of tools and options for evaluating and calibrating camera modules.
After tuning the GSC, I set up TCP streaming with:
libcamera-vid -t 0 --inline --listen -o tcp://0.0.0.0:9999
And used vlc on another Linux machine to view it (adjust IP to taste):
The ease at which it’s possible to have a high-quality livestream up and running with the latest RPi stack is frankly astounding. I was completely blown away by the quality of the latest camera hardware and software. The GSC should really shine in machine vision applications, so I’ll be looking forward to putting it through its paces with OpenCV and TensorFlow Lite (and sharing the results on the blog here of course). Until then, it’s incredibly easy to recommend this extremely high-quality yet cost-effective module to anyone looking to go beyond what the V3 can provide. Further details and information on where to buy can be found on the official Raspberry Pi web site, along with their tremendously helpful documentation.