My 4 camera rig

The setup
The last month I have had to walk a lot, so I created a 4 camera rig. The purpose is that I can walk the same trip, in time in each direction, and in theory get 8 images that will form some sort of a panorama. Not something I can stitch together, because the images are not taken at exactly the same time and the GPS is not precise enough to match the two tips. But they create a lot of images for Mapillary.

It looks like this:

The cameras a angled with a 45 degree difference, at -45 deg, 0 deg, 45 deg and 90 deg.

In the ends I have two Xiaomi Yi, at 45 deg (white one, with bottom up) a Sony HDR-AS100V and at 0 deg a Garmin Virb Elite. Each has a 64 GB memory card, because I hate running out of space and the price difference up to 64 wasn’t that big.

Each take an image every 2 seconds and I start them manually. I have learned, that every time I start them, I’ll have to check that they run - AND check them every 5-10 minutes. It is easy to hit the button wrong, or a camera might have run out of power or just gotten into a bad mood. When 4 times as many cameras you will have about 8 times as many failures.

They are mounted on one of the metal bars with holes you can get at the hardware store - don’t know the english name, but they are cheap and works great. I got the screws from Note the rubber o-ring under some of the screws. It will keep the cameras much better in their position than without, and especially the Xiaomis does not respond well to a tight screw.

When I get home
I create a folder named after todays date. I create a sub folder in each named after the camera and its angle, e.g. yi-45deg. Then I always knows what it contains.
I use the GPS from the Garmin, because it is better than my phone. So I use exiftool to create a gpx file from the images (See Geotagging with ExifTool).
I use GPSPrune to watch that gpx trace, because the GPS may create bad points or drift completely.

Then I geotag the other folders and runs Mapillarys interpolate direction script, with the degree correction of each camera. Then I run the remove duplicates script, also from the Mapillary repository, then time split (from same repo). I then look at the first+last 5-10 images from each sequence, because they often contains a hand that is turning a camera on or off. Some times I look at more images and some times I run a script that remove all images with slow shutter speeds. When done, I upload.


This is great info. Thanks for sharing @tryl. These needs to go into the user guide to help contributors who want to use multiple camera setups.

Thanx for sharing, I’ll have a look at gpsprune. I am a bit surprised though that your phone doesn’t give accurate gps positions. I have a samsung galaxy s2, an ipad2 and an samsung tablet and all give very good gps readings as long as the read continuously. If I drive on the motorway I can see in the gps track in which lane I was driving and when I am overtaking.
Try android speedometer app and record a track . You can export the track to gpx format an sent it directly by email if you want.

1 Like

Thanks @travel193
@Harry, My phone is a Sony Xperia Z2 and using e.g. Google maps there are no issues either. But navigators uses a lot of tricks to compensate for errors in the GPS signal. The tracking app I used delivers unfiltered data, so once in a while a single point may be 100 meters off, then the next is ok again. The Garmin is much better, but the other day I encountered that a nice straight walk on the beach acording to the GPS turned into a huge drunken detour into a lot of private gardens and houses, then back again. It took about 20 minutes, then the signal was perfect again.

This is just what the guys at Mapillary are up against, because I could easily had uploaded images with completely the wrong coordinates.

For work I created a website that gathers and stores gps data, which I use to keep track of where I am when I am out on a field job.
I did it with html5 and I guess it is basically the raw gps data without google trying to place you on a road. But I can imagine, that the GPS function in phones use the other sensors to filter out unreasonable data and thereby improving the gpstrack when you continuesly are reading the gps signal. Especially iphones gpsreading gets better if you read for a longer period.
So if you take pictures with your phone with gps coordinates in the exif, it can be a single reading per photo with bad accuracy. But if you use an app to record your track, the accuracy can be much better.
The advantage of using your phone would be that you get more gps readings (every second) and that you don’t need to extract the track from your photos.

Btw, att mapillary they are great in improving lousy gps coordinates, they just don’t show it in the map.

How do you carry the mount, is it hand held?

Yes, it is hand held, but if I don’t use the 90 deg camera I can mount it on my bike using a Manfrotto Super Clamp and a similar piece of metal. I just have to be careful not to use let it get too long away from the handle bar, because the vibrations will cause too much shake.

With regard to my phone, all I can see that the tracks it creates have much more errors than my Garmin. It is not that much extra to do inverse geotagging, so I will continue to use it. It may just have taken too many beatings be deliver good data.

This is neat! Having just finally gotten a Garmin Virb and a Xiaomi Yi and having tested them with a few hours drive (using the Virb facing forward suction cup mounted inside the windshield and the Yi similarly in the back window) I got a tangible interest in multi-camera capturing & rigs for them. Gotta tinker with something soon. Thanks for sharing!

And here is my 4 Yi rig.

I build it for taking pictures in indoor area. An android phone control the 4 camera, and the shutter control is manual (a button on the phone screen).

More pictures here:

I will try it on a bicycle with a pseudo-timelapse (a script loop in the phone)


It looks awesome!!
I really like the piece that makes sure the cameras are angled correctly.

What software are you using to control the cameras?
Is it custom build?
How precise is the timing when the cameras are taking an image, i.e. how much time difference could be expected? Because I ride a bike, timing is much more significant than standing still. As of now, I do nothing to time the images.

Hi tryl,

I’m using a slighlty modified PonerineM. The original release add a 8 seconds offset between each cam, and I’ve removed this to sync the 4 Yi.
I don’t know how precise is the timing, I will test it,
I already saw what I need to change to have a better sync, but it won’t be perfect.
My next goal is to use an Arduino to control the 4 Yi’s shutter to have a better sync and log the subsecond timing.

Having a precise sync was not needed for the indoor pictures as I had to stay static, or the pictures were blurred (dark environment).


Thank you for sharing. I have an extra garmin virb elite and was contemplating setting something up to have them both on the bike at the same time.

1 Like

@tryl which app do you use for gps recordings?.. if I may ask.

My favorite is OsmAnd+, which is a full featured app that uses OSM and has a plugin to do GPS recording. It can also show you where you have been on an offline OSM map, so it is great for Mapillary.
Free version:
Pay version:
Pay version supports the open source development of the app.

GPS Logger ( is easy to use and more light weight. Unfortunately it does not filter bad GPS positions, so you will have to do that afterwards. If you do not filter these, you may see crazy moves like on the map of .

Easy GPS Logger is also light weight, but I have lost a GPS track twice. When I press save it have just failed to write it and left an empty file. It does a good job of filtering bad points.

Open GPS Tracker is nice too. Stable and filters bad points, but it takes a lot of presses to end and export the track. It will also show you your track, but dispite called “open” it uses Googles map.

All in all: OsmAnd (or the paied version +) is stable, fast, uses open data, works offline. It takes a bit of setup and getting used to, but you can navigate anywhere in the World without any data connection.

1 Like

I agree. I can order a class 10 micro sd off of amazon for $22 - 25. I can walk into an small, old Wal-Mart in Hyden, Kentucky ( in the middle of Appalachia; rural and fairly poor ) and nab one in a pinch for $29.

1 Like