Shut the Front Sensor! Hands-on with Raspberry Pi’s New Global Shutter Camera

Electronics Raspberry Pi
Shut the Front Sensor! Hands-on with Raspberry Pi’s New Global Shutter Camera

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.

Rolling Shutter Effect courtesy Cmglee on Wikipedia

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:

libcamera-hello

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):

vlc tcp/h264://192.168.68.60:9999

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.

Discuss this article with the rest of the community on our Discord server!
Tagged

David bought his first Arduino in 2007 as part of a Roomba hacking project. Since then, he has been obsessed with writing code that you can touch. David fell in love with the original Pebble smartwatch, and even more so with its successor, which allowed him to combine the beloved wearable with his passion for hardware hacking via its smartstrap functionality. Unable to part with his smartwatch sweetheart, David wrote a love letter to the Pebble community, which blossomed into Rebble, the service that keeps Pebbles ticking today, despite the company's demise in 2016. When he's not hacking on wearables, David can probably be found building a companion bot, experimenting with machine learning, growing his ever-increasing collection of dev boards, or hacking on DOS-based palmtops from the 90s.

Find David on Mastodon at @ishotjr@chaos.social and to a far lesser extent on Twitter at @IShJR.

View more articles by David Groom

ADVERTISEMENT

Ready to dive into the realm of hands-on innovation? This collection serves as your passport to an exhilarating journey of cutting-edge tinkering and technological marvels, encompassing 15 indispensable books tailored for budding creators.

FEEDBACK