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.

DLP2010EVM-LC: DLP2010EVM-LC: control switching to next pattern set

Part Number: DLP2010EVM-LC
Other Parts Discussed in Thread: DLPC3470

Hi

How can I control the switch between pattern sets during projection either in GUI or using python scripts?

Using pause-reset-step, I can control the projection of patterns within a given pattern set. For example, after displaying all patterns of set1 using pause-reset- step, how can I switch to next pattern set i.e say pattern set2?

Is it possible to set pattern set index and display that pattern set. Of course we do have pattern order table entry, but somehow I can't switch to next pattern set.

Write now I just apply 'resume' after the last pattern projection of set1, and 'pause' after some sleep time, then using reset and step I shall display all patterns of that set. But this method fails to work at times.

Thank you

  • Hello Shravani,

    Are you able to use external triggers? Or do you specifically require the use of software control?

    Thanks,
    Kyle
  • Hi Kyle,

    I haven't explored much with external triggers. I shall try that as you have suggested. But I would prefer software control. Is there a way to do it? Thank You

    Regards

    Shravani

  • Hi Kyle,

    I have few queries here, 

    Is it possible to read trigger_in value(high/low) , i.e I would like to run some command when trigger-in is high. Using readTriggerInConfiguration command I can just read whether it is in external trigger mode or not but I cant read the the trigger-in as such. hope you understood my question.

    Also I would like to know the internal flow diagram of commands that take place when I use the following commands - WriteTriggerInConfiguration(TriggerEnable.Enable, TriggerPolarity.ActiveHi) and WriteInternalPatternControl(PatternControl.Start, repeatCount) basically internally an equivalent while loop is running which displays the next pattern in sequence , when trigger-in is high. I assume this is what happening overall but I would like to know how is it happening in detail like variables that read the trigger-in and pointer pointing to the address of next pattern in flash. Can you explain it to me? 

    with software Programmer's guide I can just know the commands, parameter needed and return parameters but now how it is implemented. Hope my question is clear else i shall try to re-frame it.

    Thank You

    Regards

    Shravani

  • Hello Shravani,

    We do not have a software command to read the value of the external trigger. Obviously you could feed it into a microcontroller input pin to know the value.

    The internal operation of our controller uses proprietary code and we are unable to share its implementation. If you are able to detail your concerns with the internal implementation and how it's related to your application I can see how I may be able to help. A goal of the software programmers guide and this controller is to enable a variety of applications without having to worry about the internal implementation.

    Thanks,
    Kyle
  • Thanks for the response, Kyle.

    Can you explain how to get the value through micro controller input?

    Also can you share your mail id , to which I shall explain my implementation concerns?

    Also is it possible to modify the boot program of DLPC3470? Basically I would like the controller to run a particular script file when jumpers and external trigger are detected, basically customise the boot program of dlpc3470. If I can't do , is there a option that TI does it and provide us, customised .img file ? Just wanna know if it is possible

    Thank You

    Regards

    Shravani

  • Hello Shravani,

    I will send you a friend request on E2E to discuss your implementation concerns.

    To use a microcontroller you would need to add a separate device such as an MSP430. You could then create a simple program to read the input.

    It is not possible to modify the bootloader of the DLPC3470. You can send I2C commands upon device startup. It may be possible to automatically run these commands during startup. However, you would be unable to add customized commands that aren't already available.

    Thanks,
    Kyle
  • Basically I needed to trigger-in within the script. Maybe there is some register whose value I have to read- something like that. I have received your friend request, Kyle. Will send you a description of my concerns by tonight. Thanks for your support
  • Hello Shravani,

    To get back to your original question let's try the following script. Use the advanced GUI mode and input the following under scripting. By changing the PatSetIndex you should be able to change which pattern set you are projecting via I2C commands. You can view the I2C commands the Python script outputs in the advanced GUI mode as well.

    from dlpc347x.commands import *
    import clr
    clr.AddReference('DLPComposer.IO')
    from DLPComposer.IO import I2CCommunicationInterface
    from System.Threading import *
    
    
    ######## Configure the Pattern Order Table ########
    PatEntry = PatternOrderTableEntryWrite()
    PatEntry.WriteControl = WriteControl.Start
    PatEntry.PatSetIndex = 0 # Use this variable to change which pattern set you would like
    PatEntry.NumberOfPatternsToDisplay = 2 # Adjust this number to display the number of patterns
    
    # Select your desired illuminator
    PatEntry.RedIlluminator = IlluminatorEnable.Disable
    PatEntry.GreenIlluminator = IlluminatorEnable.Disable
    PatEntry.BlueIlluminator = IlluminatorEnable.Enable
    
    PatEntry.PatternInvertLsword = 0
    PatEntry.PatternInvertMsword = 0
    
    # Configure your desired exposure time
    PatEntry.IlluminationTime = 3800
    PatEntry.PreIlluminationDarkTime = 171
    PatEntry.PostIlluminationDarkTime = 31
    
    Summary = WritePatternOrderTableEntry(PatEntry)
    ######## Configure the Pattern Order Table ########
    
    
    # Start the Pattern Streaming process
    repeatCount = 255
    WriteInternalPatternControl(PatternControl.Start, repeatCount)
    Thread.Sleep(500)

    I believe that will address your original question so I will mark this thread as resolved for now. If it doesn't work feel free to follow-up with me. I will also await your direct message about the implementation concerns.

    Thanks,

    Kyle