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.

DLPLCR4500EVM: One region not displayed when using pattern sequence & Vsync

Part Number: DLPLCR4500EVM
Other Parts Discussed in Thread: DLPC350, TFP401

The ultimate purpose I'm trying to achieve is to have 100HZ with the blue LED only. 

I set up three 6 bits blue blocks as the sequence and pattern exposure 3000, period 10000 us, same as the picture below: 

Then I hit 'play' under 'validate pattern' in the Pattern Sequence start/stop/pause tag.

I then turned on the video I want to display, in this case gratings generated using Psychopy. The video is set as the pixel size of the DLP, and to be played in fullscreen mode. But one strip of the screen seems to be blocked somehow (question mark below). Any idea what this may be caused by? 

Cheers,

H

  • Hi Huayi,

    I don't quite understand the problem you're having. Can you show me a picture of the image you expect to see?

    What is your video source (frame rate, etc.)?

    Thanks,
    Paul
  • Hi Paul,

    I don't really have a picture. But what I expect to see is for the grating (black & white strips) to fill the whole screen. But right now, the region marked by "?" (my previous post) is block by bright light and the grating (or any video I want to display) does not show up there. 

    The frame rate is 100HZ, the video source is fed into the DLP via HDMI from the graphic card of a desktop. The desktop recognizes the DLP as a 3rd screen. 

    I hope it's clearer this time. I'm very stuck with this problem. 

    Cheers

    Huayi 

  • Hi Huayi,

    Is the video source resolution 912 x 1140? If the input resolution isn't exactly right, you'll get artifacts and unexpected behavior.

    -Paul
  • Hi Paul,

    I figured out the resolution issue. But now I have a new problem. I want to use the DLP to project at 100Hz with only one color (preferably blue). My graphic card is set to 912x1140 @ 100Hz 16bits. In pattern sequence mode, I added in a single blue pattern 8bits, pattern duration 9ms, pattern period 9ms. Then, I generated pattern with a python based software called psychopy, which is generating the pattern with R,G &B. The psychopy pattern is flickering every frame, e.g. frame 1, contrast = 1; frame 2, contrast = -1. I measure the flicker with a photodiode, and on the oscilloscope, I see on and off every 10ms. Things are good so far. The problem is that sometimes I get longer/ missing flickering. I wonder if I'm doing everything right.

    I also tried setting the graphic card to 912x1140 @ 100Hz 32bits and the flickering becomes a lot slower. I assume there's something about the input stimulus I need to consider in relation to the DLP pattern settings.

    Thanks & looking forward,
    Huayi
  • Huayi,

    I assume that you are continuing to drive the Lightcrafter through HDMI correct? For best results, you'd want to set the video card to 24bit input, to match the input of the DLPC350. Can you try that and let me know if that changes anything?

    You also mentioned that you can see the flickering on the scope - how often do you have a missed frame? How much longer is a "longer flicker" than 10ms?

    Thanks,
    Paul
  • Hi Paul,

    I'm using the HDMI. I've tried Dvi to HDMI but it made no difference. My graphic card doesn't give me 24bits, either 32 or 16bits.  I'm using geforce GTX 970. Does this mean I'd need another graphic card? Or there's another way to get around it? We are actually happy with any frequency above 100Hz. So I'm open to options that can achieve more than 100HZ if that's easier. I haven't measured the dropping. I estimate it to be every other minute or so. But sometime I can 3-5 long ones within a minute. I'd say for what I'm doing this matters.

    Thanks

    Huayi

  • Huayi,

    The controller will only accept 24, 27, or 30bit input data through the parallel video input. If you have a small set of patterns, you might consider pre-storing patterns, but you can only have up to 48 bit planes until you hit a speed penalty.

    My suggestion to you is to find a video source capable of providing 24bit input video and test that out to see if your issue goes away. You might also try feeding the output from your python program to another display to make sure that the issue isn't on the generation side of things.

    -Paul
  • Hi Paul,

    That makes sense. I tried the stimulus on another monitor which runs at 60Hz and it seems fine. I don't actually have another graphic card that support 24bits 100Hz and 1140pixels. In terms of getting a new one that would work for sure, do you have any recommendations about which brand/ series I may look into?

    Thanks,
    Huayi
  • Sorry, I don't have any recommendations at this point.

    -Paul
  • Hi Paul,

    I found this graphics card  . It's supposed to work at 30bits. Would be really helpful if you provide me some feedback whether this would work. I've been searching for graphic cards that work at 24bits 100Hz, but couldn't find any below a few thousands. 

    Looking forward,

    Huayi

  • Huayi,

    The Lightcrafter 4500 EVM is designed with a video front end deserializer, the TFP401: www.ti.com/.../TFP401

    As I spent a little more time thinking about your issues, I realized that I was incorrect when I said that the EVM will only take 24, 27, or 30bit inputs. That's true of the DLPC350 controller, but not the EVM because the EVM uses the TFP401. The TFP401 can handle up to 24bit input with up to WUXGA resolution (1920x1200). If you set your current graphics card to 16bit output I don't see why you should have a problem on the EVM side of things.

    It would be helpful if you'd be able to attach a video or pictures of what you are seeing. Right now I believe that there is more than likely that the unexpected behavior is happening on the video generation side of things, but it is difficult to say. One thing you could do is to play with the frame rate of your video source a bit and see if that solves your issue. You'll definitely want your video source frame rate (VSYNC) to be the same or longer than your pattern exposure.

    Thanks,
    Paul
  • Hi Paul,

    Thanks for the extra information. I've attached the pictures below. One thing I've noticed is that whenever I close/open windows on the desktop, the projector also flashes as the windows are opened/ closed. The projected screen is set as an extended monitor of the desktop. 

    Here's the picture of the setting:

     

    Picture of graphic card setting: 

    I used Psychopy to code a rectangle that covers the screen, and set the contrast of that rectangle to change from 1 & -1 every frame. The projector and the screen with the rectangle on. 

    Meanwhile, I use a photodiode to read from the screen, and I can see the photodiode reading from an oscilloscope. And I see that frames skipped from time to time as shown on the oscilloscope, and when this happens there's a jump in the actual luminance on the projected screen, which I don't have a picture /video for as it's hard to capture. But if I make Psychopy to log the frames, there's no dropping. 

    As you probably know, I'm pretty stuck for now. Any help would be appreciated. 

    Thanks,

    Huayi 

  • Huayi,

    This is a difficult issue to debug at a distance but can you try the following things?

    * Lower the video frame rate down to 60Hz. Does the issue go away?
    * Raise the frame rate to 115Hz. Does the issue go away?
    * Change your video source to just be your desktop and set up a pattern sequence. Does the issue still occur?

    Thanks,
    Paul
  • Hi Paul,

    Sorry for the delay. I've been talking to more people who used Psychopy and trying more things out. 

    At graphic card setting of 16bits and 100Hz and DLP setting with a single 8bits pattern for 9ms, here are the answers to your question: 

    * Lower the video frame rate down to 60Hz. Does the issue go away?

    - No. Unless I also lower the DLP setting to reflect 60Hz i.e. 8bits pattern each with duration of 16ms. 

    * Raise the frame rate to 115Hz. Does the issue go away?

    - No. Actually the DLP stopped showing up anything at all at 115Hz setting. 

    * Change your video source to just be your desktop and set up a pattern sequence. Does the issue still occur?

    - At 100Hz, if it's just my desktop, then  no problem. 

    I've tried a different strategy: 

    I found some old thread on this forum & Psychopy, apparently, people have tried 180Hz but with graphic card setting at 60Hz (32bits), and DLP setting is 3 x 7 bits patterns with duration & period at 5.5ms. And at the stimulus side, there's a function that allows me to pack every 3 frames into 1. http://www.psychopy.org/api/visual/windowframepack.html . I used this in my code, and it works most of the time. But I still get frame drops/ delay. In the picture below, I'm reading the on/off signal with a photodiode, and as you can see, the frame doubles the size from time to time. 

    Up to this point, I think the problem seem to be a dismatch between psychopy & DLP. What do you think?

    Thanks for much for helping me!

    Huayi

  • Huayi,

    I agree. The Lightcrafter system is just a "dumb" video input device. If you don't feed it what it is expecting, then the results won't be good. I would continue to look at how your video is generated and sent, especially because you can get the frame rate you desire just by using your desktop. So you know that the system will work in general for the settings that you are looking for.

    - Paul