4 Replies Latest reply on May 8, 2019 10:56 PM by KandlaguntaR_36

    UVC YUV442 stream from ov5460 not displayed on Dragonboard 410C

    nasw_3993946

      Hello,

       

      Following the firmware example for the OV5640 provided with the Cypress EZ USB Suite I have been able to produce working firmware for my camera board. When connected to a smart phone (have tried Google Pixel, Galaxy A5 and Galaxy S8) I get a steady stream of 640 X 480 @ 30fps.

       

      When I connect the camera module to a Dragonboard 410C which is running Android, I use the same application but I get no stream.

       

      By changing the DMA buffer to 8FC0 (+12 header, +4 Footer) and DMA Count to 3 I have been successful in getting some complete images but it is very inconsistent.

       

      I also found that it helped stability of the stream to remove the while loop from the 'Produce event' in the DMA Callback function, however, the stream is still far from serviceable.

       

      I am happy to provide extra information about setup if required.

       

      Any idea what is going on?

       

      *EDIT* - I have successfully streamed to the same Dragonboard using the same firmware when Ubuntu Core 18 (ish!) was installed on the device.

        • 1. Re: UVC YUV442 stream from ov5460 not displayed on Dragonboard 410C
          KandlaguntaR_36

          Hello,

           

          Can you please load the UVCinmem_bulk example firmware to CX3 and check the video in Dragonboard 410C and other android mobiles?

           

          This example does not need a sensor. It shows the hard coded frames in the firmware.

          Please enable the debug prints; capture the logs and share here.

           

          Firmware path: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\uvc_examples\cyfxuvcinmem_bulk

          1 of 1 people found this helpful
          • 2. Re: UVC YUV442 stream from ov5460 not displayed on Dragonboard 410C
            nasw_3993946

            Thanks for getting back. I had a bit of trouble getting the UART comms to occur but I got there in the end.

             

            Below are the debug logs, although, I feel that the 'UVC video streamer error. Code 69.' error may be getting in the way of what you are actually looking for. For clarity I do not see an image on any of the devices when running this example.

             

            Samsung A5

            UVC video streamer error. Code 69.

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 82 0 1 100

            UVC RQT: 1 81 2 0 200

            UVC RQT: 1 83 0 1 100

            UVC RQT: 1 82 2 0 200

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 83 2 0 200

            UVC RQT: 1 82 0 1 100

            UVC RQT: 1 87 2 0 200

            UVC RQT: 1 83 0 1 100

            UVC RQT: 1 81 2 0 300

            UVC RQT: 1 1 0 1 100

            UVC RQT: 1 82 2 0 300

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 83 2 0 300

            UVC RQT: 1 1 0 1 200

            UVC RQT: 1 87 2 0 300

            UVC RQT: 1 81 2 0 700

            UVC RQT: 1 82 2 0 700

            UVC RQT: 1 83 2 0 700

            UVC RQT: 1 87 2 0 700

            UVC RQT: 1 81 2 0 800

            UVC RQT: 1 82 2 0 800

            UVC RQT: 1 83 2 0 800

            UVC RQT: 1 87 2 0 800

            UVC RQT: 1 81 2 0 900

            UVC RQT: 1 82 2 0 900

            UVC RQT: 1 83 2 0 900

            UVC RQT: 1 87 2 0 900

            UVC RQT: 1 81 2 0 A00

            UVC RQT: 1 82 2 0 A00

            UVC RQT: 1 83 2 0 A00

            UVC RQT: 1 87 2 0 A00

            UVC RQT: 1 81 2 0 B00

            UVC RQT: 1 87 2 0 B00

             

            Samsung S8

            UVC video streamer error. Code 69.

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 81 2 0 200

            UVC RQT: 1 82 0 1 100

            UVC RQT: 1 82 2 0 200

            UVC RQT: 1 83 0 1 100

            UVC RQT: 1 83 2 0 200

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 87 2 0 200

            UVC RQT: 1 82 0 1 100

            UVC RQT: 1 81 2 0 300

            UVC RQT: 1 83 0 1 100

            UVC RQT: 1 82 2 0 300

            UVC RQT: 1 1 0 1 100

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 83 2 0 300

            UVC RQT: 1 1 0 1 200

            UVC RQT: 1 87 2 0 300

            UVC RQT: 1 81 2 0 700

            UVC RQT: 1 82 2 0 700

            UVC RQT: 1 83 2 0 700

            UVC RQT: 1 87 2 0 700

            UVC RQT: 1 81 2 0 800

            UVC RQT: 1 82 2 0 800

            UVC RQT: 1 83 2 0 800

            UVC RQT: 1 87 2 0 800

            UVC RQT: 1 81 2 0 900

            UVC RQT: 1 82 2 0 900

            UVC RQT: 1 83 2 0 900

            UVC RQT: 1 87 2 0 900

            UVC RQT: 1 81 2 0 A00

            UVC RQT: 1 82 2 0 A00

            UVC RQT: 1 83 2 0 A00

            UVC RQT: 1 87 2 0 A00

            UVC RQT: 1 81 2 0 B00

            UVC RQT: 1 87 2 0 B00

             

            DragonBoard 410c

            UVC video streamer error. Code 69.

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 82 0 1 100

            UVC RQT: 1 83 0 1 100

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 82 0 1 100

            UVC RQT: 1 83 0 1 100

            UVC RQT: 1 1 0 1 100

            UVC RQT: 1 81 0 1 100

            UVC RQT: 1 1 0 1 200

            UVC RQT: 1 81 2 0 200

            UVC RQT: 1 82 2 0 200

            UVC RQT: 1 83 2 0 200

            UVC RQT: 1 87 2 0 200

            UVC RQT: 1 81 2 0 300

            UVC RQT: 1 82 2 0 300

            UVC RQT: 1 83 2 0 300

            UVC RQT: 1 87 2 0 300

            UVC RQT: 1 81 2 0 700

            UVC RQT: 1 82 2 0 700

            UVC RQT: 1 83 2 0 700

            UVC RQT: 1 87 2 0 700

            UVC RQT: 1 81 2 0 800

            UVC RQT: 1 82 2 0 800

            UVC RQT: 1 83 2 0 800

            UVC RQT: 1 87 2 0 800

            UVC RQT: 1 81 2 0 900

            UVC RQT: 1 82 2 0 900

            UVC RQT: 1 83 2 0 900

            UVC RQT: 1 87 2 0 900

            UVC RQT: 1 81 2 0 A00

            UVC RQT: 1 82 2 0 A00

            UVC RQT: 1 83 2 0 A00

            UVC RQT: 1 87 2 0 A00

            UVC RQT: 1 81 2 0 B00

            UVC RQT: 1 87 2 0 B00

            • 3. Re: UVC YUV442 stream from ov5460 not displayed on Dragonboard 410C
              nasw_3993946

              Decided to do a bit more debugging.

               

              Found that the following USB events are generated;

               

              Samsung Galaxy S8

              USB Event = Type: B Data: 0

              USB Event = Type: 2 Data: 0 Suspend

              USB Event = Type: 0 Data: 0 Connect

              USB Event = Type: 4 Data: 0 Reset

              USB Event = Type: 6 Data: 1 Speed (change)

              USB Event = Type: 4 Data: 0 Reset

              USB Event = Type: 6 Data: 1 Speed (change)

              USB Event = Type: 3 Data: 0 Resume

              USB Event = Type: 3 Data: 0 Resume

              USB Event = Type: 5 Data: 1 Set configuration

              USB Event = Type: 3 Data: 0 Resume

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 3 Data: 0

              USB Event = Type: 7 Data: 100 Set Interface

               

              DragonBoard 410C

              USB Event = Type: B Data: 0

              USB Event = Type: 2 Data: 0 Suspend

              USB Event = Type: 0 Data: 0 Connect

              USB Event = Type: 4 Data: 0 Reset

              USB Event = Type: 6 Data: 1 Speed (change)

              USB Event = Type: 4 Data: 0 Reset

              USB Event = Type: 6 Data: 1 Speed (change)

              USB Event = Type: 5 Data: 1 Set configuration

              USB Event = Type: 7 Data: 100 Set Interface

               

              The resume and suspend events APPEAR to be unhandled by the application, however, is it possible that these are handled by the library and the lack of 'resume' events on the dragonboard is having an affect?

               

              Thanks

              • 4. Re: UVC YUV442 stream from ov5460 not displayed on Dragonboard 410C
                KandlaguntaR_36

                >> The resume and suspend events APPEAR to be unhandled by the application, however, is it possible that these are handled by the library and the lack of 'resume' events on the dragonboard is having an affect?

                 

                Yes, it seems that lack of resume events on dragonboard is causing the issue.