Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

Downloading 8 bit grayscale image to LightCommander

Other Parts Discussed in Thread: DLPC200

Hi, Sanjeev,

I'm following your instruction in the following two posts to display gray scale image, I'm sure my 8 splitted and packed bitplanes are correct, but the blended image is incorrect, I guess these 8 images should have different exposure time, i.e, first image (LSB) has t exposure, second has 2t exposure, third has 4t exposure etc, then I created a imgOrderLUT with size of 255 and content as 0, 1, 1, 2, 2, 2, 2......, but I can clearly see the single images which are supposed to be blended together even with the highest frequency, am i doing anything wrong? Thanks!

http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/387/t/129054.aspx

http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/387/p/113085/403790.aspx#403790

  • Hi Chi Zhou,

    Welcome to DLP&MEMS forum.

    If you are planning to display a 8bit grayscale image then you can directly create a 8bpp configuration project. 

    The ImageOrderLUT is meant for re-arranging the patterns stored in the frame buffer, where each entry in the LUT has same exposure time. I understand by placing the patterns in order to mimic the PWM sequence from LSB to MSB but its functionality will not yield true 8-bit gray scale.

    By the way what is the exposure time you have selected in the sequence?

    Suppose you plan to use the ImageOrderLUT approach, even if you go by the lowest exposure time (5000Hz binary). For 8-bit grayscale, the LSB bit will be 200uSec, x2 multiplication factor goes upto 25600uSec (25.6mSec) for the MSB bit. Total display time for 8-bit  51000uSec which will roughly yield a 8bit refresh rate of 19.60Hz!!! So, not sure if you are expecting it to match to a regular 60Hz 8-bit grayscale display.

    Let me know if I answered your query.

    Regards,

    Sanjeev

  • Hi, Sanjeev,

    Thanks for your reply, this is my first time using the device, I apologize if I asked too fundamental questions.

    I created a 1bpp configuration project, I set frame rate as 5000HZ, which is the upper limit, then I set camera exposure time as 194us, the total exposure time for 8bit is 49470usec, the refresh rate is 20HZ, but what i saw is a animation instead of a static image, by the way, I used a extreme gray image for this testing, a radian gradient gray from center to boundary, I can clearly see different rings are converging to center circle.

    You mentioned I can create a 8bpp configuration project, if I do this, could I still use DLP_Img_DownloadBitplanePatternToExtMem function, I can not use load .dbi image in my application, since I don't know the format.

    I have another question if you don't mind. I want the kit shows black image when powered on. My solution is creating a project that shows a black image, then I go to "Execute->Program Flash", I cycled the power, it shows the black image as I expected. But before that, it flash a chessboard image, I guess this may come from the firmware, How can i get rid of the chessboard image? My kit is CEL5500

    Thanks!

    Chi

  • Hello Chi,

    You have asked very good questions. Don't feel sorry. We are here to help you :)

    Yes, you can use DLP_Img_DownloadBitplanePatternToExtMem  API to download a 8bpp image. This API is used to download 1bpp image at a time, so for 8bpp image you will have call this API 8 times to download each bitplane of 8bit pattern. In the past user asked similar question please see this link http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/387/p/113085/647380.aspx#647380 I think this will solve your problem.

    Yes, you are correct, the default power-on state is chessboard 'test pattern', this image is displayed until the DLPC200 completes downloading the configuration from the flash. There is no straightforward method of removing this startup test pattern except modifying the firmware. Is the short time display of test pattern is causing any serious issue? Functionally both LightCommander and CEL5500 same, so you are fine.

    Feel free to get back to us if you find any issues.

    Regards,

    Sanjeev

  • Hi, Sanjeev,

    Thank you very much, I was exactly following your instruction as in the link you attached. I'm quite sure my splitting and packing images are correct. I call the function to download each bitplane 8 times, but that's where I was experiencing the wrong grayscale display. Then I guess I have to assign different exposure time for different bitplane, i.e, LSB bit has lower weight, MSB has higher weight, but if I do this, the frequency is not high enough for me to see a static blended image.

    As I described in the previous post, I can see the rings converging to the center circle even with the highest frequency.

    We are using this device for Maskless Lithography, the start up image will cure the resin, if too complicated to change it, it should be also fine:)

    Thanks for your help!

    Chi

  • Hi Chi,

    OK, I think you are mixing two things. The splitting, packing and downloading each bit-plane etc.. all related to just putting the pattern data into the frame-buffer this is nothing to do with the bit-weight and and exposure timing.

    The bit-weight and exposure timings are automatically calculated by the GUI tool, on compiling a solution in the GUI, it outputs a configuration data for the DLPC200 to operate in that particular expsoure setting, on of the important part of ouput called as 'PWM Sequence' that will control the bit-weight and exposure timing. So if you have configured it for different exposure timing, then mere downloading of pattern data not help.

    one more thing, While downloading for 8bit pattern it is very important that you maintain the individual patterns download order, start with LSB pattern then go to the MSB pattern in order. If the order is not maintained it will show incorrect data. Since you are dealing with 8bit pattern, can you perform the same steps via GUI software check if it is still showing what is you expected to see.

    Do the following -

    1. Select 8bit pattern solution.

    2. Select proper exposure timing.

    3. Add 8bit patterns to the solution.

    4. Run the solution.

    Let me know what happens.

    Regards,

    Sanjeev

  • Hi, Sanjeev,

    I know the reason now, I'm still using the image order for 8 bit plane (1bpp) images. I have to make the following change:

    for (i=0; i<8; i++)
    {
        imgOrderLUT[i] = i;
    }    

    modify the code from:
    int nbpp   = 1;
    if((rc = DLP_RegIO_WriteImageOrderLut((Byte)nbpp, imgOrderLUT, (UInt16)8)) != STAT_OK)
    {        
        return;
    }

    to:

    int nbpp   = 8;
    if((rc = DLP_RegIO_WriteImageOrderLut((Byte)nbpp, imgOrderLUT, (UInt16)1)) != STAT_OK)
    {        
        return;
    }

    Now it works:) Thanks a lot!

  • OK. Thanks for letting us know.

    Regards,
    Sanjeev