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.

DLP6500FYE: How to comunicate with the DMD using a HDMI port

Part Number: DLP6500FYE

I generate as series of images on my computer in C and I want to send those images to the DMD.

I want it to be real time, so looking at the documentation it seems that I need to use the HDMI port.

Is there some C libraries to help or some documentation to read about the sending of images via an HDMI?

Are there any specific command that the DMD needs to receive with the USB cable?

  • Hi Alessandro,

    Video Pattern mode should be used for real time display of pattern images through HDMI port.

    Look for the information in EVM User guide.

    Let me check with my team and get back on any C library exists for sending image via HDMI port.

  • Hello Alessandro,

    Once in Video Pattern mode, the system will display whatever it receives on the HDMI (or DP).

    How are you wanting these patterns to be displayed?  Do you want to display one pattern per video frame or multiple patterns per frame from the generated images.

    If the patterns are 32 bit and you want to display one per video frame, then you can define 3 8-bit patterns that display for ~1/3 of the frame time.  You turn on red for the R0-7 bits, green for the G0-7 bits, and blue for B0-7 bits.

    If you want to display monochrome images, you can set the LED color (or use the LED enable for one of the colors and use that color to turn on your illumation).  Then you can do the same and define 3 8-bit grayscale patterns during the frame.

    If you want to display 1-bit patterns, then you will need to pack all of the patterns into a 24-bit image (programatically) and define 24 1-bit patterns.  Depending on the frame rate the minimum exposure time may not allow all 24 1-bit patterns to display during the video frame.

    You can also define any combination of bit depth patterns to display during the frame, so long as the cumulative display times do not exceed the frame time.

    NOTE:  There is a small amount of overhead time so that you cannot use the entire frame time.  You can test and if the sequence abort flag keeps getting thrown you will need to reduce the display times of the patterns until it no longer aborts the sequence.  Allowing 5 us of overhead in the video frame is probably a good starting point.

    NOTE 2: You do not have to use all incoming bits that are in the video frame (i.e. R0-7, G0-7, & B0-7).  You can also re-use bits.  For example lets say you set the last bit pattern B7 as all 0's, then you can use B7 as a blanking between some patterns.  You do not have to define multiple patterns of 0's.  So let's say you define pattern one as a 3-bit pattern (R0-2), then a 5-bit pattern (R3-7), then a 7-bit pattern (G0-6).  You could display the patterns with blanking as Pattern 1 for time t, blank with B7 for t/10 then display pattern two for 3t, blank for t/10 with B7, and then display pattern three for 4t.  So long as t+3t+4t+2*(t/10)+5us>frame time.  That is the total display time for all patterns plus the overhead allowance is less than the frame time.

    You can make 32-bit images composed of your generated patterns and then use software of your choice to build a video of these patterns.  You will need to keep track of which bits your images are packed into.  

    It is also possible to define a series of patterns that will handle each frame differently.  I do not know how many frames can be defined this way.  If you define five frames that are defined differently, when when the frame interpretation sequence will start over after the five frame sequences.  If you have a 30 frame video it will run through the sequence of frame definitions 6 times over the 30 frames.

    Final NOTE: You must have a video stream up and running (i.e sync lock) before switching to video pattern mode.  You can start and stop the display once established.

    Fizix

  • Hello Fizix

    Thank you for the detailed Answer!

    If I understood you correctly:

    I should firstly have the video stream on the HDMI port

    I will then need to communicate using the USB connection that I should switch to video pattern mode.

    If I want to use 1 bit images I will need to pass them to the DMD in a batch of 24 images.

    I have a few question:

    Will the images need to be compressed such as using run-lenght-encoding or should they remain uncompressed?

    Do you know if  I can access the HDMI port and send data in C?

    Alessandro

  • Alessandro, 

    The HDMI port only understands video data.  If you can use C to pack data into a 24-bit video frame and send that over HDMI as video then it can be sent that way.  That data is not like loading up a bunch of images in Flash.

    Just to clarify, the 24 1-bit patterns should be packed into a single 24-bit image.  This means that each 1-bit image will be a "bit-plane" in the 24-bit image.

    For example let's label the 1-bit patterns as 0-23.  Let's look at patterns 0-7.  At each pixel position (let's label the pixel position as X,Y)  for R0-7 we take the 0 or 1 from X,Y in patterns 0-7. and pack them into the 8-bit value for R at X,Y.  If at X,Y pattern 0 is 1, and pattern 1 is 0, 2=1, 3=0, 4=1, 5=1, 6= 0, & 7=1, then the 8-bit value for R in our packed image in binary will be 10110101.  Then similarly for patterns 8-15 into G0-7, and patterns 16-31 into B0-7.  Now we have an RGB 8,8,8 value (i.e. 24 bits) for X,Y in our 24-bit packed image.  If we repeat this process for every X,Y in the 24 1-bit images, then we will have a 24-bit image built with our 1-bit data packed into it.

    If we try to look at this image with a standard image viewer in it will look like noise, but if we have a viewer that will let us look at individual bit-planes we will see our 24 1-bit patterns.

    Now if you have a series of binary patterns (lets say you have 240 patterns, you will pack them into 10 24-bit video frames and "show" them on the DMD.

    If you use Video Pattern Mode you can then display them in the redefined manner outlined in the first response.

    In video mode, there is no "run-length encoding".  This is only for sending patterns over USB to flash or DDR memory in Pattern On-the-fly Mode.

    Fizix