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.

DLP9000: Non-systematic missing parts of the patterns displayed

Part Number: DLP9000

Hi,

I encountered the following problem:

From the python script in a fully automated mode, I send to the DLP9000 a sequence of commands to display a series of approx 300 patterns, each pattern is displayed twice for 2 minutes each with the interim pauses of approx 15 - 60 min in between, in a pattern-on-the-fly mode. One of the desired patterns should look like that:

But in fact, the DLP displays exactly (!) a half of the pattern with a pixel precision across the whole width of the image (account for the fact that the DLP by default 'flips' the image around the horizontal axis):

For some other patterns, I observed a cut-off at 410 pixels down from the horizontal center line:

And in some cases at 410 pixels above from the center line (not shown here).

This occurs for arbitrary patterns with a rate of ~ 1 : 50 if each pattern is shown twice, and was not observed is each pattern is shown only once. The error was observed when the identical pattern / LUT definition was sent to the DLP, thereafter 'propagating' to a range of next patterns. Several of the next-coming patterns were even not displayed at all. Then all of a sudden, the patterns start being displayed properly again.

This error is not systematic and can not be repeated for the same sequence of commands. It can then occur then on another pattern from the same series, or not occur at all.

Here are some more details on the sequence of commands sent:

For reference, the arguments of each command:

-          mode (here always write ‘w’),

-          sequence byte (here, always 0x00)

-          command byte (com1, com2)

-          payload / data

 

The following sequence of commands is executed by the projector within a single routine.

 

Initialization routine:

-          Set normal power mode ('w', 0x00, 0x02, 0x00, [0])

-          Set pattern on the fly mode ('w', 0x00, 0x1a, 0x1b, [3])

-          Stop pattern sequence ('w', 0x00, 0x1a, 0x24, [0])

-          Disable LED outputs ('w', 0x00, 0x1a, 0x07, [int('00000000', 2)])

-          Set LED polarity ('w', 0x00, 0x1a, 0x05, [0])

-          Set LED current ('w', 0x00, 0x0b, 0x01, [values[0], values[1], values[2]])

-          Enable LED outputs ('w', 0x00, 0x1a, 0x07, [int('00001111', 2)])

-          Enable DMD idle mode ('w', 0x00, 0x02, 0x01, [1])

 

Synthesis routine:

                For pattern in range(1, 300):

                                For repetition in range(1, 2):

                                               - Disable DMD idle mode ('w', 0x00, 0x02, 0x01, [0])

                                               - Stop pattern sequence ('w', 0x00, 0x1a, 0x24, [0])

                                               - Define LUT pattern ('w', 0x00, 0x1a, 0x34, payload)

                                               - Initialize pattern BMP load for master ('w', 0x00, 0x1a, 0x2a, payload)

                                               - Load BMP pattern for master ('w', 0x00, 0x1a, 0x2b, payload)

                                               - Initialize pattern BMP load for slave ('w', 0x00, 0x1a, 0x2c, payload)

                                               - Load BMP pattern for slave ('w', 0x00, 0x1a, 0x2d, payload)

                                               - Configure LUT ('w', 0x00, 0x1a, 0x31, payload)

                                               - Start pattern sequence ('w', 0x00, 0x1a, 0x24, [2]) (infinitely)

                                              

From another thread:

{sleep for 120 seconds, the pattern is ON during this time}

- Stop pattern sequence ('w', 0x00, 0x1a, 0x24, [0])

- Enable DMD idle mode ('w', 0x00, 0x02, 0x01, [1])

 

 {40 seconds are spent for other processes prior to the next repetition of the same pattern}

                              

{Between showing each patter, there are ca 10 – 60 minutes of waiting time in DMD idle mode}

 

Shutdown routine:

-          Stop pattern sequence ('w', 0x00, 0x1a, 0x24, [0])

-          Set standby power mode ('w', 0x00, 0x02, 0x00, [1])

 

=====================

 

Additional notes:

-          After sending each data packet, sleep for 10 ms (except for loading BMP pattern, then no sleep).

-          After sending each command or 64 packets of data, we read from USB and check for command error flag (no error flags are observed)

Please let me know if further details are needed.

Best regards,

Roman

  • Hi Roman,

    Please confirm the result for following cases.

    1.  When TI Released Firmware "DLPR900PROM-9000-v5.0.1" is loaded, do you see Pre-Stored patterns continuously displayed properly.

    2. Can you follow the same procedure you are doing with Python script in GUI. You need to follow all the steps manually in GUI and observe the result.

    Make sure Flex cable connection between Controller Board and DMD Board are properly connected and Full tight. Even if there is improper connection in one of the Flex cable, you can experience this issue.

    Thanks,

    Shivakumar 

  • Roman,

    Can you tell us which FW version, GUI version, and DMD part number (the whole part number) you are using?

    Fizix

  • Hi Fizix, Hi Shivakumar,

    [ Serial # removed ]

    The FW version is 5.0.0.

    We don't use GUI software in these experiments but the one we had was DLP LightCrafter6500/9000 GUI.

    All the cables are properly connected.

    Based on what we observed, it seems the problem has something to do with one of the following:

    1. Is it possible that the 'disable DMD idle mode command' is not fully executed prior to sending the next commands? From the abrupt displayed patterns it looks as the problem is on the DMD controller chip level (since the 'cuts' always occur at a quarter level (we even assume that physically the chip has a height of 1640 pixels and cuts happen at 410th, 820th, and 1230th lines as if the DMD array is set to/from idle state sector-wise).

    2. Another concern was with the memory issues. We don't know why but we observed the problem only when we executed the inner loop commands (see my first post) for the repeated pattern. If we execute the commands for individual patterns only without repetition, we didn't manage to induce the problem (it could also be that 120 patterns tested sequentially were simply not enough, even though with repetition the problem occurs between pattern 15 and 50).

    Could you please also verify whether the sequence of commands makes sense in the inner loop? The point is that when we played with batch recording in the GUI software, the 'configure LUT' command was always recorded twice: before initialization of pattern load and after loading the pattern.

    We also thought that introducing a delay after setting/disabling DMD idle mode would prevent the issue, or even avoiding the DMD idle mode at all. Because the behaviour somehow reminds me the situation when one tries to display an image on when the DMDs are in idle state. The image simply won't be shown, as partially or completely in our case. But these are just hypotheses.

    Regards,

    Roman

  • Hi Fizix, Hi Shivakumar,

    is there any update regarding the issue?

    Regards,

    Roman

  • Hello Roman,

    We are waiting for you to load and test FW 5.0.1 and report whether this resolves your issue.

    Fizix

  • Hi Fizix,

    I'll get back with that in a couple of weeks.

    Regards,

    Roman