GH1 Stereoscopic Rig Collaboration

David Cole

Well-known member
Beampath (www.beampath3d.com) has recently been working on a GH1-based stereoscopic rig with some success. In the spirit of the great GH13 hack, we'd like to share our results so far and appeal for collaborators.

What we have: an approach to getting the 2 GH1's synchronized, a mirrorbox rig that is optimized for the GH1s, and a process for shooting GREAT 3D using the rig.

What we don't have: perfect sync.

This is not our first rodeo with DSLR 3D rigs. In fact, our first rig was 5D MII-based. We failed to achieve adequate sync with the 5D's and all hope that the Magic Lantern firmware enhancement would come to our rescue has faded. But, there is good cause to be optimistic about the GH1. Most importantly, the GH13 firmware has opened up a world of possibility in image quality and customization of camera functionality to enhance 3D. Secondly, even with our current setup, it does work... sometimes.

In the next few days, we'll post our approach, testing methods and results so far. Hopefully, we can divide the task of refining the sync controller and optimizing the firmware for stereoscopic 3D among other stereo enthusiasts. It would be fantastic if we could leverage the same spirit of collaboration that GH13 enjoys.
 

Attachments

  • Gh1-mbox_rear_topview.jpg
    Gh1-mbox_rear_topview.jpg
    52 KB · Views: 0
V. intersted in this myself. I don't have a GH1 yet (might hold out for the GH2), but a whole bunch of suggestions and tips. I'll wait till you post.
 
Is it your intention to sync focus, inter-ocular, apeture, WB, etc... in addition to the requisite sync time? Well, i suppose you have one hell of a challenge ahead of you just for the latter given that you have no sdk to work with.
 
Is it your intention to sync focus, inter-ocular, apeture, WB, etc... in addition to the requisite sync time? Well, i suppose you have one hell of a challenge ahead of you just for the latter given that you have no sdk to work with.
Tonpole,

Sync is first. It's the thing that thwarts DSLR stereo rigs and it has to be perfect.

Inter-ocular and convergence are external functions (controlled on the mirrorbox itself) and there are off-the shelf controllers for those. We're currently manually controlling Inter-ocular and convergence, however. Zoom and rack-focus would be nice - but also are customarily handled external to the cameras proper (on external motor-controllers).

What will be interesting, once sync is nailed, is optimizing the codec parameters for the best stereo. There are few (if any) cameras out there that give you such access to the innards that the GH13 hack affords.
 
What the hell, got some time.

Sync is the big problem:

For the uninitiated, syncing two cams cannot be done in post - they need to be synced at the pixel level, ie. each camera should begin each frame at exactly the same time. On pro cameras this is done via 'genlocking' - basically a connection between the two cameras that tightly synchronises frame capture.

Without this, the cameras have a random gap between frame starts, anywhere up to 1/2 frame. So if you shoot 24p, the cameras will be randomly out up to 1/48th of a second, and you have no way to predict what the error (delay) will be at any given time.

In 3D this is catastropic, at least if there is any significant motion in the frame. The delay pushes moving objects forwards or backwards in 3D - really disconcerting. It's not too bad on low motion shots, but it falls apart quickly.

Solutions:

1) hardware mod (link the cameras somehow at the circuit board level)

2) External sync box. This powers both cameras at the same time, then measures their sync by comparing their composite outputs. It then reboots the cameras, delaying power to one to account for the measured delay (Google 'LANC Shepherd' for an example).

3) firmware? If some two way communications would be developed (eg. by connecting two cams via their USB ports), it might be possible, or at least to reduce the possible error significantly.

If we don't find a hardware or firmware solution to sync, the best you can do is shoot at 50p / 60p, because the maximum error will be smallest (1/100 or 1/120). The GH2 is rumoured to have those rates at Full HD.


More sync
:

Frame sync is the most important, but it would also be much easier if exposure, white balance, zoom & focus could also be synchronised, ideally in real-time. Firmware could do this.


Camera mounting:


Assuming you don't want to use a mirror box, the closest you can get the GH1 lenses with the bodies arranged side-by-side is approximately 12cm - DSLR bodies aren't ideal for this.

It's not necessarily a problem, but it does mean that you need to observe a minimum distance from your closest subjects, else the 3D will be uncomfortable (or impossible) to view. So closer lenses are better.

A popular solution for still photography is to turn one body upside down, gets the lenses closer. This won't work for video though, due to rolling shutter (jello). An upside down camera will have reverse jello, which would be useless for 3D. Obviously it depends on how bad the jello is, but you want to avoid it if at all possible.

GH2 was rumoured to have a global shutter (ie. no jello). If true that would make upside-down possible.

Looking forward to your results Dave.
 
Last edited:
I'm not convinced you will get 2 GH1 synchronised.
Sol. 1) requires very good knowledge in electronics and GH1 design, and is very risky.
Sol. 2) I can bet there's a tiny random factor that never gives the exact same boot time
Sol. 3) It's already heavy research work to just change a number for the bitrate, it would be insane to think you can synchronise 2 cameras by reverse engineering the firmware

On the other side, Panasonic offers a 3D lens solution : your frame is divided by 2, but at least no more synchronisation problem (focal/exposure/capture time).
 
Sol. 1) requires very good knowledge in electronics and GH1 design, and is very risky.

True, that doesn't make it impossible. One thing I've been trying to figure out is if the main IC has a genlock pin. Some ICs do apparently. This would be relatively simple.

The next option requires synchronising the crystals on the board. This is hairy and way beyond me, but someone with experience might be able to do it.

Sol. 2) I can bet there's a tiny random factor that never gives the exact same boot time
You're right, but these devices can measure the error and display it, so if you find it's too high, you just reboot the machines again. They work great for many people.

Sol. 3) It's already heavy research work to just change a number for the bitrate, it would be insane to think you can synchronise 2 cameras by reverse engineering the firmware
The SDM replacement firmware for Canon cams does precisely that, so it's not impossible.

On the other side, Panasonic offers a 3D lens solution : your frame is divided by 2, but at least no more synchronisation problem (focal/exposure/capture time).
Yes, at one fixed interocular, at half-res per-eye, probably with zoom limitations (their camcorder version doesn't allow zoom at all) etc. A conversion lens like this solves sync, but makes everything else totally inflexible.
 
Agree that it's not a sure fire bet that we'll succeed at this, but, we have achieved excellent sync - just not every time. The darnedist thing is that we can't (yet) determine if the cameras are in sync or not, until after the shot. If we had the simple level of sync feedback that a stereo LANC controller provides for appropriately outfitted camcorders, we'd be in hog heaven.

As for anamorphic lenses... there certainly is an amateur / enthusiast market emerging where that quality is acceptable. But, if we're successful in twinning GH!1's, we'd have a full HD X 2 stereoscopic camera with output specifications that meet or exceed the requirements of the major stereoscopic content distributors (e.g. BSkyB, BBC, Discovery 3D...).

I'm not sure that looking forward to a firmware patch that could, for example, toggle a data line on the GH1 USB port to talk to an external sync controller is insane or even unwarranted. One remains hopeful!
 
For starters, here’s a list of the apparatus that we’re using:

1. 2X GH1’s with the GH13 hack

2. 2X SanDisk Extreme 16GB cards

3. 2X Olympus 9-18mm lenses (among other lenses)

4. 3D Film Factory Mirrorbox (aka beamsplitter) http://www.3dfilmfactory.com/index.php?option=com_content&view=article&id=52&Itemid=76 We’re using ad INDIE RIG, but the 3D-BS MINI RIG would be ideally suited to the GH1.

5. Peter Wimmer’s free 3D Camera Sync Tester software (http://www.3dtv.at/Knowhow/Synctest_en.aspx) running on a PC with an old-style CRT display (hope you kept one around).

6. Dual-trace oscilloscope. Just about any dual-trace scope will work, but we’re using a Hantek DSO-2150 USB-based scope. They are cheap and effective.

7. Breakout cables for the Mic/Remote jack.

8. Breakout cables for the AV Out/Digital jack… specifically we cut the computer-plug ends off of two spare GH1 USB cables.

9. Twinned shutter-release remote switch, which places the appropriate resistance value to toggle recording onto the remote pins of each GH1 simultaneously.

10. Twin power control. This is the heart of our attempt to sync the GH1s and it MAY be destructive to the cameras (however we’ve been at this for two months and have yet to have a single hiccup). We’re eternally switching the external power input to both cameras, while leaving the cameral power switches in the ON position. We’ll provide a diagram of our simple power control (use at your own risk!).
 
Interesting David. So triggering video with a shutter release works? But it doesn't give you reliable low-error sync? Is it at least better than just randomly hitting 'start', ie. is the max error at least less than 1/2 frame that way?

Displaying the error could be done with an external box that monitors the composite outs. I'm sure they already exist, but I could theoretically build one (I'm a programmer and I've dabbled with microprocessors a bit).
 
Interesting David. So triggering video with a shutter release works? ....

I believe the remote port to be polled, so on it's own it does not work for sync. (It would be the cat's pajamas if the remote port generated an interrupt - but I've yet to find the camera where that happens)

In any case, it's a one-two punch with our approach. Punch 1 - Power-up the cameras simultaneously, using external power (I'll post details). Punch 2- Send the remote shutter release trigger simultaneously.

I'm getting a bit ahead of my plan to provide detail on what we've tried, what has worked, what has not, how we're testing and what we plan to try next. I'll try to fill in the blanks with some detailed posts over the next few days.

Glad to see some interest!!
 
If we don't find a hardware or firmware solution to sync, the best you can do is shoot at 50p / 60p, because the maximum error will be smallest (1/25 or 1/30). The GH2 is rumoured to have those rates at Full HD.

Thats a long shot. The rolling shutter will cause noticable issues without precise sync. Your only hope for a production ready system is to break the cameras open and find the ex sync pulse, if one exists. I hope you got enough cash for two more GH1's.
 
Thats a long shot. The rolling shutter will cause noticable issues without precise sync. Your only hope for a production ready system is to break the cameras open and find the ex sync pulse, if one exists. I hope you got enough cash for two more GH1's.

Maybe... and the thought of breaking these cameras (open or otherwise) has certainly crossed our minds over the past 2 months! There is, however, a hopeful alternative that may get us the level of performance that can be had from two LANC-sunk cameras.

To be clear about this: the 1-2 punch approach described above works about 70% of the time. By works I mean sync so tight that the electron gun scanning in a CRT isn't fast enough to show sensor phase disparity between the two cameras. If we can determine why it's a 70% success rate and not 100% - or - if we can predict that we're in the 30% fail zone and try to power-up the cameras again, we'll be golden.

So - I assert that it is premature to call the efforts to sync by camera surgery, "your only hope." That said, there are two VERY interesting pins on FP9004, on the GH1's main PCB, labeled CMOS HD and CMOS VD - if all else fails.
 
Last edited:
Here are the details for ganging DC power-in and the shutter release remote control:

DC Power In:
GH1_gang_power.gif

Note: This has some risk associated. We've used it a LOT without incident, but, you never know. A good, regulated power supply is a must to avoid potentially damaging surges. Use at your own risk.

Shutter Release:
gh1_gang_shutter_remote.gif


and here both controls are installed in a tripod-mounted box:

GH1_mbox_controller.jpg


To use:

1) turn the gang-power switch off,
2) turn the camera power switches on,
3) turn the gang-power switch on (at your own risk!),
4) begin and end recording (in creative movie mode) with the shutter release momentary switch,
5) power the cameras down using the camera power switches - not the gang-power switch
... lather rinse repeat ...
 
Last edited:
I've just had a thought - if the random missyncs you're seeing are merely the result low-frequency polling, then a simple firmware mod would be to find & up the polling rate.

Or, your 70% success rate could indicate that polling is running at a lower priority and is occassionly interrupted by something.

Are your success rates consist over several takes in the same session? Or is it random with every take?
 
We've found that second and third takes without cycling the power with the gang controller are more and more likely to have sync drift. We now limit to a single take between power cycles (and still get the 30% sync-drift).

My hunch is that there is something non-dererministic in the power up / initialization in the cameras that sometimes results in the clocks being off. This is often observed in LANC-controlled stereo camcorder rigs. The solution is to power-cycle again with a LANC controller.
 
Here are the details for ganging DC power-in and the shutter release remote control:

DC Power In:
...
Note: This has some risk associated. We've used it a LOT without incident, but, you never know. A good, regulated power supply is a must to avoid potentially damaging surges. Use at your own risk.

My idea is the same, except that I would try to avoid plain switches.

Shutter Release:
...

Also similar observation as above.
You said that you have 70% success rate. What does it mean? How do you define your success rate? Less than .... 1ms missynch, measured by Wimmer's programme?
 
We've found that second and third takes without cycling the power with the gang controller are more and more likely to have sync drift. We now limit to a single take between power cycles (and still get the 30% sync-drift).

Have you tried powering the cams without memory cards? Not convenient, but worth a try to see if that is causing the randomness.

Of course the real question is how frame capture start is actually timed internally. Either it's engaged from scratch every time you start a take. Or the relevant clock is initialised once at boot and never changes, ie. regardless of when you begin a take, it may wait for the next internal frame 'pulse' before it actually starts recording.

In the 2nd case, a synchronised trigger mechanism really plays no useful part (except that you at least don't have to find the frame-level sync in post).

Anybody know how this usually works?
 
Back
Top