This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Synchronizing Two Projectors in External Pattern Mode

Hi,

My objective is to have two projectors synchronously displaying 1-bit external patterns at 1440 Hz.

My initial approach would be to get two DLP LightCrafters, connect both projectors to a dual-head GPU or dual-head module (i.e. Matrox DualHead2Go), enable VSYNC, set both projectors to external pattern mode through USB, and feed patterns as per usual.  Can I assume some level of synchronicity between the two projectors?  That is to say, if both projectors receive the same 24-bit frame, are the individual DMD patterns from both projectors, at any given time instant, identical?  If not, can I guarantee some maximum amount of latency between the two projectors?

Also, I'm curious whether similar steps can be taken to synchronize two Pico v2s.

Best regards,

Matt

  • Matt,

    First of all, the current version of the software only supports internal pattern mode. So you can download 96 monochrome patters into each system and then use the an external trigger output signal to force both LightCrafters into displaying each pattern at the same time. The monochrome patterns are just a series of 608 * 684 bitmapped (BMP) files. 

    Our next version of the software currently in development will support external pattern modes. With external pattern mode, the VSYNC triggers the display of patterns in both systems. Note that while one buffer is being transferred, the previous frame is being displayed, so there is a one buffer lag in the system.

    Also, the HDMI inputs are triggered from VSYNC, so both LightCrafters can also display the same 24-bit RGB image at 60Hz. Pico V2's output are also triggered from VSYNC signals, so you should see a similar synchronization.

    Please note that there might be a few nanosecond differences between systems due to slight differences in PLLs that drive each system. 

  • Matt,

    Please excuse my previous post. I did not fully understand what you were asking. 

    To use the external patterns (through HDMI input), just configure the Display mode to HDMI video. Then on HDMI video set the resolution to 608 x 684, at 1 bit depth and the appropriate frame rate. The pattern rate will be a multiple of 60Hz. Since the displayed 60 Hz image is composed of 24-bit planes, at 1-bit depth, there are 24 patterns 1-bit patterns displayed in 60 Hz. This leads to a 1440 Hz frame rate.

    As an example, here is an image of the GUI settings:

    Both LightCrafters will project the image sent by the graphics card. The LightCrafters will be synchronized to the VSYNC signal of the graphics card. 

  • Hi Pedro,

    I noticed a comment you make about the Pico 2 being triggered from Vsync on the hdmi and I am a bit confused. I have a pico 2, and have been doing a lot of experimentation with 1440 fps mode, and am still having major problem with dropped frames. My Core i7 pc with nvidia 980gtx recognises the pico 2 and the 1440 mode does work, but every so often i get dropped frames or extra frames.  Pascal mentioned that the Pico 2 has an internal oscilator and it might not allways be in sync with the incoming signal, but what you say seems to contradict this .  I've recently being generating output in realtime from within a Java framework, and have been using the system.nanotime timer to try and send frames at evenly spaced intervals, but am still getting missed frames, every few seconds, i seem to miss a frame. 

    any thoughts?

    thanks

  • Hi Gavin,

    Maybe I can help...

    The fix might be to set your pico 2 as the primary monitor.  In windows, right click desktop, select the tab option "select resolution", select the correct display, and click "Make this my main display" to set it as your primary monitor.

    When you set a display as the main monitor, the gpu and display run on the same clock.  When a display is not the main monitor, the gpu and display may run at different rates.. possibly resulting in "dropped frames or extra frames".

    Enabling vsync in your apps will help too; it's a much cleaner approach to using "system.nanotime timer to try and send frames at evenly spaced intervals".

    Cheers,
    Matt

  • Hi Matt, 

    thanks for the info, I'll try that tonight.  I really has been very frustrating trying to get this sorted. All the other components of our project are working fine, but the stuttering and skipping of the display has had me pulling my hair out for months. Im pretty sure in processing, vsync is enabled by default when using opegl, but I'll check that too.