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.

DLPLCRC900DEVM: Pattern-On-The-Fly sequence not displaying

Part Number: DLPLCRC900DEVM
Other Parts Discussed in Thread: DLPC900, DLP670S

Hello,

I've been implementing communication to a DLPC900 into my own software. The application loads 12 8-bit patterns on repeat (input and output triggers be required later). I've used the DLP LightCrafter (v5.1.0 with firmware 6.0.0.0) to simulate and compare with the command log. I've noticed that while in the GUI the image header always contains 1358 x1600 for the image dimensions. Considering that there is an active secondary this makes the native image resolution - according to the GUI - 2716x1600  which is equal to the DLP670S array. This was the case when I loaded a 1080p pattern and a 4K pattern.

Questions 1 & 2:

Does the GUI resize the images when it loads them in and is the resolution 2716x1600 required for the DLP670s to work properly?

The GUI will load the patterns in correctly and display them properly so I know the system is okay.

In my software everything mostly works fine. I can change the display mode to pattern-on-the-fly, start/stop the sequence, turn the intensity regulation on/off within my software, and when I load the patterns in at 1080p or 4K resolution it completes without error. However, when I start the sequence the pattern that I see looks to be a large fringe pattern mixed in with the DLP logo (maybe a default sequence). If I read the Pattern Display LUT Config it tells me that there are 12 LUT entries and 0 patterns in the sequence. If I read the LUT Reorder command(0x1A32) it tells me that the it is an invalid command number.

Question 3:

What is the difference between LUT Entries and number of patterns in sequence? I set this according to the bytes sent in the command log of the GUI.

Are there any available examples of loading patterns to flash memory? This was the way that I had hoped to run the system.

Some extra information:

The patterns are loaded as single 24-bit images. The first three bytes are the first pixels in the first three images, bytes 3-5 are the second pixels in the first three images and so on.

For twelve images the image pattern index is 0-3. Bit position is incremented 8 bits between 0-16 for each definition.

LUT config command sets 12 LUT entries and 0 for number of patterns in the sequence ( I got this from the GUI but am not sure if this is correct)

I used the RLE_Special method in compress.c. The result for the 4K patterns is 17283 for both the left and right images. I did notice that the the number of bytes in the compressed image in the GUI was smaller perhaps implying that there is a resize or crop function happening.

I am polling the system to ensure that pattern-on-the-fly mode is enabled.

Thanks!

Evan

  • Hello Evan,

    Questions 1 & 2:

    1. Does the GUI resize the images when it loads them in and is the resolution 2716x1600 required for the DLP670s to work properly?

    Yes the DMD itself only understands the native resolution.  It cuts them in half vertically and sends one half to the primary side controller and the other half to the secondary side controller.  If pre-storing them it does the same and stores the matching half in the flash for the matching controller.

    The GUI will load the patterns in correctly and display them properly so I know the system is okay.

    In my software everything mostly works fine. I can change the display mode to pattern-on-the-fly, start/stop the sequence, turn the intensity regulation on/off within my software, and when I load the patterns in at 1080p or 4K resolution it completes without error. However, when I start the sequence the pattern that I see looks to be a large fringe pattern mixed in with the DLP logo (maybe a default sequence). If I read the Pattern Display LUT Config it tells me that there are 12 LUT entries and 0 patterns in the sequence. If I read the LUT Reorder command(0x1A32) it tells me that the it is an invalid command number.

    Can you tell me what GUI version and FW version you are using?  Are you able to capture a picture of the "fringe" pattern?  Does this happen when you are in Pattern-on-the-Fly Mode or in Pre-Stored Pattern Mode?

    I am not sure why it is showing 0 patterns in the sequence.  Unless you have written a LUT Reorder, I do not believe there is anything to read.

    Question 3:

    What is the difference between LUT Entries and number of patterns in sequence? I set this according to the bytes sent in the command log of the GUI.

    Are there any available examples of loading patterns to flash memory? This was the way that I had hoped to run the system.

    Let's say you have 36 patterns stored in Flash memory.  You can choose to display only 8 of them, even though there 36 in flash, the system will only load the 8 into the DRAM of the controller for display.  So the number of patterns in the sequence would be 8.  Typically the number of LUT entries will be the same as the number of patterns in the sequence unless a re-order has been issued.

    Some extra information:

    The patterns are loaded as single 24-bit images. The first three bytes are the first pixels in the first three images, bytes 3-5 are the second pixels in the first three images and so on.

    For twelve images the image pattern index is 0-3. Bit position is incremented 8 bits between 0-16 for each definition.

    LUT config command sets 12 LUT entries and 0 for number of patterns in the sequence ( I got this from the GUI but am not sure if this is correct)

    I used the RLE_Special method in compress.c. The result for the 4K patterns is 17283 for both the left and right images. I did notice that the the number of bytes in the compressed image in the GUI was smaller perhaps implying that there is a resize or crop function happening.

    I am polling the system to ensure that pattern-on-the-fly mode is enabled.

    There is a great deal going on in your system.  I would like to give you a friend invite to see if we can connect to figure this out.

    Fizix

  • Hi Fizix, 

    Can you tell me what GUI version and FW version you are using?  Are you able to capture a picture of the "fringe" pattern?  Does this happen when you are in Pattern-on-the-Fly Mode or in Pre-Stored Pattern Mode?

    I am not sure why it is showing 0 patterns in the sequence.  Unless you have written a LUT Reorder, I do not believe there is anything to read.

    The firmware and version numbers are DLP LightCrafter (v5.1.0 with firmware 6.0.0.0). Basically everything works correctly within the GUI except it says that the resolution is 2716x1600 in the GUI regardless of the resolution of the images that I am actually loading- I was unsure if it was doing a resize on the images before sending the images. Did you say that the only resolution that the DMD array uses is 2716x1600?

    When I call the LUT config command I am putting 0 in for the number of patterns but the GUI also put this value in. I was going off of the command log to ensure that I set it up correctly.

    Notice line 13 has 0xc (12) as the number of LUT entries and 0 for the number of patterns.

    Also note that the image header has the image width as 0x54e and image height as 0x640 - which is 1358x1600 but the images that were loaded were 3840x2160. I was unsure if the GUI was first resizing the images to 2716x1600 - I understand from the documentation that it splits the images vertically and the primary is loaded with the left half and the secondary is loaded with the right half but the images were a higher resolution when loaded from disk. My software does not do this. 

     

    Let's say you have 36 patterns stored in Flash memory.  You can choose to display only 8 of them, even though there 36 in flash, the system will only load the 8 into the DRAM of the controller for display.  So the number of patterns in the sequence would be 8.  Typically the number of LUT entries will be the same as the number of patterns in the sequence unless a re-order has been issued.

    I see, so should I declare 12 patterns in the sequence when I call LUT config? As for programming the flash memories for prestored-pattern mode I have been unable to start this. I wanted to ensure that the RLE enhanced encoding was working correctly but I could not get this intial portion to work in my software. The documentation to load the images to flash does not contain an example and I could not figure out how to do this in the GUI so I did not have much to go off of.

    Note that the pattern definitions and everything else is the same as I described in the extra information. I'll try to snap a picture of the sequence that I get while running through my software.

    Thanks,

    Fizix

  • I did notice that the number of patterns in the sequence was zero because I had coded it to repeat so I could confirm that the images where being loaded correctly. Now the correct bytes are displayed in the GUI for this field.

  • Hello Evan,

    Please see my private message to you so we can connect directly.

    Fizix

  • Hello Evan,

    Per our offline conversation, you are working with the projector manufacturer on this.  I am going to close this ticket for now.  If needed it can be re-opened for two weeks.

    Fizix