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.

DLP650LNIR: Mirror Flickering of DMD

Part Number: DLP650LNIR

Tool/software:

Hello,

I am right now working with a DLP650LNIR for my master thesis. Because we want to use the DMD later to influency atoms in a MOT, we want the output to be as stable as possible. I realised, when looking at the DMD output with a photodiode, that there seems to be a flickering effect for the mirrors dependent on the illumination/picture time. I think this is to prevent the mirrors from getting stuck in one position, when a picture is portrayed for a long time. For our use, the DMD will just be active for around 1 minute. So this setting should be disabled, but I'm not sure if thats possible with the API or the hardware settings. 

Here is a picture for reference:

  • Hello Thomas,

    I would say please disable the watchdog timer, but the interval you are showing is much too short for the watchdog timer.

    Can you share the script you are using to display your pattern?  I am not sure what is driving this.  

    Fizix

  • Hey, this would be cod efor using the DMD:

    #these 3 functions make it possible to keep the DMD initialized while portrtaying pictures.
    def DMD_init():
        global DMD
        # Load the Vialux .dll
        DMD = ALP4(version = '4.3', libDir=r"C:\Program Files\ALP-4.3\ALP-4.3 API")
        # Initialize the device
        DMD.Initialize()

    def portray_image(target_image):
        # Binary amplitude image (0 or 1)
        bitDepth = 1
        imgSeq  = np.concatenate([target_image.ravel()])
        # Allocate the onboard memory for the image sequence number of pictures can be varied as needed
        DMD.SeqAlloc(nbImg = 1, bitDepth = bitDepth)
        # Send the image sequence as a 1D list/array/numpy array imgdata always needs to be a 1D array
        DMD.SeqPut(imgSeq)
        # Set image rate to 50 Hz
        DMD.SetTiming(illuminationTime = 10**7)
        # Run the sequence in an infinite loop
        DMD.Run()

    def DMD_deinit():
        global DMD
        # Stop the sequence display
        DMD.Halt() # type: ignore
        # Free the sequence from the onboard memory
        DMD.FreeSeq() # type: ignore
        # De-allocate the device
        DMD.Free() # type: ignore

    For the Plot in the earlier post, I set the illumination time to 200us (so that the flickering motion can be seen several times).

    For illuminationtime=10**7, i get this image: 

    the dip should be from the watchdog timer, or? I am aswell wondering, why there are two dips in the Voltage when the mirrors refresh, and not just one. 

    How exactly do I turn the watchdogtimer off?

  • Hello Thomas,

    It looks like you are using the ViALUX platform.  It is the same hardware, but has their ow proprietary software in the APPS_FPGA.  You will need to contact ViALUX about this.

    Fizix