"You can hook this up to YouTube, to Oculus Go, you can use it with OpenCV... I cannot wait to start messing around with these because it's basically a dream come true."

"As you can see, it's a fairly compact little board - it breaks off a number of things off the SODIMM Pi 3 Compute Module... that's quite nice."

"When it comes to what you can do with StereoPi, the possibilities are almost endless: mount two wide-angle lenses for 360º recording, build a VR rig to test out virtual reality games, or, as I plan to do, build a stereoscopic camera!"

"With it you can do things like, stream stereoscopic 3D video to YouTube, build real-time depth maps using OpenCV, create panoramics using Hugin and even a 3rd person view of real life. Cool."

"There are some excellent community efforts too, of which our current favourite is this nifty dual camera board."

"The Raspberry Pi Compute Module was designed with industrial and automation applications in mind, but it can be tasked for much more, "

StereoPi is part of the Microchip Get Launched design competition!

From spatially aware robots to drone livestreaming

StereoPi is an open source stereoscopic camera based on Raspberry Pi. It can capture, save, livestream, and process real-time stereoscopic video and images. StereoPi opens up countless possibilities in robotics, AR/VR, computer vision, drone instrumentation, panoramic video, and more.

We’ve already made many demos of StereoPi integrating with other tools, including:

Example Video & Photo

The above video was captured by running this simple command from a Raspbian terminal:

raspivid -3d sbs -w 1280 -h 480 -o 1.h264

Taking a stereoscopic image is just as easy using:

raspistill -3d sbs -w 1280 -h 480 -o 1.jpg

Stereo photo sample from StereoPi

Features & Specifications

StereoPi Standard Edition

Front view

Top view

A. boot mode jumper H. dual USB Type-A connector B. camera 1 CSI-2 connector I. HDMI out C. micro USB (for firmware upload) J. USB port pin header D. 5 VDC power connector K. camera 2 CSI-2 connector E. power switch L. 40-pin RPi GPIO header F. microSD slot M. RPi Compute SO-DIMM connector G. RJ45 Ethernet jack

Raspberry Pi Inside

StereoPi is a carrier board for a Raspberry Pi Compute Module and is compatible with all compute module variants: CM1, CM3 (normal and Lite), and CM3+ (normal and Lite):

With Raspberry Pi at its core, StereoPi naturally makes use of standard Raspbian.

Of course, Raspbian comes with Python, which means getting started developing with StereoPi is as easy as installing Picamera, a pure Python interface to the Raspberry Pi camera module that supports stereo capture. For example:

from picamera import PiCamera camera = PiCamera(stereo_mode='side-by-side', resolution=(1280,720)) camera.capture('foo.jpg')

Comparisons

StereoPi RealSense D435+Aaeon QooCam ZED Mini Duo MLX Open hardware Yes No No No No 3D livestream Yes Yes Yes Yes No Depth map Yes Yes No Yes Yes Swappable cameras Yes No No No No Adjustable stereobase Yes No No No No On-board CPU for user code Yes Yes No No No Raspberry Pi inside Yes No No No No Price for complete setup $125 $259 $399 $449 $695

Demo: 3D video livestream to YouTube

StereoPi is a perfect way to get to know how stereoscopic vision works "under the hood." You’ll immediately see the effects on human perception of changing various camera calibrations and settings, such as stereobase (the distance between cameras).

With a StereoPi Starter Kit, a simple 3D-printed case, a 4G modem, and some simple code, we livestreamed this 3D video of an aquarium straight to YouTube:

To view this video in 3D, you can use any phone equipped with a 3D viewer like Google Cardboard. You also can view it with Oculus Go. Below is a photo of the actual set up used to capture the video:

Demo: 3rd-person view of real life using Oculus Go

StereoPi is small enough and flexible enough to quickly prototype new augmented and virtual reality (AR/VR) applications. It’s powerful enough for some real-time video processing right on the Raspberry Pi, and fast enough to stream video to a host computer for additional processing. Here’s what we did with Oculus Go:

We assembled this prototype over the course of a few days. The idea is to give the person wearing the Oculus Go a third-person view of themselves, as is often done in video games. Of course, real life is very different than a video game!

Demo: building a depth map with OpenCV

Autonomous cars, drones, and robots are coming! With StereoPi, you can seamlessly dive into this oncoming wave. Start with basics like camera undistortion and calibration, and then level-up to building depth maps. Combine this with neural networks and you’ll be ready to fight the imminent SkyNet an expert in unmanned vehicles. Here’s a depth map we made using OpenCV 3.0 running on StereoPi:

StereoPi OpenCV depth map example

If you have experience running OpenCV on Raspberry Pi, you may know that most paths will lead you to PyImageSearch, where Adrian gives a lot of ready-to-use examples of everything from OpnenCV installation, all the way up to face detection on the Raspberry Pi. We hope Adrian will use StereoPi to make some new tutorials for stereoscopic video!

You can find our brief OpenCV Python depth map tutorial on our blog, and source code in our stereopi-opencv GitHub repository.

Demo: Robot Operating System (ROS) depth map

A critical task for many robots is understanding their physical environment. But, as a budding roboticist, you might not have thousands of dollars to shell out. StereoPi to the rescue! In this example, we used the Robot Operating System (ROS) image for Raspberry Pi from Ubiquiti Robotics and added some simple code to arrive at this depth map:

If you’ve experimented with ROS and Raspberry Pi, then you may already know the popular raspicam_node package for working with the Raspberry Pi camera. We asked this package author, Rohan Agrawal (@rohbotics), if it is possible to use it in stereoscopic mode. After a brief GitHub discussion and a few tests, it appears you can capture stereoscopic images out-of-the-box. Thanks to Rohan for adding camera selection support!

So, right now, you can use StereoPi for depth maps and SLAM in ROS. Our plan is to help create an ROS driver optimized for StereoPi with full stereoscopic support, like other ROS-supported stereoscopic cameras.

Demo: 360° panoramic photos and videos

Creating a 360° panoramic camera is as easy as stitching together the images from two wide-angle cameras to create a single spherical image. All you need is a mounting plate for the cameras and either on-board or off-board stitching software. Below is an example of what you can do with StereoPi and a panoramic stitcher like Hugin:

This is the actual setup with two 220° cameras:

Demo: 3D and front/rear streaming from a drone

StereoPi works seamlessly with the popular raspivid native Raspberry Pi camera application — just add the -3d sbs option to receive stereoscopic video. This means StereoPi also works with raspivid -based projects, such as Wifibroadcast and EZ-WifiBroadcast, for livestreaming video from drones using a Raspberry Pi.

Here’s a setup using Wifibroadcast to livestream video from a StereoPi with wide-angle cameras mounted on top of a rover to a Raspberry Pi-based ground station and then to an iPhone equipped with a Google Cardboard viewer:

StereoPi can also be used with off-the-shelf video streaming solutions that simply take in HDMI and wirelessly stream it to a base station. In the setup below, we’ve connected the StereoPi’s HDMI output to an Insight SE 5G:

Of course, you can also point the StereoPi’s cameras in opposite directions to get both the front and rear views of your drone:

If you use long-range Wi-Fi solutions like Mikrotik or Ubiquiti, or a COFDM Ethernet bridge (e.g., HN-550TX), you can combine telemetry data with the two StereoPi video streams and transfer it to your ground station.

Designed for Hardware Hackers

We know from experience how a seemingly minor inconvenience in a piece of hardware can lead to a massive amount of time lost and frustration. That’s why, when designing StereoPi, we took into account a lot of small, but very important features.

Power switch so you don’t have to unplug cables

Camera connectors spacing is the average distance between human eyes

Connectors all on the same side

Vertical camera connectors for flexible case design

"Slim" edition of the board without large connectors

Direct USB power without CPU intermediary

Third USB port available on four-pin header

Micro USB for burning firmware to internal eMMC flash

Durable and reliable JST EHR-2 power connector

Support for legacy Raspberry Pi Compute Module 1

StereoPi Standard & Slim Editions

StereoPi Slim Edition (left) and StereoPi Standard Edition (right)

StereoPi comes in two flavors: standard and slim. Most people will want the standard edition. The slim edition is intended for advanced users who plan to integrate StereoPi into another device and don’t need (or don’t have space for) the large connectors. Specifically, the slim edition doesn’t have the USB Type-A connectors, RJ45 Ethernet jack, or GPIO header. Of course, the PCB pads for those connectors are still available in case you want to solder directly to them or install your own connectors.

The Slim Edition (left) leaves off the tall connectors of the Standard Edition (right).

In all other ways, the slim edition is identical to the standard edition. Both support all variants of Raspberry Pi Compute Module (CM1, CM3/CM3+, and CM3/CM3+ Lite).

Accessories & Kits

In addition to the StereoPi boards themselves, we’re offering a variety of accessories and kits so you can tailor StereoPi to your needs.

Power cables

We have two kinds of power cables:

USB power cable allows you to power StereoPi from any USB-compatible power source meeting the minimal power requirements for your specific setup. It can be a computer, power bank, or phone charger.

Short power cable that needs to be soldered to your power source. This is useful when a USB cable is too big for your setup, or when you use your own power source (e.g, BEC on RC models).

Raspberry Pi-compatible camera V1

This entry-level camera is great for experimenting with StereoPi. It’s included in the starter kit.

Sensor type OmniVision OV5647 (5 MPx) Sensor resolution 2592 x 1944 px Angle of view 54° x 41° Video up to 1920 x 1080p @ 30 FPS Board size 25 mm x 24 mm Camera ribbon cable ~20 cm cable included

Waveshare "G" wide-angle (160°) camera

We love this camera and use it in most of our projects! However, it is relatively expensive, so we’re only offering it as part of the deluxe kit.

Sensor type OmniVision OV5647 (5 MPx) Sensor resolution 2592 x 1944 px Angle of view 160° diagonal Video up to 1920 x 1080p @ 30 FPS Board size 25 mm x 24 mm Camera ribbon cable ~20 cm cable included

Short camera ribbon cable

All cameras on the market include a camera ribbon cable approximately 10-20 cm long, which is great for benchtop setups, but unwieldy for compact setups. When space matters, we prefer this short (5 cm) camera ribbon cable.

Mounting plate for two V1/V2 Raspberry Pi cameras

This custom laser-cut acrylic plate makes it easy to mount two V1 or V2 cameras in a stereoscopic setup. The plate has holes for 2 mm screws (not included) to affix camera. It also has cutouts for the camera optics so they will be positioned 65 mm apart.

Mounting plate for two wide-angle Waveshare Raspberry Pi cameras

This custom laser-cut acrylic plate makes it easy to mount two wide-angle Waveshare cameras in a stereoscopic setup. The plate has holes for 2 mm screws (not included) to affix camera. It also has cutouts for the camera optics so they will be positioned 65 mm apart.

StereoPi Starter kit

StereoPi Deluxe Kit

The Team and Story Behind StereoPi

We’ve been making remote-controlled things with real-time video livestreams since 2010. We’ve made robots, boats, planes, copters, and so on. The smallest of these were four-centimeter-long RC cars used for real-time online racing (hello Q-Steer by Takara Tomy!), and the largest was a four-ton iPad-controlled bulldozer. Somewhere in the middle was an iPad-controlled automobile, which took first place on the Discovery Channel in 2014.

In doing these projects, we were always faced with the problem of finding inexpensive tools. For example, in ancient 2011 (before Raspberry Pi!) we created our own single-board computer with the TI DaVinci DM365 SoC. This ended up being our main tool for projects for a several years. However, by 2015, we understood we needed not only to control our drones and robots, but also add more autonomous features. The age of AI and computer vision had arrived. This informed the key requirements for our new tool:

More powerful ARM processor for AI and computer vision algorithms

Compact size for easy integration

Native two cameras support for stereo vision

Painless software ecosystem

Acceptable price (less than $150 for a complete setup)

We searched for existing ready-to-use solutions, but they were all either poor-quality toys or expensive industrial-grade systems. This remains true even today. For example, you can use something like a ZED Stereo series stereo camera ($450), add some "angry" hardware like a Jetson TX2 (~$300 + $200 for carrier board) with support for USB 3.0, but that’s about $1,000 right there.

Or you could get USB stereo cameras on Aliexpress, but not have any way to control the video options and spend most of your time fighting horrible (or nonexistent) drivers to manage an uncompressed USB stream to your single-board computer. Worse still, neither of these solutions is really hackable or flexible enough for some really interesting applications.

That’s why we decided to create StereoPi: two fully configurable cameras, a friendly Raspberry Pi ecosystem with a lot of ready-to-use examples, and a total cost well under $150. In the beginning of 2016, we made a first-generation board on Compute Module 1. In 2017, we made a second-generation board with Compute Module 3 that was ten times more powerful. Now, with this campaign, we’ll finally have a tool that lets us focus on our projects instead of fighting the wrong hardware.

Manufacturing Plan

For StereoPi production, we’ve chosen a full-service contract manufacturer that does everything from component purchasing to final quality assurance testing. Our plan calls for three stages of production:

1. Prototypes (20 pieces, ~3 weeks, completed)

In the prototyping stage, we work with the manufacturer to check that everything is okay with our schematics, PCB, and components. For example, we discovered that our original microSD connector choice was end-of-lifed and there was a market shortage, so we had to find a replacement.

2. Pilot run (several hundreds pieces, ~3 weeks)

This stage comes right before all batch manufacturing and is intended to find hidden bugs and any remaining PCB or component problems. In the worst case, we would have to make all the PCBs over again with fixes, or buy alternative components if we encounter quality issues. In the best case scenario, the manufacturing is successful and we progress to the next stage.

3. Main production (1,000 pieces, +2 weeks from pilot run)

If we gather many more orders than expected, the production time can be lengthened to accommodate additional batches. Delivery will be carried out as units are produced.

Shipping & Fulfillment

We plan to send devices to backers using Crowd Supply fulfillment services, so parcels will be shipped to backers from Portland, Oregon. Delivery within the US is included with the price of StereoPi. Delivery outside the US will incur a surcharge during checkout. For more information, please see Crowd Supply’s guide on ordering, paying, and shipping.

Risks & Challenges

Production: Factory batch production is a difficult challenge and errors can be very costly. Thus, before manufacturing the main batch, we must be sure all aspects of production are double and triple checked. Final PCB drawings, components, assembly procedures, and accessories quality (like cameras) are all tested in close collaboration with our factory before production begins. Our three-stage manufacturing plan is intended to minimize potential errors If we have any problems in stages one or two, we will take action to mitigate them before moving to the next stage. This might take some additional time and money, but it will be worth avoiding a mistake in the main production batch.

Delivery: We have two steps in delivery. First, there is delivery from the factory to Crowd Supply’s warehouse. Second, there is delivery from Crowd Supply’s warehouse to backers. Both steps have potential risks of parcel damage or unexpected delivery delays. For example, Chinese New Year may impact the production schedule and therefore the delivery schedule. We will inform all backers of any delays and what we’re doing to avoid them.

Software support of stereoscopic mode: While developing StereoPi, we were focused on full software compatibility with the original Raspberry Pi, which we managed to achieve. You won’t need to patch a kernel or do some other tricky things to get it to work. Raspbian has had stereoscopic support since 2014, but in all these years, the only mass-produced hardware available for DIY enthusiasts has been the Raspberry Pi Development Board. As such, the stereoscopic feature was used and tested not by tens of thousands of people, but only by hundreds of people. It may be that in some special use cases, you might be faced with some software problems. In our own experience, nearly all stereoscopic features "just work" and in those few cases that don’t work, the Raspberry Pi community helps us quickly solve the problem.