Problems with ArduCAM Mini 2MP Plus and Arduino Nano 33 BLE Sense

Hello Arducam,

I am having problems running the example programs on a setup with an ArduCAM Mini 2MP Plus and an Arduino Nano 33 BLE Sense board. It looks like the basic operation of the ArduCAM is working, looking at the console output, but the captured image does not appear in a new window (with the exception of 1 time out of maybe 50 or 100 tries!).

I followed the online tutorial, and loaded this software on the board:
(I have also tried ArduCAM_Mini_2MP_Plus_functions.ino.)

And I am running this host software on my (slightly old, ~2009) Windows 10 PC:

Attached is a picture of my hardware setup. Originally, I was using the cable that came with the ArduCAM, but was generally seeing a few “SPI interface Error!” errors during startup, which would eventually end with “SPI interface OK.”. I changed to using these shorter wires as shown, and this problem went away. (I now see “SPI interface OK.” right away at the beginning.)

The soldering on the Arduino I did myself, but it seems to me to be a decent enough job.

When I capture using the host program, it looks like the 2nd picture (I have resolution set to 160x120 to keep the size small):

The image does not appear in a new window like I have seen in the tutorial videos.

I have noticed that the size (1720 in the screenshot above) does change to be bigger or smaller depending on where I aim the camera, so this seems to indicate that some kind of image is in fact being captured within the device itself.

More tries (with a slightly different “Size” number shown) in the 3rd picture.

Surprisingly, there was a single time where a window did in fact pop up on my screen with the captured image! But this only happened once out of maybe 50 or 100 tries. I have not been able to get it to happen again.

I did notice that the “Size” number seems to increment slightly more slowly in my setup when compared to the tutorial videos. (Maybe because I have an older PC?)

I have tried a number of things, including:

  • triple-checking my wiring connections
  • running the host software on a Mac instead
  • changing to a slower baud rate in the Arduino sketch (in case it is some kind of serial COM transfer problem / old USB hardware)
  • adding some delays to the Arduino sketch in the read_fifo_burst() function

I can’t seem to get anything to work. (Other than that one time.) Can you help?

As an update:
I was able to hook up the camera module to an Arduino Uno board (rather than the Arduino Nano 33 Sense), and everything works correctly - I can see pictures on my Windows 10 PC using the host applications. (This is the same PC and USB ports that I used with the other Nano 33 Sense board.) I’m not sure if it’s important, but in both cases, I connected Vcc to 3.3V (not 5V).

Any idea why this works on the Uno but not on the Nano 33 Sense? I would like to use the Nano 33 Sense board because I am trying to use your camera module for a machine learning application - it was recommended to use your 2MP Plus camera module with the Nano 33 Sense board in the “TinyML” book.



If the picture can be displayed sometimes, then the bad signal of your cable may cause the image data to be incorrect.Or you can slow down the SPI speed and test again.

To add a little bit more information:

I have discovered that the machine learning programs I am running locally on the Arduino Nano 33 Sense microcontroller itself seem to be correctly receiving and processing the images. The only problem seems to be in transmitting them over the serial interface to the host PC (or processing them on the host PC, etc.).


The host app should have no problem with receiving images and displaying them. If your program can process image data normally, you can try another USB cable.

which connection CS Pin of Arducam ov2640 need with Arduino Nano 33 BLE Sense.