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.

DLPDLCR2000EVM: Control Individual Micro-mirrors?

Part Number: DLPDLCR2000EVM
Other Parts Discussed in Thread: DLP2000

I have successfully gotten the dlp2000 evm + beaglebone black combination to work. Now, I would like to be able to control the individual micro-mirrors of the DMD chip at a very low level if possible. I'm not super familiar with the technology but I'm guessing that each micro-mirror is voltage/current controlled and has an addressable location in the array, no? Could someone point me in a good direction? I've read through the programmer's guide, but I don't need to display video. I just want to show predefined black/white patterns and maybe be able to switch from red light to white light and vice-versa.

And if there is a way to do this in Python that would be super ideal. If this isn't possible, I guess I will try writing a driver to abstract the DMD array into an addressable matrix or something.

  • Michael,

    As this is a DLP display chipset, you may be limited in the functionality you are seeking. In particular, you will need to display your patterns as a video stream coming from the BeagleBone Black (or a similar host processor). You could also potentially program patterns to the flash of the system and display these patterns by toggling splash screens, but the flash is not large enough to hold more than a couple images. The DMD's mirror count is 1:1 with the native resolution of the controller (640x360) so you can control individual mirrors to some extent by controlling the video output of the BeagleBone properly. However, you will not be able to exercise direct control over the mirrors themselves in the manner you describe with this chipset.

    In order to achieve the greatest level of control possible over the DMD, you would need to employ one of our DLP sensing chipsets. The LightCrafter 4500, for example, provides this sort of control with custom pattern settings:
    www.ti.com/.../dlplcr4500evm

    I hope this helps.

    Best Regards,
    Philippe Dollo
  • Philippe,

    Paying $1100 more for basic control doesn't interest me, but thanks for the suggestions.

    Best,

    Michael Eller

  • Michael,

    I've been working on something similar - from the research I've done the solution Philippe suggests is your best bet - that is, to supply a custom video stream. Assuming your stream is in RGB888 format, you could get single mirror control by approaching your video frames as a 640x360x3 matrix, and limiting the values to 0 (full off) or 255 (full on), thereby negating any PWM on the mirror and locking them in a position. This allows you to address the mirrors invidually in matrix format, which is what I assume you're looking for. You would likely want to disable all video post-processing in the 2607 controller to ensure that your video stream corresponds 1:1 to the output. Additionally a custom solution to LED control may be necessary to gain full control over the color frames, but this is reasonably easily implemented in hardware by hijacking the flex cable from the projection engine.

    EDIT:

    I forgot to mention you would likely also have to lock refresh between frames in order to negate wipes. See: https://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/video_and_data_display/f/947/t/656135

  • Thanks for your input, Rutger.
  • Hello Michael,

    This TI provided reference code may interest you as well: e2e.ti.com/.../667207

    Thanks,
    Kyle
  • Hello,

    Is there any other approach than this expensive one.
  • Hello Krishna,

    You can use the above mentioned reference code (e2e.ti.com/.../667207) to upload specific user created patterns to the DMD. This is for the DLP2000. However, this is just a 24 bit display that is using the native video input of the 2000 EVM. The goal was to provide some code to enable basic structured light functionality. However, all provided code is running on the Beaglebone Black and isn't doing anything too special with the 2000 EVM (other than a couple user accessible I2C commands that are sent from the Beagle to the EVM). Obviously you can adapt and improve the code as well.

    In contrast, the 4500 EVM (and 3000 EVM) has the code running on the built in controller. Running on the controller enables much more precise control and features. Additionally, you don't need the extra hardware. This enables a faster framerates, bit-frame control, more precise timings, etc. We do not currently offer this full control on the other display EVMs.

    Thanks,
    Kyle