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.

DLP LightCrafter Labview

Other Parts Discussed in Thread: DLPC900

I'm looking for a Labview code which can communicate with the DLP LightCrafter. Is there anyone who can help?

  • Hi Brigitte de Haas,

    Welcome to TI's DLP & MEMS E2E Community!

    Unfortunately we do not have the code developed in LabView. But, the LightCrafter E2E community members who have been working with LabView might be able to help you.

    Regrads,

    Divya

  • Hy Brigitte and Divya!


    In the course of a project I also needed to control the Lightcrafter via LabView.

    Here is my solution:

    For normal commands I send the information easily via strings:

    For sending pictures to the Lightcrafter you have to split the bmp-Files into smaler packetes with a maximum size of 65535 bytes!

    For this I used this SubVI:

    To send the packets to the LightCrafter you have to create the commandline automatically like this:

    The code works pretty well!

    Regards

    Matthias

  • Hi Matthias,

    Thanks for sharing your LabView Solutions. Your contributions to LightCrafter E2E community are invaluable.

    Regards,

    Divya

  • Hello Matthias,

    Is there anyway you could post your VI? I am in dire need of a LabVIEW solution and my efforts have proved futile.

    Thanks

  • Hello Mds Jones,

    My code lookes like this. (Nearly the same as you see in the post above)

    1537.Lightcrafter_BMP-Upload.zip

    I am not able to test the code. So tell me please if it workes.

    (If not, make shure that you use the right image date. You can check it, by loading up the image width the DLP-Software first).

    Regards

    Matthias

  • Hello all:

        Big thanks to all the users who have posted VIs above!

        I'm able to get this working for loading .bmps in Labview V10.0, but having significantly difficulty recoding everything to work in Labview 9.0 (unfortunately, the CPU that will be running our Lightcrafter runs v.9.0).  Specifically, I can't seem to get TCP/IP protocol to work.  Does anyone have experience torubleshooting this in Labview 9.0?

    Regards,

    Owen

  • Hi,

    Thanks for posting the labview code, it has been very helpful. I have been having problems with connecting to the Lightcrafter. Specifically, when I connect to the Lightcrafter and try to tcpread keep getting an error stating that "The network connection was closed by the peer". I don't know how to resolve this issue. I am using Labview 2011.

    Thanks for any assistance

  • Hi, 

    I am having the same problem as Clemente was, I am using Labview 2013. Was this issue ever resolved?

    Michael 

  • Michael,

    I am a bit removed from the Lightcrafter now, but I would try filtering your choice of commands as some commands (especially some of the pattern flashing commands) are not viable with the most up-to-date firmware on the lightcrafter, and also ensuring the proper structure of the command bits in the code. We wrote our own program using Matthias's code as a model, and we struggled with error for some time but were eventually able to get the code working.

    Cheers,

    Clemente

  • Hello all:

        Thank you to all the users who have posted Labview solutions.

         My group has successfully implemented a Labview code to send images to the DMD; however, we would like to start sending series of images for set periods of time using the "Pattern Sequence" function.  Has anyone implemented this in Labview?

    Regards,

    Owen

  • Hi Matthias,

    I honestly have no idea whether you're going to look at this a year and a half later, but if you are, thank you already for taking the time.

    Firstly, your code works perfectly. I'm using it and haven't had any problems. However, I had a question for you regarding how you designed it so I can expand on it for other LightCrafter functions.

    Why do you send your packets as strings? To me it almost makes sense to send an array of numbers instead. Is there a reason you elected to do this? Thank you so much for your time.

    Best,

    Meredith

  • Hello all:

    Thanks to everyone for posting solutions they've come up with.

    Owen, did you and your group ever figure out how to send series of images for set periods of time? My group is going to be attempting that same thing, and I was wondering if you arrived at a solution that you could share with me.

    Best,

    Andy

  • Hello Matthias,

    How do you determine what port to use in the labview?

    Thank you
  • Hi Owen,
    Could you please share us more information about this implementation? Currently, i am doing a project relate to sending binary image to DMD by Labview.
    Thank you so much :)
  • Hi all,
    I try to operate the Lightcrafter by using Labview.
    However,TCP read command is not output.
    What's wrong with our program?


    [error code]
    TCP read: code56

    [input parameter]
    Packet type: 02
    CMD1: 01
    CMD2: 01
    Flag: 00
    Data: 00(static image)

    [output parametors]
    String: 0201 0101 0002 0030 3065
    Bytes written: 10
    Data out: none
    Error out: code56 (TCP read)

    Regards,

    k.s

  • Hello K.S.,

    The error code listed [56] is a time out error on the TCP read.  The first thing to try is to put a delay between the TCP write and TCP read.  Try adjusting this value in 2x increments - i.e. 10, 20, 40, 80, . . .). 

    Let us know the result.

    Fizix

  • Hello, Fizix,

    Thank you for your response.
    Above problem is solved to modify the CMD.
    (CMD1: 01, CMD2: 01 →CMD: 0101)


    By the way,I have a one question.
    I want "to storage pattern on memory" and "to switching pattern by a trigger signal".
    In the case, should I use the "pattern sequence display"?
    (show the DLP Lightcrafter DM365 command interface guide, p.5, 3.2

    In above case, Is programing flow acceptable as follows?

    TCP open--(TCPwrite)current display mode(pattern sequence display)
    --(TCPwrite)pattern sequence setting--(TCPwrite)pattern definition(to storage pattern)
    --(TCPwrite)start pattern sequence--<trigger signal in>--(TCPwrite)stop pattern sequence
    --TCP close


    Also, Is this mode is same the "stored pattern sequence mode" in DLP Lightcrafter GUI?


    Regards,
    k.s

  • Hello K.S.,

    You are correct that you should use the "Pattern Sequence Display" [pg 5 §3.] to display an already stored pattern. 

    To use an external trigger, you will need to use the command "Input Trigger Type" [ pg 7 § 3.9 - Byte 3].  You will need 02, 03, or 06 depending on your trigger type and bit depth.

    The flow seems ok, except how does the "Stop Patter Sequence" know when to send the command?  Either you will have to put a large enough delay to ensure that the pattern has been triggered and display, or Labview will have to send or receive the trigger via another device and have the correct delay.

    Fizix

  • Thank you for your response.

    Now, I try a test program. However, in program sequence setting, I get a error.

    Program flow is as follows.
    TCP open-[current display mode]-[pattern sequence setting]-TCP close


    [Current display mode]
    0x04 pattern sequence display
    TCP in: 0201 0100 0100 0409
    data out: 0301 0100 0000 05

    [Pattern sequence setting]
    pattern bit depth: 1
    number of pattern: 1
    include inverted patterns: 0
    input trigger: 01
    input trigger delay: 0
    trigger period: 0
    exposure time: 0
    LED: 00
    TCP in: 0204 0000 1100 0101 0001 0000 0000 0000 0000 0000 0000 001A
    data out: 0304 0000 0000 07

    By using an above settings, error is not output.

    However, by using a follows setting, I get a error response.
    Please teach me the solution and a cause.

    [Pattern sequence setting]
    pattern bit depth: 1
    number of pattern: 1
    include inverted patterns: 0
    input trigger: 01
    input trigger delay: 0
    trigger period: 0
    exposure time: 1000
    LED: 00

    TCP in: 0204 0000 1100 0101 0001 0000 0000 0000 0000 0000 03E8 0005
    data out: 0104 0000 0100 01 (command execution failed with unknown error??)

    regards,

    K.S

  • Hello K.S.,

    Are you able to execute the same desired operation through the GUI, or do you get an error there also? (Sorry for the delayed response).

    Fizix

  • Hi,

    I have been trying to interface with the DLP 3000 using the the code supplied by Matthias on Jan 11, 2013 5:48 PM but have not had any success. The code runs fine, gives no error and appears to send data to the device but no image can bee seen. To anyone who has had successes with in interfacing are there any steps which preceded the running of this code before it can be used?

    Is it required that the DMD is first registered through NI MAX software and if so are there any naming requirements in this step?

    Lastly I am a little confused in the running of this code. After running 'BMP-Upload.vi' and investigating the 'split_picture.vi' out put used for dividing up my image I notes the file size was 1247670, is reading the file size I have selecting to send or is this the bit count for the image after it has been broken up? Also the number does not make much sense to me because the no of pixels is 608x684 is 415872, is this then multiplied by 3 for the colour bit rate to give 1247616? This is 54 bits less than the file size given however. Note: my image was divided up in to 20 packets when processed by 'BMP-Upload.vi'.

    Thank you for any help that you can provide, it will be greatly appreciated. 

    Paddy

  • Hi Paddy,

    I saw your post and I'm hopeful that our e2e DLP community helps you to resolve this problem.

    Regards,
    A214529
  • Hi Matthias.

    Thanks a lot for your reference. I'm trying to control the LED power using Labview and was wondering if there is a way to send the command to show only a color such as red. Any suggestion would be highly appreciated.

    Best

  • Could you give me some guidance about how to send images to DMD via Labview ? Thanks.

    Regards,
    Zhi.
  • Hi Zhi,

    Unfortunately we do not have code developed in Labview.  But, some developers use Labview for the LightCrafter and shared their code in this TI E2E Forum.  Hopefully they might be able to help you.  I suggest reading this post.

    Regards,

    A214529

  • Hi Patrick,
    I'm trying to run the same code, but I'm way behind you in this.
    How do you manage to get the address of the device and the port to be used?

    Thank you,
    Mirco

  • Hi Mirco,

    Unfortunately I made no progress with this so stopped. I ended up simply using the DMD as a second display and using Labveiw (or Matlab in the end) to send images to it. 

    If this is helpful to you this can be done by connecting the DMD to a computer using a HDMI to minHDIM cable and pressing the mode button twice. Then if displaying figures on the device, ensure the image size matched the DMDs dimension and then you essentially have a direct display. 

    All the best,

    Patrick

  • Hi Sandra727,

    I currently need to do the same thing as you wanted to do. I would appreciate if you could let me know how you have done it in case you did it.

    Thank you.


    Best,
    Navid

  • Hi Navid,

    I'm also working on using Labview to control DLPC900, but this code doesn't work for me. I think it's because of incorrect IP address, that the connection was never established. I'm wondering if you have tested the Labview code provided by Matthias? And may I ask how have you achieved using Labview to control DLPC900? Thank you.
  • Hi Bow,

    Actually the code did not work for me, I guess. for the same reason, but I had other stuff to do so far. Meanwhile I'm just using HDMI and send my images through it using MATLAB without going through micro-controller stuff. I think you at least have some experience in micro-controller by now, but i do not have. I don't know what you need from the projector, may be you just need using HDMI without going through micro-controller programming.
  • Hi Navid.

    Thank you for your reply! That's very helpful. I suspect that the code was designed for a older version of DLPC, not DLPC900 I'm using. I'm wondering what model are you using?

    Also, could you elaborate how to upload image using MATLAB please? Can you upload a sequence of images? Do you have a sample code? Thank you.

    Sincerely,

    Bow

  • I am using DLP4700. I am using a code provided in the link below:

    You only need to use HDMI cable and does not matter which model you are using. Simply you just use this code:

    fullscreen(A,n); which A is the RGB image with the same resolution as your second screen(in this case your projector. and n is the number of your monitor( 1 means the main monitor, 2 means the second monitor and ...)

    closescreen(); closes projected screens. 

    You only need to use microcontroller if you have to change things such as brightness. If you just need to change something just once, you also can bypass this by using its GUI before running your code. For example if you want to turn green and blue off then you can use its GUI and do it and then run your code. You need to install the GUI first.

    Hope it helps. If you have some experience in microcontroller, I may get some help from  you later.