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.

Issuing I2C commands (I have a USB to GPIo Interface adapter and a DLP Pico Projector)

Hello,

I have a question about how to use issue I2C commands. I hope I am in the right place.  This question may seem long. However, I have provided detailed explanation of my set up only if needed; in other words, the part in blue is not necessary to read unless needed. My question comes under the heading of IMPORTANT (MORE RELATED TO MY QUESTION) PLEASE READ THROUGH WHAT I DID TO ATTEMPT TO ISSUE I2C COMMANDS TO THE PICO PROJECTOR. Thank you for reading; I really need help as I have not done much progress in this project.

WHAT I HAVE:

I have a DLP Pico Projector. I have removed the light engine of the DLP Pico Projector so that I am only working with the DLP 1700 digital micromirror device.
I have a USB to GPIO Interface Adapter. I have bought it from TI. Here is the web link to the item I am referring to: http://www.ti.com/tool/usb-to-gpio.
To connect everything together (connections will be described below), I have also bought a 24 Pin Flat Flex Cable. I have bought it from Digi-Key. Here is the web link to the item I am referring to: http://www.digikey.com/short/7h7n4q. The part number is WM10219-ND.

WHAT I CONNECTED TOGETHER:

My set up is exactly the same way as described by the original writer of this forum http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/94/p/66460/395382.

For more detail of my set up, I have described it below in italics and in blue. (May be unnecessary to read through if set up was understood already from the web link provided) I also provided this for anyone else struggling with the first few steps of set up. I hope some people may find it and the following question helpful!

Pico Projector Set-UP

I had my Pico Projector (without the light engine) connected to the PC by connecting a mini HDMI(male) to HDMI (female) cable to the Pico Projector and then connecting the other end of the cable to an HDMI (Male)  to DVI-D cable (Male) which was the connected to the PC. I then plugged the Pico Projector to the power supply and turned on the Pico Projector. The Pico Projector turned on and everything is fine.

USB to GPIO Interface Adapter Set-UP

I have my USB to GPIO Interface Adapter. I download the software given in the TI website http://www.ti.com/tool/usb-to-gpio. A page where I could enter my I2C commands PMBUS GPIO, etc commands pops up. ( I will provide a picture of the page that I am talking about below) Everything is so far so good. I connect one end of the 10-Pin ribbon cable (that came in the same package as the USB to GPIO Interface Adapter) to the USB to GPIO Interface Adapter. I then connect the USB to mini USB cable (that came in the same package as the USB to GPIO Interface Adapter) to the USB to GPIO Interface Adapter and the other end of the USB to mini USB cable was connected to the PC. Basically, I followed exactly what was described in the user manual. The green light on the USB to GPIO Interface Adapter lit up and everything is fine.

Connection of the Pico Projector and the USB to GPIO Interface Adapter Set-Up


To connect everything up: I had to turn off my Pico Projector and unplugged the Pico Projector from the PC (that is, take out the HDMI - mini HDMI cable from the Pico Projector).  I then unplugged the USB cable from the PC to unplug the USB to GPIO Interface Adapter. I then prepare my layout to solder/connect the Pico Projector to the USB to GPIO Interface Adapter. Here is my layout: I took the 24 Pin Flat Flex Cable and connected one end of it to the Auxillary Port (J113) of the Pico Projector. Three pins of the other end of the 24 Pin Flat Flex Cable needed to be soldered. Therefore, I soldered Pin 24 of the 24 Pin Flat Flex Cable to a wire. The other end of that wire was then soldered to the Pin 6 of the other end of the 10 Pin ribbon cable that was connected to the USB to GPIO Interface Adapter. I then soldered Pin 23 of the 24 Pin Flat Flex Cable to another wire. The other end of the wire was then soldered to Pin 9 of the 10 Pin ribbon cable that was connected to the USB to GPIO Interface Adapter. I then soldered Pin 22 of the 24 Pin Flat Flex Cable to another wire. The other end of the wire was soldered to Pin 10 of the 10 Pin Ribbon Cable. After soldering, I connect the USB-GPIO Interface Adapter to the PC via the USB cable. The green light on the USB to GPIO Interface Adapter lit up. I then connect the Pico Projector to the PC by plugging in the HDMI cable back in the Pico Projector. I then plug in the power supply to the Pico Projector. Then, I turn on the Pico projector and everything is fine.

IMPORTANT (MORE RELATED TO MY QUESTION) PLEASE READ THROUGH

WHAT I DID TO ATTEMPT TO ISSUE I2C COMMANDS TO THE PICO PROJECTOR:


After everything was set up, here is what it looked like in my computer screen:

 

I am using the DLP PICO CHIPSET Programmer's Guide User Manual for the DLP Pico Projector to help me with issuing I2C commands. I have read through it but I do not understand how to use it. I am an extreme beginner at I2C. I have read past forums, user manuals, google, and basically everything but I still do not know what exactly needs to be put in that screen.

MY QUESTION:


If I want a checkerboard pattern to be displayed, (that is, I want the digital micromirrors to have a checkerboard pattern so that whatever is in my computer screen gets "checkerboarded" so to speak.), what needs to be put in Device Address, what needs to be put in Cmd, and what needs to be put in Data for when I2C write is bubbled in? After I have set everything up in I2C write, do I then send or do I have to set things up in I2C read. What needs to be put in I2C read then: what do I put in Device Address, in Length, and in Cmd. I tried playing around with things (putting in numbers that I thought was right) under the "guidance" of past forums and the programmers user's manual, but unfortunately I just get errors. I played with the I2C Write and pressed Send and I got Error under ACK, then I played with the I2C Read and pressed Send and I got Error under ACK. I then tried to set Pull-Up resistor to 2.2K ohms and I got an error.

In conclusion, if someone can provide detailed step-by-step instructions on what numbers needs to be put where to and when I press the Send button, I would really appreciate it. If I can I have some dictionary and examples that translates  and shows how to put whatever is in the programmers user's manual to the screen above in the respective places. I only see in the Programmer's Manual things like (I2C:X0B) and then a column that says BITS and a column that says Description and a column that says TYPE and I do not know what to put in the Device Address, Cmd, Data, length, etc. Can you please tell me what needs to go where. Please tell me exactly what numbers or whatever needs to go where to do the checkerboard example as discussed above. I have read the USER Manual for the USB to GPIO Interface Adapter and still do not get their instructions.

I have researched a lot on my own. I have read all kinds of manuals, and forums and google on my own. I believe I understand the basic idea of I2C but I still do not know what to write under Device Address Cmd, Length, Data and when to press the send button. Please give the checkerboard example. I would really appreciate your time, help, and effort!!!!

Thank you for reading! I apologize for the length of the forum.

  • Hello Noor,

    I'm going to move your post to a more appropriate forum which supports Pico parts (which did not exist yet in 2010 during the post you referenced).

    Also, I want to add that the DLP1700 is no longer sold by TI, so support will be somewhat difficult to find. I highly encourage you to look into purchasing an Advanced Light Control evaluation module like the LightCrafter, the LightCrafter4500 (http://www.ti.com/lsds/ti/dlp/advanced-light-control/getting_started.page), or one of the Video and Data Display Pico evaluation modules like the LightCrafter 2010 or LightCrafter 3010 (http://www.ti.com/lsds/ti/dlp/video-and-data-display/tools.page).

    I am not sure which evaluation module would be best suited for your application, but they all are extremely user friendly, have user interfaces that allow you to interact with the controller/DMD without manually writing I2C commands, and are actively supported by TI.

    Best regards,

    Trevor

  • Thank you for your time in responding back. Yes, I know about the LightCrafter, etc, but unfortunately I can not buy that. I have to stick with working with what I have (DLP Pico Projector Development Kit). I am mostly having trouble with the USB to GPIO interface adapter which is still being sold by TI as indicated in the website . (I just bought one also.) I just want to know what to write in the I2C section (in the screen above) based on what is written in the DLP Pico Projector Programmer's Manual; it should just be a matter of finding someone that knows I2C and this software (from the USB to GPIO interface adapter which is an active product in TI) to help me figure it out. Can I at least be a little directed into successfully issuing one I2C command? Surely, there is a better way to deal with TI products than just buying another product. The user manuals are not at all clear and do not help start a new user in the right direction. If I can be sent to another forum or be given another contact to directly contact support for this type of question, please direct me. I would be very grateful if I could get much more help on my question. Thank you for your time; I do appreciate it.
  • Noor,
    This is not the correct forum if you need help with the USP to GPIO Interface adapter. I can attempt to answer question regarding the PICO chipset.
    You say that the light engine is disconnected from the projector. The DMD (mirror device) will not work when disconnected from the projector.

    Are you attempting to directly control the DMD in the light engine with the USB to GPIO card? That will not be possible.

    Or, are you attempting to give commands to the projector so that it will display a checkerboard on the DMD? I am not familiar with the AUX connection on the projector you are using. This AUX port is possibly specific to your projector model. Do you have a definition of this port? Does it connect directly to the i2c bus going the the DLP controller? Does the projector also use this bus? Is it possible that the USB to GPIO pod is correctly sending the i2c command but the command is not successfully going to the DLP controller? Do you have a software programmers guide for the DLP controller in your projector?

    I assume that it is not sufficient to send a checkerboard from your PC to the HDMI port of the projector inplace of using i2c commands.

    Could you attach a diagram that shows what you are trying to do?

    Regards,
    Kevin
  • Hello Kevin,

    Thank you so much for responding back! I apologize for writing in the wrong forum. But I appreciate your willingness to help me!!

    I took out the light engine and I am flashing a laser light on the DMD. If I have a white screen on the computer screen the DMD reflects light one way. If I have a black screen on my computer screen the DMD reflects light the other way (but at a larger angle). Are you saying that I will not get a nice projected image if I take out the light engine (since the light engine contains all of the projector system such as condenser lenses relay lens , fly eye lenses etc) or are you saying rather that the DMD itself will not function the way it is supposed, that is ,the DMD will not deflect at an angle of +- 12 degrees when it is on the on and off state respectively? What exactly do you mean by the DMD will not work without the light engine?

    Yes, I am attempting to give commands to the projector so that it will display a checkerboard pattern on the DMD. In other words I would want the mirrors on the DMD to be arranged in a checkerboard pattern so that some of the mirrors are on the on state and some are on the off state in such a way that it is a checkerboard pattern. In the DLP Pico Projector Development Kit User Manual and in the other forums that I have read, I learned that I could issue I2C commands through either the HDMI cable using a beagleboard or the Auxillary port of the Pico Projector (which is what I am doing). It seems that using the Auxillary Port and the USB to GPIO adapter is much simpler and faster to work with. I connect the USB to GPIO Interface adapter via the Auxillary Port of the Pico Projector. My set up is exactly the way shown in this picture: e2e.ti.com/.../395382. ( I could not paste picture, so you would have to click on the link to view it).
    ( I will post a picture of my set up although it is exactly the same as the one in the link above, soon)

    The USB to GPIO Interface Adapter has a software that I could work with, but I just don't know how. The picture of what is on my computer screen (that is what the software lets me work) with is above in my original question above. Here is the link where I downloaded the software; it is from the TI website. www.ti.com/.../usb-to-gpio. I am not sure about these questions that you asked though: Does it connect directly to the i2c bus going the the DLP controller? Does the projector also use this bus? All I know is that I could use the Auxillary Port of the Pico Projector to issue I2C commands and that I have seen from one or two past forums that they were able to issue I2C commands through the Auxillary Port using the USB to GPIO Interface Adapter. (I tried posting my question there, but I was not able to get any answers).

    My primary question, I guess, would be what do I write in the space provided by the USB to GPIO Interface Adapter Software ( The screen shot is above in my original question) if I want to have a checkerboard pattern. The Programmer's User Manual for the Pico Projector doesn't really tell me anything forcing me to not know what to write on the space provided. If I could have some translation of what the manual says to how I could use it with the software that would be great. For example if the manual says (I2C:x0B) , does 0B go under Cmd? Then, what do I put for the data? Again, the user manual doesn't tell us. (It just gives bits and description) Then what would I need to fill in for the I2C read section. In conclusion, I believe, (but please correct me if I am wrong) I have everything set up write and the using the adapter and auxillary port is fine it is just that I can't know for sure because I can not even begin to issue one command because I do not know what numbers need to go where in the space provided (because the programmers and the usb to gpio interface adapter is somewhat unclear and vague for me at this point.)

    Here is my original question again in more detail if needed:
    If I want a checkerboard pattern to be displayed, (that is, I want the digital micromirrors to have a checkerboard pattern so that whatever is in my computer screen gets "checkerboarded" so to speak.), what needs to be put in Device Address, what needs to be put in Cmd, and what needs to be put in Data for when I2C write is bubbled in? After I have set everything up in I2C write, do I then send or do I have to set things up in I2C read. What needs to be put in I2C read then: what do I put in Device Address, in Length, and in Cmd. I tried playing around with things (putting in numbers that I thought was right) under the "guidance" of past forums and the programmers user's manual, but unfortunately I just get errors. I played with the I2C Write and pressed Send and I got Error under ACK, then I played with the I2C Read and pressed Send and I got Error under ACK. I then tried to set Pull-Up resistor to 2.2K ohms and I got an error.

    In conclusion, if someone can provide detailed step-by-step instructions on what numbers needs to be put where to and when I press the Send button, I would really appreciate it. If I can I have some dictionary and examples that translates and shows how to put whatever is in the programmers user's manual to the screen above in the respective places. I only see in the Programmer's Manual things like (I2C:X0B) and then a column that says BITS and a column that says Description and a column that says TYPE and I do not know what to put in the Device Address, Cmd, Data, length, etc. Can you please tell me what needs to go where. Please tell me exactly what numbers or whatever needs to go where to do the checkerboard example as discussed above. I have read the USER Manual for the USB to GPIO Interface Adapter and still do not get their instructions.

    I apologize for writing this in the wrong forum. I did post this question in other forums in case I would be told that this was the wrong forum but they too say I am in the wrong forum. I am extremely grateful though for you trying to help me!! I really appreciate your time and efforts!!! If it is easier for you, please direct me to where I could specifically talk to someone about my question if you are still unable to help. If I could directly deal with someone instead of posting questions on wrong forums and struggling to get my answers, that would be highly appreciated it!
  • Hello Noor,

    I am going to jump in here on this.  Kevin was thinking this was a consumer projector, but this was an EVM made by Young Optics.  

    The following two threads are for Linux using the Beagle board, but Pascal describes how to read the command information.  This should allow you to determine what to put into the various command boxes on the GUI interface you have.  For example one part of the Linux command is "wb4" which means write 4 bytes.  You will then need to look at the GUI for the USB-I2C adapter you are using and find what to populate to have it write 4 bytes.  The threads are:

    http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/94/p/99395/348345#348345

    http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/94/p/138021/505326#505326

    The second thread has a number of command spelled out in Linux format for use on a Beagle Board.  You will not use the port listed there, but the rest of the command can be decoded using the information Pascal spells out in the first thread.

    I hope this helps.

    Fizix

  • OK, this is a much better insight on how to work with things. But I have another problem in that it says adapter not attached. What should be the first thing that I do to fix this? The green light is lit up in the USB to GPIO interface adapter though
  • Adapter is now attached
  • Ok thank you. I am trying what you suggested. I have written 27 as the device address and 0B as the command and 00000000 as the data and then clicked send. But I got an error. I tried 36 and 1 as device address but still error in the ACK/NACK column. The manual says wr4 is C times the number of bytes which I do not understand what it means. This is shown on page 14. here is the link www.ti.com/.../sllu093.pdf
  • Ok, this does help. Thank you for your response I really appreciate it. I issued a command (it says ACK instead of error now) but I still do not see a checkerboard pattern so I think I need to issue another line of command. So I still have a few questions and I would really appreciate your time if you could help answer them. You've been a great help!!! Thank you!

    Just a couple of clarifications if you do not mind:
    1) For the second link that you sent me, do I have to write all the commands listed from Pascal or just what he wrote under #Show Large Checkered Pattern (which were TWO command lines) Also, if I have to write all the commands he listed then, do I have to write the command under # select parallel RGB input source. (I am using the Auxillary Port and I am using my own light since I removed the light engine).
    2) Also, is it possible to have an image from my computer screen be displayed in the projector but still be able to write I2C commands without disrupting the image I have in the projector.
    3) I took out the light engine and I am flashing a laser light on the DMD. If I have a white screen on the computer screen the DMD reflects light one way. If I have a black screen on my computer screen the DMD reflects light the other way (but at a larger angle). Are you saying that I will not get a nice projected image if I take out the light engine (since the light engine contains all of the projector system such as condenser lenses relay lens , fly eye lenses etc) or are you saying rather that the DMD itself will not function the way it is supposed, that is ,the DMD will not deflect at an angle of +- 12 degrees when it is on the on and off state respectively? What exactly do you mean by the DMD will not work without the light engine?
  • Hello Trevor,

    Do you know of any products where I can control the mirrors individually. I can't control individual mirrors with the pico projector, correct?
  • Hello Noor,

    I just want to make sure I follow up on all of the posts that you have opened recently. I believe this is a similar question to the one from this thread: http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/94/p/401019/1421293#1421293 

    Please let me know (in the other thread) if your question was not addressed there. Also, to receive quicker responses, I would recommend limiting the number of threads you open, especially if the questions in them are similar.

    Thanks,

    Trevor