An open source stereoscopic camera based on Raspberry Pi

Feb 13, 2019

Funded, Mechanical Drawings, Synchronizing Cameras, and More

by Eugene Pomazov

Today marks two weeks since we launched our campaign, and we’ve already at 109% funded — thank you! This means we will move forward with StereoPi production. More on that in future updates. In the meantime, the campaign still has 25 days to go, so there’s time yet to get your slice of the StereoPi!

Frequently Asked Questions

Since launch, we’ve received and answered a lot of backer questions. Here are the most popular questions and our answers.

1. How does StereoPi synchronize its cameras?

We plan to maintain full compatibility with the stock Raspbian distribution, which is why StereoPi synchronization is implemented in the Raspbian kernel. For more information, check out this Raspberry Pi forum thread about synchronization in stereoscopic mode.

Under the hood, the system first captures an image from one camera, and then captures an image from the second camera. The delay between captures is about one millisecond, which had no noticeable effect in any of our experiments. So, for most users, this current method of synchronization is a great implementation to use.

Of course, some of you will want to squeeze the most you can get out of StereoPi’s features, perhaps for some industrial tasks that need to run continuously 24/7, so let’s go one level deeper. At the hardware level, both cameras are fed with the same PLL clock, but each camera module also has its own 25 MHz clock (for V1 cameras), which will slightly differ from camera to camera. Each camera captures frames according to its internal clock and puts those frames in its own buffer.

After a long period of time (several hours or days), you may notice "drift" between the cameras, and frames become unsynchronized. That said, in our own experiment recording an on-screen iPad timer with 0.01 second accuracy with two cameras for eight hours, all the images remained synchronized. However, maybe we were just lucky and maybe we would get different results if we warmed up one camera and cooled down the other to force the oscillators to work under different conditions. In any case, if you are looking for ultra-stable synchronization, we can suggest two approaches:

As for our own projects, we will use the synchronization implemented in the Raspbian kernel , as it is more than enough for all our needs.

2. How can I synchronize two StereoPis?

When I was a student, our physics professor asked us a question: "How do you synchronize two timers on two distant planets?" The simplest approach was to put light source right in the middle between the planets and emit a light beam in both directions. You should start timer on each planet right after receiving this beam. The same set up will work with two StereoPis. They can be near each other, or hundreds of meters apart. Here’s what you do.

If your StereoPis are near each other, you can use GPIO, Ethernet, or USB Wi-Fi to sync them. Of course, if one Pi is the "master" and another is the "slave," then the slave will receive the command from master after some delay. So, the ideal approach is to connect the pulse of some external timer (e.g., an Arduino-based) to both StereoPis. You can also use such a set up simply to add timestamps to your records for later synchronization, as opposed to literal, real-time synchronization.

Have you heard about Velodyne 3D lidars? They are popular among autonomous car manufacturers, and you can find it in most photos of autonomous vehicles. Every Velodyne lidar has an input for connecting a GNSS (GPS) system. No, the lidar doesn’t want to obtain its coordinates. It uses GNSS to get a precise timestamp from satellites for good synchronization of point clouds captured by several lidars. So, if your StereoPis are far away from each other, you can use readily available and inexpensive GNSS modules to synchronize them.

3. How can I mine Bitcoins on StereoPi?

You need to wait until the announcement of the Raspberry Pi Compute Module 19+ with quantum computing support. Until then, it is a bad idea to use StereoPi for crypto mining.

4. What’s wrong with your wiki?

Some of you noticed that our wiki page does not load and results in a DNS resolution error. Please accept our apologies for this inconvenience. Our wiki is hosted separately from our main site, and we changed our DNS entries about two weeks ago. If you first visited our site, and then try to access Wiki, you may witness the DNS resolution problem. This might happen if there is a stale DNS entry cached either on your own device or on your ISP’s servers. Here’s what can you do to fix it:

Mechanical Drawings

We noticed on Twitter that some users have already begun to design cases and camera support plates for their StereoPis. We are happy to share with you our drawings of everything we used. There are 3D STEP models of StereoPi slim and standard editions, STL files of our cases for basic and 360° experiments, and laser cutting drawings for the camera support plates. You can find all these goodies on our wiki.

Sign up to receive future updates for StereoPi.

StereoPi is part of the Microchip Get Launched design competition!

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects