We just came across your post and are interested in using CX3 reference code that you have posted.
We are working with OV4685 and CX3 RDK. OV4685 gives out RAW10 video format data. We have started going through your code.
From what I understood, you have modified to code to create a custom USB class instead of using UVC. Please correct me if I am wrong.
Can you please tell us which application you used to capture RAW frames and how did you convert RAW frames to RGB?
Yes you are right. It transfers frames usnig a custom class (using custom cypress driver) instead of UVC.
The host application in this case should be made by the customer's themselves for playing the video. As of now this was just tested using the streamer Application of Cypress which constatly received data and discards them (without attempting to play it as a video).
We are planning to create a RAW video player in the future, but we are yet to comeup with a time line.
- Madhu Sudhan
Hi Madhu Sudhan ,
You firmware FX3_RAWData_Cypress Driver and Descriptors.zip help me a lot.
I use 0x99 to start stream, and use 0x88 to stop stream. I can get the image via Streamer, but the image's SYNC not correct. Could you help me how to solve this issue, (using UVC header in your firmware, UVC code is perfect, and image is very good. ).
Thanks a lot.
Hi Madhu Sudhan,
Even we are facing similar kind of issue
We are using OV5640 image sensor to capture RAW data.
We have came accross this post and using CX3_RAWData_Cypress Driver and Descriptors.zip firmware to stream RAW data. We could send stop/start command without any issue. But while running cypress streamer, after initial few data capture application stops capturing data.
What could be the possible root cause?
In the 1b) step in order to use non-UVC, should the macro CY_DRIVER be enabled or disabled?
Good job on releasing this piece of code, Madhu Sudhan:)
I'm currently working with this firmware but i'm facing a serious problem.
Sometimes, very rarely BSOD is occuring. I haven't noticed and correlation with other processes.
Did someone has similar problem?
I'm using a Image Sensor with 12-bit Raw Bayer output and the firmware from this topic to capture the data.
When I start the stream I retrieved the following error:
Error in multichannelcommitbuffer: Code = 71, size = 4000, dmaDone 8
How can I capture the data with the Cypress Streamer? In some cases I get a few successes when I started the Streamer before starting the stream with the vendor cmd 0x99 but then only failures...
Does the host not fast enough read the data?
I use CX3_RAWData_Cypress Driver and Descriptors.zip firmware to stream RAW data.I use Cypress Streamer Application to test the RAW data of OV5640,but the transfer always fails.why?
How can I solve the problem?Thanks a lot.
I was wondering if you got the RAW version you mention here ever worked for you, considering this is a post from last year. I would really appreciate any ideas on what you might have done to get it to work.
hi Madhu Sudhan,
Can you help to share GPIF-II project for FX3, so I can modify to support 16bit RAW data transfer.
This seemed like the perfect starting point for the project I am working on which is a scientific imager which needs more control than what is provided in the UVC protocol and it must be raw. We are using the CX3 and OV5640 from OmniVision.
Unfortunately this project does not seem to work.
1. sending the vendor commands from control center always return error 997 but the firmware receives the command.
2. Streamer application is hit or miss but sometimes I can get it to work for a few seconds, but in the firmware I never see a consume event in the DMA callback and subsequently the buffers fill up and firmware gets an error 47 which just stops then starts the streaming, by then the streamer application is off in the weeds.
So has anyone gotten this to work recently as documented here? I also built my own host using CyUSB and XferData which always times out without getting a single byte. Probably not the same issue as I see that Streamer uses overlapping transfer method. For my application I don't really care about the streaming video speed that is mostly to just make sure the sensor is in the right position for the application so it can read a single raw frame.
Okay, I figured out my problem with error 997 wrong size length.
I can get this code working but only at 640x480 once I stream video frames larger than that e.g. 720P, I get DMA sync error 0x47 constantly. I am using Async IO in my home brewed C# application which is very similar to how Streamer does it. This problem persists even if I remove all the YUV422 to RGB processing. Also I see MIPI errors occasionally.
I am using the cx3 firmware but everytime I program my board the driver is not recognized how can I solve this?