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.

Using the Matlab for LightCommander

Other Parts Discussed in Thread: DLP5500, DLPC200

Hi TI,

I am currently using the Matlab, but I realize that I need to activate LEDs using Light Commander Control Software (LLCCS) before I play around with the Matlab.

For example, if I disable the green LED in the LLCCS, I cannot turn it in on the Matlab via DLP_LED_SetLEDEnable. 

Is there a way to activate LEDs using the Matlab?

 

My another concern is the speed of 'DLP_Img_DownloadBitplanePatternToExtMem'.  It takes about 1 s to transfer 8 bit information to Light Commander.

Is there a faster method to do that?  I am thinking save all images which I will use as dbi files or something in Light Commander's memory, and then load them one by one.  Is this possible?

 

  • Hi Kangbaek,

    Welcome to DLP & MEMS forum.

    Both disable and enable functions with DLP_LED_SetEnable API work perfectly fine.

    First, you will need to build the "solution" using LCCS and run that solution from the LCCS to configure the GUI. Then only you can exercise the LED Enable. Alternatively instead of running the solution configuration from the GUI it can be done from matlab environment, for this you will need to first call RunBatchFile(filename) API. This file is generated when the solution is compiled. RunBatchFile will take care of configuring the hardware for display of images/patterns.

    'DLP_Img_DownloadBitplanePatternToExtMem' - The API is meant for offline download before actual image display starts. Unfortunately the design limits the speed. We suggest you to try downloading ALL the images into LC memory (memory allows upto 120 8bit images and 960 binary/1bit images). Once the downloading of ALL the images is complete you can run-time select any subset of images using DLP_RegIO_WriteImageOrderLut API.

    Regards,

    Sanjeev

  • Sanjeev,

    Thanks for the reply.

    How can I download images into LC memory?  I want to avoid the use of LCCS for convert bmp or tif files to dbi files.

    Is there a way to generate dbi files by myself and download into LC memory via API commands?

     

    Kangbaek

  • Hi Kanbaek,

    dbi format is like a RAW file format.

    There was discussion sonetime back on how to convert the bmp images and download it on LC memory without using LCCS. See this link http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/387/p/113085/647380.aspx#647380

    Regards,

    Sanjeev

  • Sanjeev,

    Thanks for helping me. My lightcommander is totally under my control.

    In the mean while, I think plotting 8 bit image is not fast enough.

    What is the typical loading speed when I use DLP_RegIO_WriteImageOrderLut?

  • Hi Kim,

    Good to know about your progress.

    Yes the download speed not fast, as I said the expected way of working is first download the bitplanes into the frame memory then play with DLP_RegIO_WriteImageOrderLut API to select the subset of patterns to be refreshed.

    The loading speed is same always; it is not dependent on DLP_RegIO_WriteImageOrderLut. For 8bpp pattern the time is b/w 2.0-3.0Seconds. This is the reason we suggest to utilize the frame memory space to store upto 120patterns once and then use DLP_RegIO_WriteImageOrderLut to select the subset. Let us say you have downloaded 100 eight bit patterns (one time download) and you want to select random combination of 50 patterns all you need to do is to use just use DLP_RegIO_ WriteImageOrderLut whenever you want to switch. The switching time is just the time taken to execute DLP_RegIO_WriteImageOrderLut command which is less than < 5mSec time.

    Regards,
    Sanjeev 

  • Hi Sanjeev,

    Thanks for letting me know.

    What is the reset mode of light commander out of single, dual, quad, and global mode?

    Kangbaek

  • Hi Kangbaek,

    I haven't understood your query completely? Can describe it further? Reset of what like DLP5500 or DLPC200 etc..

    Regards,

    Sanjeev

  • Hi Sanjeev,

    I asked you for DLP5500 based on the document:

    http://www.ti.com/lit/an/dlpa008/dlpa008.pdf

     

    Kangbaek

     

     

  • Hi Kangbaek,

    The DLP5500 uses Global Reset.

    The DLPA008 is generic document on the DMD control; actually such low level control of DMD is possible only with Discovery chipsets. The LightCommander/DLP5500 doesn't allow such low level control to the user. Internally it uses 'Global Reset'.

    Regards,

    Sanjeev

     

     

  • Sanjeev,

    Always thanks to your clear answers

    I have a question about the minimum mirror state time.  What is the minimum time to express 0 or 1 for mirror?

    The Light Commander has maximum frame rate of 716 Hz for 8 bit image which indicates the minimum time of 5.5 microsecond.

    Am I right?

    Kangbaek

  • Hi Kangbaek,

    Mathematically you are correct but there is other thing you should understand.

    Here how it is computed -

    For 716Hz, the frame rate is 1/716Hz = 1396uSec.

    DMD is a PWM display system, for a 8 bit image,  bit 0 to bit 7 the display time double from LSB bit to MSB bit.  Therefore minimum time (bit 0 display time) mathematically become 5.5uSec.

    Minimum display time of 8 bit image will be 1396/(2power8) = 5.5uSec.

    As you know the DMD displays bit plane by bit plane. So there is a overhead load time for each bit plane so at this frame rate the bit plane load time become significantly high. Also  during the bit plane loading there is no light out put from the DMD.

    The above thing is expressed by term called as PWM Sequence efficiency % (you can see this in the DLP LightCommander GUI workflow chart) which indicates effectively how much of time for a given frame rate is utilized for light output, for 716Hz it is ~37%.

    This means effectively only 37% of the frame duration is utilized to output light from the DMD. Similarly, you compile solution at different frame rates and see how the PWM Sequence efficiency varying. The higher the frame rate the lesser the PWM sequence efficiency.

    So, 37% of 1396uSec = ~516uSec.

    Smallest DMD display time = 516/(2 power 8) = ~2uSec.

    Regards,
    Sanjeev

  • Hi Sanjeev,


    2uSec is too fast, don't you think so?  I think 500 kHz exceeds the performance of DMD chip.

    Can you provide me a link that describes 500 kHz operation?


    Thanks,

    Kangbaek

  • Hi Kangbaek,

    Let me clear a bit.

    DMD cannot do the 500KHz operation.

    The 2uSec display time mentioned was for 8 bit mode where the LSB bit (bit #0) is displayed time is 2uSec. This is when 8 bit per pattern running at 716Hz frame rate. Such short display times are created by pulsing (turning ON/OFF) the illumination source, in this case Red, Green, Blue or IR LEDs. DMD load time remians fixed. Duration of light source falling on the DMD is varied to create such short display times. Suppose if you are interested in just showing bit #0 @ 716Hz then bit #0 displayed for ~2uSec but the repeatation rate is 716Hz not 500KHz. I hope this explains the situation.

    If you observe from the LightCommander GUI,  for 1 bit per pixel pattern mode, bit plane refreshed at maximum 5000Hz or 200uSec exposure timing.

    In short,

    Maximum display rate for 1 bit per pattern = 5000Hz

    Maximum display rate for 8 bit per pattern = 716Hz

    The LSB bit display time in 8 bit per pattern mode @ 716Hz = ~2uSec.

    Regards,

    Sanjeev

     

     

  • Dear Kangbaek Kim,

    would it be possible for you to provide Matlab code to communicate with the LC?

    All the best!