Xiaomi Yi - Genlock Multiple Cameras

Regarding multiple cam rig simultaneous shoot for 360 video or pictures
which, I see, is of some interest for others here in the forum:

what we need is "something" which makes shoot multiple cams at the same time,
ie. with a delay which may vary according to specific needs but it is in the order
of (few) milliseconds.

So far we (for the Yi cams) have:
1): a) wifi in client mode script + b) C&C app, by Andy.
a) does not work with firmwares later than 1.2.0 b) because you need a Pc, it is not easy to use in outdoor shooting
2) Ponerine app in smartphones by Luckylz: it apparently (according to the author) may produce a delay of 2 seconds.

A question to expert ones:
wifi, telnet or bluetooth (leaving aside implementing problems for a moment...) are they means capable to achieve the above order of synchronization in Yi cams?

There would be also a wired connection: anyone knows if it reasonable
to achieve this kind of of synchronization or can suggest a way to synchronize the shooting of a wired connected rig of Yi's?

Thank you to all the script contributors in the forum
and thank you in advance for any help in this field.
 
Looking into testing a possible wired connection via USB (OTG cable aka USB > Ethernet) and a less likely option but will try with HDMI (1.4+ cable with ethernet channel). Anyone else try this?

Seems folks from online searches are getting USB > Ethernet to work on rooted Android phones with busybox so hoping there is a chance here. Will report back if any working results. My goal is to create a faster connection for a 360/VR rig with 6+ cameras and also use it to take photos via multiple cameras for 3D scanning.

PS: Thanks very much for all the great information here and the software (looking at you Andy_S!).
 
Very interesting ajohnclark !
Keep us informed !
 
Many thanks in advance for sharing any achievements you get!
One big problem I see is to synchronize the shutters: have you any ideas about the average sync error we may expect via Usb otg cable?
 
Excited to share anything I find; I'm not an expert/saying this will even work but I'd assume sync would be lot better than WiFi *if* it does work. An idea I had to fix sync issue was to set time/date of cameras the same and if there is 5 second delay then to send a command to record based on a certain time (10 seconds in future let's say), not sure that is possible though.

I'm waiting on 2 test cables to come this week so I'm antsy waiting.

PS: This is what inspired me to think about "wired" options by the way (photo by Jason Diamond/IBC of Odyssey via 360 video Facebook group):
 

Attachments

  • odyssey.jpg
    odyssey.jpg
    339.9 KB · Views: 61
I'm also looking for a way to precisely sync cameras! I'm planning to start opening them up and soldering them together in the next few days... and I believe Andy_S is working on a system-time wifi sync as well. Hopefully there's a way to do this effectively!
 
If making 360 you are planning for, you dont need to sync all of 6 xiaomi. SO I finally figure it out for those of you
who try to do it, the secret is just push 6 shutter button / 3 at the time or can do it one by one till all record.
Please note for you to consider that resolution must be 1280 × 960 & have same framerate for all setting in 6 camera, turn off auto sleep
1. Assamble your 6 Xiaomiyi and press record
2. Do spinning tripod (*motion capture)
3. Clap your hand
4. Record your movie
5. Put all 6 videos in software
6. Audio Sync / Motion sync (*here is when magic happen :))
7. Stitch > Export > Post production (tonality effect and other )
8. Voila! Upload it to youtube !

Happy orbitin! heres mine;) :
 
If making 360 you are planning for, you dont need to sync all of 6 xiaomi. SO I finally figure it out for those of you
who try to do it, the secret is just push 6 shutter button / 3 at the time or can do it one by one till all record.
Please note for you to consider that resolution must be 1280 × 960 & have same framerate for all setting in 6 camera, turn off auto sleep
1. Assamble your 6 Xiaomiyi and press record
2. Do spinning tripod (*motion capture)
3. Clap your hand
4. Record your movie
5. Put all 6 videos in software
6. Audio Sync / Motion sync (*here is when magic happen :))
7. Stitch > Export > Post production (tonality effect and other )
8. Voila! Upload it to youtube !

Happy orbitin! heres mine;) :

Hi Elitecam! That's a really cool video, absolutely!

The people who are looking for sync solutions are actually trying to find a more accurate method of syncing than this. To explain, let's use the metaphor of drummers in a band.

The conductor tells the first drummer to start playing, at "60 beats per minute". After a short delay, he tells the second drummer to start playing, also at "60 beats per minute."

Even though they're both pounding once per second, they're not necessarily in sync with one another - one drummer could be playing each beat halfway between the other drummer's beats. Make sense?

To go back to cameras, assuming you're shooting at 60fps - even when you sync cameras in post, they're only as possibly accurate as your frame rate. In other words, you can't move the track forward or back by 'half a frame', so you can have one camera capturing images directly between another camera's images.

This may not sound like a big problem, but it's the primary issue with DIY 360 rigs right now. For a fast-moving object, like a car, or a person walking near the camera, they can be moving across the screen up to 10-50 pixels per frame. If your cameras are a half-frame out of sync, that means an object will show up 5-25 pixels different from one camera to the next, creating very visible seams.

The problem is even worse when you think about a 3D rig. The way we perceive 3D is the perceived horizontal distance between objects in two different images, called 'parallax'. If the cameras aren't perfectly in sync, when a car drives by, that 5-25 pixel inaccuracy translates to a huge jump in the perceived depth of the car. The car will suddenly look like it's popping out of the screen, or way back in space.

So, syncing in post (especially at 60fps) is a nice solution for doing fun tests, especially for 2D panoramas. But what many of us are looking for is a way to start the cameras precisely in line with each other, so that every camera is "playing to the beat of the same drummer".

Cheers,
Jason
vrcolony.net
 
For a fast-moving object, like a car, or a person walking near the camera, they can be moving across the screen up to 10-50 pixels per frame.

Exactly!
The pronlem may be even bigger for those, like me, interested in pano pictures with fast moving objects.
What we need is a sync way with accuracy of few (less than 10) milliseconds.
Following the forum I see that is hard to achieve via wifi.
Perhaps by wired connection?
 
Exactly!
The pronlem may be even bigger for those, like me, interested in pano pictures with fast moving objects.
What we need is a sync way with accuracy of few (less than 10) milliseconds.
Following the forum I see that is hard to achieve via wifi.
Perhaps by wired connection?

Hi Scuola,

Talking to Andy_S, he believes it's possible to sync using NTP (Network Time Protocol). Though WiFi is an unreliably slow signal, NTP can be used to sync the internal clocks of the Yis (possibly down to the millisecond) and then command all Yis to start at a specific time. That's the solution I'm hoping for at this point, though I haven't ruled out a bit of soldering ;)
 
Hi Jreinjr,
thank you for info about Andy_S project: it would be great, thanks in advance!

....and then command all Yis to start at a specific time.
That is fine for videos but what about single pictures taken randomly? We send a command, let's say, via wifi to shoot at a specific time, at each shot?

though I haven't ruled out a bit of soldering

I have found this for Canon cameras:

http://www.breezesys.com/MultiCamera/release.htm
(Using the remote release socket to fire multiple cameras at once)

I am not expert in electricity/electronics at all; so I can not figure out how to do that with a set of Yis, if actually possible.
 
Hi Jreinjr,
thank you for info about Andy_S project: it would be great, thanks in advance!


That is fine for videos but what about single pictures taken randomly? We send a command, let's say, via wifi to shoot at a specific time, at each shot?



I have found this for Canon cameras:

http://www.breezesys.com/MultiCamera/release.htm
(Using the remote release socket to fire multiple cameras at once)

I am not expert in electricity/electronics at all; so I can not figure out how to do that with a set of Yis, if actually possible.

Hi Scuola, that's another promising application of this technique (if it works) - accurate multi-camera time lapses. Would be really neat.
 
It DOES work. If you want time-sync your cameras, you just need to launch this shell command

ntpd -q -m -p your.ntp.host.IP

-q : quit after host clock is set
-m : don't daemonize (runs in forward)
-p : peer address

After that just do sleep 1 & trigger SOMEHOW the shutter. it COULD sync... (provided cameras process the trigger itself at the same speed...)

You have to realize, that to sync perfectly you cannot have more deviation than 1/250s of the recording start.
 
@Andy_S , Thank you for all your contributions!
If I undesrtand correctly using ntpd we synchronize the internal clocks of the cams and then we send a command to the cams to be executed at the same time.
That is very useful to start synchronized video recording and (picture) time lapse.

When shooting multiple cams for pano pictures with (fast) moving objects what we need is a way (a device) which enable to shoot all the cams at the same time at the photographer choice, i.e. when needed and not only at a specific fixed time.
I found in internet some devices to do that using Gopro hero bus which Xiaomi Yi does not have.

Any chance to achieve that using (usb?) cables with Yi?
 
I disassembled one of the Xiaomi Yi's today and took a closer look at the shutter trigger mechanism. It's pretty dead simple, just a metal cap to bridge two conductors, and it should be trivial to merge all 18 cameras to a single trigger.

Does anyone have any experience with drift on these cameras? I'll need to test this tomorrow because I don't want to solder together 18 cameras only to find that without global shutter, the footage loses sync after 5-10 minutes like they did with my DSLR rig.

sidenote: Removing the camera housing will shed quite a considerable amount of weight when multiplied by 18, and it will also allow me to place the cameras close together when building the rig.

XrnPXuv.jpg
 
Hello Tobias !

I am quite interested by your experimentation !!
Any news since your previous post ??
 
It DOES work. If you want time-sync your cameras, you just need to launch this shell command

ntpd -q -m -p your.ntp.host.IP

-q : quit after host clock is set
-m : don't daemonize (runs in forward)
-p : peer address

After that just do sleep 1 & trigger SOMEHOW the shutter. it COULD sync... (provided cameras process the trigger itself at the same speed...)

You have to realize, that to sync perfectly you cannot have more deviation than 1/250s of the recording start.

If you go into settings on each cam from the android app and select camera clock and say sync to mobile clock time - would this work the same :)
 
That will set the clock in each camera to be synchronised with the clock in your phone, but it won't trigger a shutter etc as above.

You still need to run the script above to trigger the shutter at that explicit time. Don't think anyone has done that yet have they?
 
Hello everyone,
I am new to the forum, this is my 1st post. I have read almost all relevant topics here and I am now 100% prepared to buy YI cam also :) Actually, I want two pieces, for making 3D clips. And thats why I am also trying to figure out how to secure "genlock" on 2 cams. Hardwiring the recording triggers would be probably the easiest sollution...but... First I don't want to lose warranty (which I will anyway, since I will most probably have to fix the lens focus), and second, I want the cameras use also separtely and having them connected by some cable (even thru some built in extra connector) is not so elegant.

My idea was to hardwire two BT remote controllers triggers. Better destroy gadget for 7 USD than the camera itself. But my question is, does anyone have any idea how that can be accurate? I have no clue how BT processes the communication, if there can be some random lags or something like this. Let's say that both triggers would be in the same distance from cameras.

Andrew
 
Back
Top