OpenMV-H7 R1: "No OpenMV Cams found!"

Hi,

I’m getting the “No OpenMV Cams found!” error when I try to connect to my OpenMV-H7 R1 camera.

  • I’m using a micro USB cable with data.
  • I’m on Fedora.
  • openmvide -version: OpenMV IDE 3.0.3 based on Qt 5.7.0
  • Device appears in lsusb: Bus 003 Device 020: ID 1209:abd1 Generic OpenMV Cam
  • I see the board’s serial port, and I can connect to it with openmvide -open_serial_terminal /dev/ttyACM0:115200 and get a Python REPL.
  • When I plug in the board, I get green LED flashes followed by one white flash and then blue flashes, as expected.
  • I can see the 131 KB volume in my file explorer, and I can open and read the files therein.
  • I’ve followed the steps in setup.sh (adapted to use dnf to install the packages, since I’m on Fedora).

Any other ideas of things to try?

Thanks,

Hayden

Mmm, so, I saw another user had the same issue.

I think actually you just need to update the firmware.

So, do this, unplug the camera from the PC, click connect, say the board is bricked, then select the OpenMV Cam H7 from the dialog, then plug the camera back in when the IDE tells you to. This should update the firmware and fix the issue.

Thanks for the reply. I did as you said, and I’m just getting this progress bar loading forever.
openmvide_loading_forever

Okay, I guess we need to reflash the whole device.

Before doing that… you unplugged and re-plugged during that dialog?

Anyway, okay, so, there’s 2 ways to update the bootloader via DFU. The IDE supports doing this via DFU-Util. It will update the bootloader so you can get through the dialog above. You can also use DFUSE to update the firmware which runs on windows. DFUSE will 100% update the firmware for you, but, will not run on linux.

Anyway, if you click cancel on that dialog and accept going into the DFU bootloader the IDE will walk you through re-programming the camera via that to reset the bootloader on it. After that you should be able to get the dialog above to work normally.

If DFU-Util for linux is not able to reset your bootloader than we need to use DFUSE on a windows PC or you can use ST CubeMX to load the firmware.

So before I posted my first message, I tried updating both the bootloader and firmware using the openmvide, but I would just get dfu-util errors every time. Something to the effect of “dfu-util exited with code 74.” I poked around and discovered that others were getting this error with older versions of dfu-util, so I upgraded dfu-util to the latest, and it still failed in the same way.

So, I think I should try STM32CubeProgrammer instead. However, when I download the latest firmware.zip from the openmv GitHub repo, there are a bunch of different .dfu and .bin files, and I’m not sure which one I should use for this board.

I took a note from this post and used STM32CubeProgrammer to flash OPENMV4/bootloader.bin to 0x8000000 and OPENMV4/firmware.bin to 0x8040000. That all went fine. I unplugged the board and plugged it back in. Now the LED is blinking green with the occasional white flash sprinkled in. I still get “No OpenMV Cams found!” when I try to connect through the IDE. I went through the “it’s bricked” dialog again, and unplugged and replugged in the board when prompted. I’m now faced with the forever progress bar, again.

Ok, tried one last thing, which was to flash OPENMV4/openmv.bin to 0x8000000. Now I’m back to where I was with the first post: flasing blue LED and still can’t connect to the board via the IDE.

Hi, I don’t think this is related to the board having bad firmware. It’s probably the IDE filter settings…

Can you try the IDE on a windows machine? Another user posted about where the IDE worked fine on windows but not on linux.

Oddly, this behavior is new. This has never been a problem. However, it must just be the IDE getting too out of date. I’m working on an upgrade to bring the code base up to modern right now (the IDE is based on Qt 5.4 which is 7 years old now - so bringing it up to qt 6.5 which is the latest).

It’s working on Windows. I can use this as a workaround for now. Thanks for your help!

Great. I hope to have a new release of the IDE sometime next month with the new code base where this issue should be resolved.

FYI I was able to build the IDE from source and after manually patching OpenMVPlugin::connectClicked to select my serial port (ttyACM0), it works on Linux. I confirmed that QSerialPortInfo::availablePorts() is yielding one port but the vendor and product IDs don’t match what I see in lsusb for the camera board. Maybe it has to do with my board being connected through a USB hub? Not sure.

Nice! What product IDs was it printing? If it doesn’t match lsbusb then something is pretty wrong in the qt library.

More reason to get the upgrade done quickly.

Vendor was 0x8086 (Intel) and product was 0x51ED (??).

Yeah… something wrong is happening there. Those aren’t are PID/VIDs.

Hi, I ran into this issue on the Raspberry Pi.

It’s apparently a bug with QSerialPortInfo. That’s actually the USB Hub’s Product and Vendor ID. I kept getting an ID of:

Vendor Identifier: “1106”
Product Identifier: “3483”

Which is PCI Devices… The USB3.0 host controller on the board. So, your issue is likely the same thing. It’s probably the same issue here: Arduino Nicla Vision is not detected on a pure Linux system · Issue #168 · openmv/openmv-ide · GitHub

Not sure how to fix it in Qt. I’ll report the bug. But, in the mean time. I do get the serial port name. So, what I’ll do is make the IDE on linux check to see it can get the PID/VID manually if they don’t match a known pattern and try to match again using it’s own techniques.

1 Like

Submitted a bug report.

https://bugreports.qt.io/browse/QTBUG-115292

Anyway, I’ll have the IDE verify the serialport vid/pid using the sysfs interface and pull from that if it exists and there’s a mismatch.

1 Like

Hi, I’ve fixed this issue in the latest IDE. It was as mentioned. The QSerialPortInfo class in Qt was returning the USB Hub VID/PID and not the Port VID/PID which will filter by.

That’s great! Thanks for the fix.