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.

Code for LightCrafter GUI 4710 EVM

Hello,

I have another question regarding my own implementation of communication with the Projector.

Is it possible to get access to the code of the LightCrafter  GUI or at least the part of it, where the communication with the device is handled? I am able to implement this functionality myself or at least parts of it, but I would rather not have to because it would take a lot of time.

Maybe there is an interface already available with some functions that send commands directly without having to handle the different types of packets, payload sizes and so on?

Also I am not able to test the things I have already implemented because of some *.dll issue with Cypress (see https://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/1006/t/441756

  • Hello Tim,

    Unfortunately we don't provide the Cypress code for the LightCrafter GUI and we also don't have an interface available.

    Do you want to provide your code and we will take a look  to figure out your .dll issue?

    Best regards,

    Nadine

  • Hello Nadine,

    I expected that, so no problem. It would have been a huge time saver, though.

    My *.dll issue could be resolved by placing the *.dll in the system folder, but I now get a CY_ERROR_I2C_NAK_ERROR, when trying to write to the I2C interface. I basically copied the i2cmaster example provided by Cypress. Additionally I tried setting GPIO 5 high, waiting for GPIO 6 to get high and then setting GPIO 9 high, like it was described in this post here: e2e.ti.com/.../1695191

    The I2C configuration can be read and changed with success, my settings are:
    I2C Frequency : 100000 , Slave address : 54, isMaster : 1

    In the same post you mentioned that instead of 0x36 it should be 0x1B as the slave address. When I use this address I get CY_ERROR_INVALID_PARAMETER when trying to set the I2C configuration.

    Also what was odd to me is, that I detect 3 devices using CyGetDeviceInfoVidPid(...)
    - USB Serial (Dual Channel) Vendor 1
    - USB Serial (Dual Channel) Vendor 2
    and
    - USB Serial (Dual Channel) Vendor MFG
    Am I connecting to the wrong device here? (I always connect to the first one available, which is Vendor 1).

    As I have little to no experience in implementing USB devices, could you maybe point me to any documents, that could help me understand the underlying structure and how to access it properly? I have the feeling that I am missing an important piece of information that would make the whole thing easier.

    Thanks again, you've been a huge help so far.
    Tim
  • Hello Tim, 

    We are currently looking into your problem. Meanwhile I would like to refer you to another E2E post which might help you solving your problem. 

    The cypress has to be setup as a Master have you done that ?

    Best regards,

    Nadine 

  • Hello Nadine,

    Thank you!

    For setting the configuration, I used the Cypress USB-Serial Configuration Utility. I set the serialNum field to my company's name, and in the C++ Project I can read the name just fine. Therefore I am sure that the programming was successful.

    The frequency is set to 100000Hz and Mode to "Master". The slave address I can not change, the field is grayed out. The default value is 0x02 but if I use this address I get the same NAK Error as with 0x36.

    UPDATE:

    I played around with the timeout setttings and tried to connect again after the NAK Error. I now get CY_ERROR_I2C_DEVICE_BUSY instead. Before I try to write or read I always set the GPIOs high and after one try set them low again. I do this at most 20 times. Do I have to wait a specific amount of time before retrying each time?

     

    Below I am including a screenshot of my configuration.

    Best regards,

    Tim

    PS: The link you included refers to the same post, I am posting in right now. I think you pasted the wrong one.

  • Hello Tim, 

    I don't know what happened I tried the link yesterday and it worked fine for me. Please try following link again:

    http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/1006/t/452596

    Are you trying to connect to our DLPDLCR4710EVM or are you using your own board ? The cypress on the DLPDLCR4710EVM is already configured correctly

    so no changes are necessary. The screenshots are correct. 

    Best regards,

    Nadine 

  • Hello Nadine,

    the post you referred to was already a source for my implementation. I searched the forums for my problem and arrived at exactly that post.

    Opening and closing the device works as expected for me, the device returns CY_SUCCESS.

    The post by Jeff which you linked to in the post above, was the reason I implemented the GPIO setting stuff. That was not used in the i2cmaster example by Cypress.

    I am also not using my own board, I use  the DLPDLCR4710EVM.

    I already guessed that the chip was pre-configured, but to validate if that was the problem, I configured it again myself using the application mentioned above.

    Maybe you could take a look at my code? Do you have an email  address, where I can send you the code?

    Best regards,

    Tim