Hello,
I have a Python program/protocol for USB image transfer, built on the remote control examples for the H7 camera. However, after an update (I believe), the USB slave and master classes were removed from the RCP library.
Is there a way to choose the library version that the camera uses? Since that type of communication is no longer supported, should I migrate to another option instead? Or are non-real-time systems simply a bad idea for these cameras?
Thanks!
Hi, the RPC library (for USB comms) was removed as it was not reliable. Please do not use it anymore. It’s fine for UART/SPI/I2C/CAN which it was designed. I choose to remove the USB comms for the library since the whole works based on fast real time syncs of packets between two systems. However, any non-realtime system doesn’t handle this well… which means you have to increase the timeouts waiting on packets, which heavily affects the bandwidth the protocol can run at. Making it reliable on for most PCs means that you have to use timeouts where the bandwidth is very low… like, ~1 call a second.
Note, if you want to keep using it… you can go back in time on our github and add the code back to the system via a module on disk. However:
Please use openmv/tools/pyopenmv.py at master · openmv/openmv · GitHub and openmv/tools/pyopenmv_fb.py at master · openmv/openmv · GitHub or any of the MicroPython remote/board control scripts.
As the OpenMV cam presents itself as a generic MicroPython board there are a plethora of tools which you can use to control it via it’s REPL interface.
E.g: micropython/tools/pyboard.py at master · micropython/micropython · GitHub
and: