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.

Pattern Display Validation warning

Hi, in my application, after sending a pattern sequence to the LightCrafter, the 'Validate Data Command' sometimes returns with bit #3 set to 1.  As per the documentation it means "Warning, post vector was not inserted prior to external triggered vector".

What does that mean exactly?

thank you,

Louis Bouchard

  • Hello Louis Bouchard,

    In simple words it is described as - 

    Say you are displaying pattern sequence in the following order, 

    .... Pattern(n-1) ->[Trigger]-> Pattern(n) ->Pattern(n+1) .....

    As shown above after Pattern(n-1) display it waits for external trigger before displaying Pattern(n). As a thumb of rule it is recommended that you are inserting a "black pattern"  after displaying Pattern(n-1).

    So, 

    From the Pattern LUT command (I2C: 0x78 USB: CMD2: 0x1A, CMD3: 0x34)

    The following sequence of pattern definition produce the ***warning***

    ...

    Pattern(n-1) =>  BYTE 2,  BIT 1: '0' - do not insert any post pattern

    Patter(n) => BYTE 0, BIT1:0 , = 01 or 10, External trigger positive or negative

    Pattern(n+1)

    ....

    .....

    While, the following sequence of pattern definition produce does not produce the ***warning***

    ...

    Pattern(n-1) =>  BYTE 2,  BIT 1: '1' - Insert black fill pattern after the current pattern

    Patter(n) => BYTE 0, BIT1:0 , = 01 or 10, External trigger positive or negative

    Pattern(n+1)

    ....

    .....

    Regards,

    Sanjeev

  • Thank you, the wording in the documentation was a bit cryptic, as no where else is the black frame is ever refered to as "post vector".

    So, this clarifies things and brings me to another question:

    I do not use VSYNC or external triggers, as I want the pattern sequence to run freely according to the internal trigger/frame period.  So I set trigger mode to "internal/external".

    But on each individual pattern, I have the possibility to select the trigger type: "Internal Trigger", "Ext positive", "Ext negative", or "No internal trigger".

    I currently set all patterns in the sequence to "Internal Trigger".  Therefore, there is a trigger at every frame.  I never insert a black fill pattern except atfter the very last one, but most of the time it never complains.

    The "No internal trigger" option has the following comment: "Continue from previous; Pattern still has full exposure time". (API.cpp, line 1994)

    So what is the difference between "Internal Trigger", and "No internal trigger"?

    Would using "No internal trigger" and no black pattern be the right solution?

    thank you,

    Louis Bouchard

  • Hello Louis,

    So what is the difference between "Internal Trigger", and "No internal trigger"?

    "Internal Trigger" - Internally there is h/w signal generated in the controller that will go as input to the pattern display state machine.So controller start displaying only after receiving this signal.

    "No Internal Trigger" - It means the pattern will be displayed without waiting for the trigger; it will displayed in continuation to the previous pattern. 

    Would using "No internal trigger" and no black pattern be the right solution?

    Yes your understanding is correct. In short, whenever  a "No Internal trigger"  is set for a pattern, say pattern "N" then make sure the previous pattern, say, "N-1" has "no black pattern" option set. 

    Regards,

    Sanjeev

  • So when I specify the frame period and exposure time for a sequence, if a pattern is set to No internal trigger, is the frame period completely ignored?  Does the sequence advance immediately after the exposure time even if the frame period is longer?

    Also, does this mean that "No Internal trigger" and adding a black pattern is not allowed?

     

    thanks,

    Louis Bouchard

  • Hi Louis,

    So when I specify the frame period and exposure time for a sequence, if a pattern is set to No internal trigger, is the frame period completely ignored?

    Yes

    Does the sequence advance immediately after the exposure time even if the frame period is longer?

    Yes

    Also, does this mean that "No Internal trigger" and adding a black pattern is not allowed?

    System as such allows but you should be aware of what settings you are made. If select, No Internal Trigger and and black pattern, all you find at the output a 230us dark time after pattern(n-1) and before showing Pattern(n).

    Regards,
    Sanjeev

  • Does the sequence advance immediately after the exposure time even if the frame period is longer?

    Yes

    I finally made the test, and it appears this isn't the case, not that it really matters in my application.

    I made a sequence with all patterns set to "no internal trigger" and with black patterns, with a frame period of 1 second and an exposure time of 0.5 seconds: the patterns appear for 0.5 followed by black frames for another 0.5 seconds, so the frame period is not ignored at all.

    Maybe my firmware is outdated?  I use version 1.1.0, but there isn't a more recent one on the TI site.

    thank you,

    Louis Bouchard

  • Hello Louis,

    My apologies, i didn't read your question completely, the Pattern Period is very important, for instance, the pattern rate is globally derived from "Pattern Period" so it has to remain constant. Inserting a black pattern merely adds a dark time of 230us. 

    So Pattern period will not be changed. My earlier answer should have been "NO". 

    Since you set pattern period as 1.0 second and pattern is exposed for only 0.5 seconds,  this would result in remaining 0.5 second of the dark time. As i mentioned above, in your case the black pattern merely runs for 230us,

    in- total = 0.5s (pattern exposure) + 0.5 blank + 230us (because of black pattern) -> Next pattern

    What behavior you are seeing is consistent and expected.

    If you could let us know what sequence you are trying to write perhaps we could help you what is best. 

    Regards,

    Sanjeev

  • thanks, that clears things up!

    My last question was not directly related to our application, it was just to shed some light on that subject that is not explained in detail on the official documentation, and I'm sure other users might have been confused about this, so I wanted to get to the bottom of it.

    cheers, and thanks for your help!

    Louis

  • Hello Louis,

    You are very welcome. We are here to help you. Good luck with your project. Do let us know if you face any problem or need our help.

    Regards,

    Sanjeev