New Raspberry Pi Camera with Global Shutter

Raspberry Pi has just introduced a new camera module in the high-quality camera format. For the same $50 price you would shell out for the HQ camera, you get roughly eight times fewer pixels. But this is a global shutter camera, and if you need a global shutter, there’s just no substitute. That’s a big deal for the Raspberry Pi ecosystem.

Global vs Rolling

Most cameras out there today use CMOS sensors in rolling shutter mode. That means that the sensor starts in the upper left corner and rasters along, reading out exposure values from each row before moving down to the next row, and then starting up at the top again. The benefit is simpler CMOS design, but the downside is that none of the pixels are exposed or read at the same instant.

Contrast this with a global shutter, where all of the CMOS pixels are exposed and then their values stored until they’re all read out. This is a much more complicated device, because each cell essentially needs sample and hold circuitry, and this explains the lower pixel density. But the result is that the picture is actually a snapshot in time, and if anything in your scene is moving fast, that matters.

So who needs a global shutter? First and foremost, it’s a must for machine vision. The combination of moving subjects and rolling shutters distorts the shape of whatever is in view, and if you’re trying to measure it’s size or even determine its correct outline, then you need to be filming it with a global shutter. Quad pilots will know the flip side of the rolling shutter coin – the “jello effect” (YouTube video link). On quads, it’s not the scene but the camera that’s vibrating rapidly, and this makes even static scenes appear to wobble like that horrible old cliché dream-sequence effect. No good.

Or imagine that you’re taking pictures of lightning, or other short-lived events, and maybe you want to time it. With a global shutter, one frame will be dark and another will be light. With a rolling shutter, you’re almost guaranteed to have half-filled frames on either end.

Here I’ve pulled out the classic demo: a spinning propeller. Have a look at the strange shapes that come out of the rolling shutter camera! All of the images are blurred a little bit because the blade was moving fast during the exposure; if you need to reduce the blur, more light and shorter exposure times would help. But if you want to unbend the banana, only a global shutter can save you.

Similarly, check out the video demos. As I ramp up and down the propeller speed, you can get glimpses of the shape aliasing with the cameras’ frame rates. With the global shutter, you get nice clovers, but with the rolling shutter, you get sickles and even disconnected ghost blades. Trippy.

global2 rolling2

For more on rolling-shutter effects, check out this video.

Is This Camera for You?

If you have $50 burning a hole in your pocket, and you need a camera sensor for your Pi, what do you get? On the pros side, the global shutter camera has a global shutter – that’s obvious enough. It’s also got fairly good light sensitivity, can record 1440 x 1080 pixels at 60 frames per second in video mode, and each of those frames is an actual snapshot in time. The big con is that the resolution is a lot lower relative to the HQ rolling-shutter camera. But for computer vision, and a lot of other non-artistic applications, 1080p is plenty. Honestly, if you’re running CV on a Raspberry Pi, the reduced pixel count is probably a blessing.

Like the HQ camera, this camera has a bigger sensor than the cheaper Raspberry Pi cameras, but you have to (or get to) provide your own lens. Both the HQ and the global shutter cameras have C and CS mounts, which means that you can screw in any CCTV lens, or even 3D print an adapter to attach these to anything from a microscope to a telescope. Sometimes you want a camera, other times you just want the sensor. Here, you’re just getting the sensor and a tripod mount. Factor the price of a lens into your budget if you want a camera.

I got this model for free for review from Raspberry Pi, and they included a lens. It’s pretty good, but for whatever reason it wasn’t easy to get it to focus correctly on the sensor. I think it’s missing a spacer somewhere in the C-mount adapter stack-up, which explains the hot glue in my glamour shots. Longer-term, I’ll probably 3D print up the correct size ring. I also love that the lens manufacturers rated the (analog) optics for the number of megapixels it produces. Physics!

As with the HQ camera, you have to use the new libcamera software and drivers. They are a lot more capable and user-friendly than the old raspistill and raspivid, so it’ll be no problem if you’re writing your own code. But do note that some older programs, like the excellent RPi Cam Web Interface, don’t work with the newer libraries yet.

Finally, and I don’t know if this is in common with the HQ camera, there are some inviting test points broken out on the back side of the camera. Anyone know what to do with them?

Older Post Newer Post

Leave a comment

Please note, comments must be approved before they are published