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 6500 EVM device freeze

Hi,

In continues to my question about USB connection lost, we have another board which I am working with.

The board stops responding frequently and the only way to recover is unplug/plug the power.

I have managed to identify a scenario in which the board stops responding.

Attache please find a code(hidtest.cpp) using the HIDAPI library (to communicate with the board via USB),which load 1 image in pattern on the fly mode.

The board freezes every time after running the code.

Please take a look at it and let me know if I am doing something wrong and or how to solve the problem.

Thanks,

Nathan Klein.

0_Binary.zip

hidtest.cpp

hidapi-0.7.0_DLP.zip

hidtest_with_response_bit.cpp

  • Hi Nathan,

    Thank you for sending along your code, I will review this and test it and get back to you soon with my findings.

    Best regards,
    Trevor
  • Hi Nathan,

    I noticed two things in your code that might be causing issues. For your main issue of freezing, you seem to be writing the commands back to back. The recommended procedure is to write the command with response bit and read the status so the next command will be sent only after the successful execution of the current command. I believe this may be causing your board to "freeze".

    Another suggestion which could speed up your design a little would be to compress your images before uploading them. It looks like you are uploading uncompressed images, which could take a lot of time (several minutes). We have a few defined compressions that you could utilize to upload in a fraction of the time.

    Please let me know if reading the status before sending new commands fixes your freezing issue.

    Best regards,
    Trevor
  • Hi Trevor,
    I have added the response bit and read command after each write command(code attached to the original message) and the device keep freezing.
    The freezing is a general problem we have with the device and this code constantly cause freezing so I think you might be able to better understand the problem.
    I am aware of the supported compression modes of the device but again this code get the device to constantly freeze so I think its a good example for you.
    Thanks again,
    Nathan Klein.
  • Hi Nathan,
    I will test your code and get back to you within the week with my findings.
    Best regards,
    Trevor
  • Hi Nathan,
    Would it be possible to attach the new version of the code, the version that reads back after each write?
    Thanks,
    Trevor
  • Hi Trevor,

    I have updated the original post to include the new code "hidtest_with_response_bit.cpp"
    Thanks,

    Nathan Klein.
  • Nathan,
    Excellent! Sorry, I missed that. I will check out this code and see if I can replicate the error here.
    Thanks,
    Trevor
  • Hi Nathan,

    We found two issues in this code. It seems to work fine after fixing these two things.

    The setup pattern command (pattern count) should be called last. The BMP image bit position was not correct.

    Also it is better to test the returned status for each command.

    I have attached the edited code. Please let me know if it works for you!

    Edited_5F00_hidtest_5F00_with_5F00_response_5F00_bit.cpp


    Best regards,

    Trevor

  • Hi Trevor,
    I have tried the edited code with no luck.
    The detailed scenario is as follows:
    I execute the code to upload the images on the fly,
    The program finishes but there is no output from the DLP (no image is shown)
    connecting to the DLP via DLPCR6500 GUI I can see that the DLP is in pattern on the fly mode and the sequencer is running ,
    when I try to change mode or stop the sequencer the GUI freeze and the only way to get things working again is by unplug/plug the power to the EVM board.
    This behavior is the same with the original code and the edited code.
    Also please keep in mind that we have problems with the device keep freezing very often and this is just an example for which it happens all the time.
    Did the edited code worked for you? did you see the image?
    Thanks,
    Nathan Klein.
  • Hi Nathan,

    When you say that the device keeps freezing, do you mean that it also freezes when it is not running code?

    We have made another change which will hopefully work on your machine. Please try the attached code and let me know if this change has an effect.

    Best regards,

    Trevor

    4-6-2015_hidtest.cpp

  • Hi Trevor,
    I have tested the edited code and it works. As I understand the big difference between the original code and the last modified one is the location of the number of images command. I have tested my original code with that change and it also works. If you could please clarify the order of the commands.
    Also the sporadic freezing of the device still happens, it happens also with no code execution, even just after connecting to the device with the GUI changing the mode to pattern on the fly and closing the GUI the device freezes after a few minutes.
    I have used a USB sniffer while the GUI is connected to the device and noticed that while the device is idle the GUI sends status commands and keep connecting to the device , is that necessary ? do we also need to implement such a behavior ?
    Thanks,
    Nathan Klein.
  • Hello Nathan,

    I believe I know what the problem is and I may be able to write a fix for it. I think I have been able to replicate your error and I should be able to get back to you tomorrow with what I found.

    The communication you are referring to between the GUI and the device is just to update the status panel that appears on the GUI, it is not necessary for operation.

    Best regards,
    Trevor
  • Hi Trevor,
    Its good to know you may have found the problem, I am looking forward for the fix.
    In the meanwhile a few updates from my side.
    I have noticed that if I set the device to be on a pattern mode (on the fly or pre-stored) and disconnecting the GUI/my application, the device usually freezes after a few minutes, while setting it to be on video mode is more secure and doesn't cause the device to freeze.
    Also , I have implemented a status heartbeat communication with the device in my application as in the GUI and up until now I haven't encountered any more freezing in my application.
    Please let me know if you need more information to help you solve this problem.
    Thanks,
    Nathan Klein.
  • Hello Nathan,

    We are still working hard on a fix for this issue. Under certain use cases, there is an issue with areas of flash being written to but not being erased properly, this can cause the board to freeze during operation. We are working on both a temporary fix and a permanent solution. You can expect an update from me on Monday.

    Thanks for your patience,
    Trevor
  • Update: We are testing a temporary fix over night, assuming it works as expected, I will provide you with the fix then.

    Thanks,
    Trevor
  • Dear Trevor,

    any news about a possible fix?
  • Hello Paolo,

    We are currently testing for the exact root cause of the failure. As I mentioned previously, we believe this to be related to the flash on the board. When we have an exact answer to make public, I will post it here as well as on your forum post.

    Thank you for your patience.

    Best regards,
    Trevor
  • Hey Trevor,
    I was wondering if the fix has been already released as I am fighting similar problems.

    Looking forward hearing from you,

    Romain
  • Hello Romain,

    Yes, this issue was resolved. You should have received a technical advisory through your supplier. If you have not received a technical advisory, please accept my friend request, send me a message with your email address, and I will send a copy to you.

    Best regards,
    Trevor