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 sequence LUT Pattern Number questions

Other Parts Discussed in Thread: DLPC350

I need some help understanding how to setup pattern sequences in the LC4500 and DLPC350:

1.)  Mapping from pattern sequence LUT entry to flash image

DLPC350 Programmers Guide, Table 4-1 step 7: "Pattern Data: Internal trigger, Image index 0"

The guide is unclear and I need some help understanding what is happening on this line.  What I think is happening is that each LUT entry has a "Pattern Number" and this pattern number is actually an image index into the Image Index Configuration mail box.

The Image Index Configuration mail box has the Flash image indexes loaded.

The Pattern Number has a max value of 24 so to get Flash image 42 to display as a sequence I would need to:

Set the Pattern LUT ptr to 0. Open the Image Index Configuration Mailbox. Write the 42. Close the mailbox.

Set the sequence Pattern Number = 0. It would then actually load flash image 42.

Is this correct?


2.)  Bit plane weight for each sequence

The DLPC350 users guide states "Table 2-69 illustrates which bit planes are illuminated by each pattern number"

This is very confusing.  Does this mean that if I index flash image 42 (say 1 bit monochrome) with Pattern Number 0 I get a lower bit weight (on time) than if I index it at Pattern Number 7?  Do the Pattern Numbers carry more semantics than just the index value into the Image Index Configuration array?

3.) Exceeding the limit of 24 flash images?

The Variable Pattern LUT table allows 1823 entries.  But each sequence LUT Pattern Number is limited to 0-24 entries. 

That appears to limit the maximum number of flash images that can be indexed to only 24 (instead of 1823).

Is there any way around this limit?

Thank you,

-Jon

  • Hi Jon,

    There are two types of LUT for the DLPC350 in pattern sequence mode. A pattern LUT and an image LUT.

    The image index stores which images the pattern sequence will load into the buffer. It does not contain any other details about the sequence.

    The pattern LUT sets individual pattern settings such as bit depth and color, but the individual entries do not have a specific image index specified. Instead each pattern entry contains a flag for a buffer swap. If the pattern has a buffer swap enabled the next entry in the image LUT will be loaded into the buffer.

    The pattern number refers to which bitplanes from that 24-bit RGB image will be displayed for the pattern. Table 2-69
    "Pattern Number Mapping" documented which bitplanes from an image will be used for a pattern depending on the selected bitdepth and pattern number. 

    To answer your question more directly:

    1. No, that is not correct. 
    2. No, as mentioned above the actual pattern LUT does not contain an image index. The pattern number and buffer swap determine the data displayed.
    3. Pattern number determines which bitplanes from a 24bit RGB image to use. You can add up to 1823 entries in the pattern LUT.

    Reading through Pattern Display examples of the Programmers Guide should help as well.

    Are you using the LightCrafter 4500 GUI or writing your own application code?

    Best regards,

    Blair

  • Thank you.

    I was having difficulty understanding how the Pattern LUT knew how to index into the Image LUT.


    I rejected the idea of order alone because the number of Variable Pattern LUT were much larger than the Image LUT.  So that did not make sense.  The key concept was the buffer swap bit incrementing the Image LUT ptr.

    It would be helpful to add this concept to the 350 Programmers manual Pattern Data Definition Buffer Swap section.

    I am experimenting with the 4500 GUI but would eventually like to be able to control the 4500 via software.  My goal is to display about 1000 unique monochrome images from flash.  And I can now see how they are batched together into RGB in the sdk, but I could not understand how the flash image indexing from the Pattern LUT worked.

    Thank you for your prompt reply,

    -Jon

  • Hi Jon,

    One additional note about using the flash images. Each flash image has a loading time which is dependent upon is size after compression. Some loading times are as short as 80ms while others are 300ms. If a buffer swap occurs before the controller had time to load the new image, the displayed data will be incorrect.

    Thank you for the feedback about the programmer's guide, I will forward it to our team. When you start developing you own application, don't hesitate to ask questions about the API.

    Good luck with your application!

    Best regards,

    Blair

  • I have used the standard API library along wiht other source and header files from theGUI. I've tested out the commands for turning off LEDs or changing patterns and everything works great.


    I am having issues getting the patterndisplay mode to work properly. I've used the following code:

    LCR_SetMode(TRUE);

    LCR_LoadSplash(1);

    LCR_AddToPatLut(0, 1, 8, 1, false, false, false, true);

    LCR_SetPatternConfig(1, 1, 50, 1);

    LCR_SetExposure_FramePeriod(10000, 10000);

    LCR_SetPatternTriggerMode(0); //change to 1 if it doesn't work

    LCR_SendPatLut(void);

    LCR_SendSplashLut(); <----- ISSUE HERE

    LCR_ValidatePatLutData(); <----- ISSUE HERE

    The issue I encounter is SendSplashLut requires two entries..... (unsigned char *lutEntries, unsigned int numEntries).

    The pointer is causing issues! What do I substitute for *lutEntries?

    Thanks for your help!

    -Evan