Cypress FX3 firmware

Hello, ArduCam developers!
It is great that you have USB camera shield source code examples for pc side.
But why don’t you share source of CYUSB chip firmware?

I am making machine vision project, similar to yours, but highly specialized, not for universal applications.
We also using CYUSB chip. I try to program it under MT9M001 sensor. AN75779, provided by Cypress, aimed to make UVC device from CYUSB chip. But i’d like to receive single frames from it without UVC initialization delay. There are one post on cypress forum about this, but it didn’t helped me much. Your source code would be very helpful.

Our FX3 firmware is not UVC compliance, and you can find the UVC firmware from Cypress AN75779 application note.
I’m not sure what the initialization delay you are referring to, does our camera has the same issue?
Can you provide more information about your specialized application for such camera?

Hello, Lee Jakson! Thanks for your reply!

I didn’t tried to work with your cameras. Today I want to buy them at Uctronics online store and try.
By the way, I didn’t find UC-467 “Stereo camera adapter board” there. Is it available for sale?
And can I install MT9M001 boards on UC-467 module? Is that possible with your firmware and SDK?

We make unexpensive SMD Pick and place machines. Our machines work with UVC right now, but it will not suite for our new project.

I am telling that UVC is not suitable for us, because it is intended for live video streaming, but we want to get one frame on demand as fast as possible after software trigger signal. We need five cameras to be connected to one PC. So continious veideo streaming from them would be very expensive for USB bus and CPU utilization. Initializing and deinitializing UVC to take only one frame is bad idea, because initializing UVC is very slow procedure and takes about one second.

Also, proprietary machine vision cameras is not suitable for us because we don’t want to be bounded to camera manufacturer and they are very expensive.

MT9M001 can work with stereo camera adapter board UC-467

If you would like to capture one frame from each camera, you only need to pool from each camera to get a full frame. All the cameras are initialized for once only.


Hello, Lee Jackson!

Thanks for your answer!

Thanks for a link to UC-467. I will order it soon! Is there any instructions on how to make a custom config for USB3.0 Camera Shield + UC-467 + MT9M001 cameras? I have no idea what should I change in USB3.0_UC-425_Rev.C+UC-547_Rev.B/MT9M001******.cfg even after comparing configs for MT9V022 for normal and stereo(two sensors) modes and reading MT9V022 datasheet. There are difference in only two sensor registers and it is not obvious for me.

Yesterday I received previously ordered package with USB3.0 Camera Shield and MT9M001 camera. While testing it, I’ve faces with two issues:

  1. Library is compiled only for x64 linux, but in my application, i need it for x32 version. I didn’t find source code for this lib and couldn’t compile it. Can you please provide x32 version library, or share source code of it?

  2. Also, External_trigger_demo refused to run with “Usb borad firmware version not support single mode” error. Are you planning to implement this feature for Cypress FX3 firmware? Continious streaming will not fit for me, as I mentioned in previous post. Or maybe you planning to share source code for FX3 and I would try to implement this feature myself.

Thanks for your help!



We will build a config file for stereo MT9M001 camera on USB3 camera shield with x32 linux SDK soon. Would you please let me know what kind of linux platform are you using (PC or ARM)?

As you can see the USB3 camera shield doesn’t have onboard frame buffer and MT9M001 is not global shutter, so the external trigger is not supported, you can only grab one frame from the stream.


Hello, Lee Jackson!

I am using PC x86 version of Linux. But I suppose, ARM version of libs will be useful for some developers too.

Ok, thanks. Waiting for stereo MT9M001 config.

So, with ArduCAM USB3.0 Camera Shield it is impossible to take one frame on demand?

Can i grab frames on demand from MT9M001 with Arducam USB2 Camera Shield?

According to datasheet, MT9M001 has Snapshot Mode(0x1E register) with software trigger. Is this mode used somehow?

Thanks for your support!

Hi @Diman4os,
This is the x86 version library, please try it and let me know if you have any questions.

Hello, Bin! x86 version library works fine for me. I suggest adding it to github repository and rename Linux_x86 directory there to avoid misundenstanding, because it contains x64 version of library.

Hello, Lee Jackson!

There a lot of unanswered questions I asked in this topic. Can you please help me with all that?

Maybe you need some additional info from me?

All I need is to be able to grab two frames(from two MT9M001 sensors) as fast as possible, using software trigger with 1280 x 1024 definition. Can I make it using any of your products?


Sorry we are ready be off for Chinese New Year holidays, so replay might be delayed.

Since you can use the new x32 library for ARM, have you already made two MT9M001 with stereo camera adapter and USB3 camera shield working yet?

If you run the streaming demo, you can grab any frame you want, you don’t explicitly require software trigger to do that.

Hello, Lee Jackson!

Happy holidays!

No, I didn’t make two MT9M001’s to work. First, I am waiting for UC-467 board and second, I am waiting for a config file from you. On 11 January, you wrote that you will make it soon, so I decided to wait. I don’t undenstand for now, how theese configs for stereo capture work…

Thanks for your support!

Not sure if it too late to reply this issue. Please contact our [email protected] for the config file.