Hi all, I’m stuck trying to get an Arducam Mega 3MP M12 working with an Arduino Nano 33 IoT. The camera never shows up in the GUI and I can’t even save a single test image. The end goal is to capture images and POST them to a local web server from the Nano 33 IoT, but I can’t get past the basic setup. Is this combination even supported? Any pointers would be great.
Have you worked through the Mega getting started example for the Arduino Nano 33 BLE? The Nano 33 IoT isn’t identical to the BLE (different MCU, different SPI details), but the BLE guide is the closest documented reference for the Nano 33 family. Give this page a try: https://www.arducam.com/docs/arducam-mega/arducam-mega-getting-started/packs/example/ArduinoNano33Ble.html and tell us exactly where it breaks.
So I tried that example from the link, no luck. When I compile for the Nano 33 IoT I get linker errors:
- undefined reference to `arducamCsOutputMode’
- undefined reference to `arducamSpiCsPinLow’
- undefined reference to `arducamSpiCsPinHigh’
If I declare those three myself the sketch compiles and uploads, but then the COM port disappears from the GUI after upload and I have to put the board back into bootloader mode just to upload another program. Really frustrating.
Those three symbols are part of the library’s SPI abstraction layer - normally they’re defined in the board/variant-specific file for the target. The fact that they’re undefined suggests the library isn’t finding a matching variant for the Nano 33 IoT, so the linker drops them. Which board do you have selected under Tools > Board, and which Arducam library version are you on? Also, are you using the exact example from the BLE page or a modified one? The COM port disappearing after your manual stub workaround makes sense if the sketch is hanging or holding the USB/serial in a bad state.
I selected ‘Arduino Nano 33 IoT’ as the board since that’s what I actually have. Declaring the symbols as empty functions was the only way I could get it to upload at all. But after that the GUI can’t see the COM port anymore, so I can’t even use the capture tool. To be clear, my goal is just to grab images and push them to a web page using the Nano 33 IoT.
Thanks for the details. Right now this looks like a compatibility gap between the Mega example and the Nano 33 IoT rather than a wiring issue. The Nano 33 BLE example page is still the closest documented reference, but it references SPI symbols that aren’t provided for the Nano 33 IoT target, which is why you hit the linker errors. Stubbing those functions out is not a real fix - it lets the sketch build, but it likely leaves the SPI/CS handling broken, which matches the COM port/GUI behaviour you’re seeing afterwards.
So the current status is: unresolved compatibility/setup issue. The documented example doesn’t build cleanly for the Nano 33 IoT, and the manual symbol workaround isn’t usable. If anyone else has gotten the Mega 3MP M12 running on a Nano 33 IoT, or knows the correct variant file for this target, please chime in.