Upgrade to v4.5.3 - rpc spi no longer working

Ah great to know. Will try to find out what’s going on and let you know.


  1. I tested the firmware fix you provided issue #2173 with rpc.py from 4.5.2 and everything works as expected with my code!
  2. I tested the latest development release and not even the example code works for me. I suspect issue #2173 is yet to be pushed in the dev branch correct?
  3. I tried to debug rpc.py (from 4.5.3 release) with the firmware fix you provided here.
    a) I observe that sometimes, only 1 out of 10 requests, the function call is triggered by Arduino (sending a call over SPI every second). The loop() function is indeed looping every “recv_timeout”. I am not a programmer so I really don’t know where to put my hands in here. For sure it’s not working as intended with my code but the only difference between my code and example is that I’m loading more libraries and have many more variables defined (more memory occupied).

Something broke in rpc.py between 4.5.2 and 4.5.3 . More than happy to try to help to fix with some guidance.

Can you please push changes for issue #2173 into the dev branch and let me know if I can help finding the issue with rpc.py?

Hi, I’ve retested my fix: ports/stm32: Don’t control CS pin in slave mode. by kwagyeman · Pull Request #2180 · openmv/openmv (github.com)

And it should be fine to merge.

The code works fine running the popular features example on the Arduino and on the OpenMV Cam without issue using the SPI bus.

As mentioned, I can verify our example code works as expected. I don’t know what is wrong with your code.

Ok, understood.

The fact is that my code isn’t doing anything when the rpc is looping. I suspect some issue that only becomes evident when there is more than just the example loaded.

I’ll use the 4.5.2 rpc.py script with the newer firmware release from now on . Eventually the problem with 4.5.3 one may become evident by some other users which are able to debug properly .

In the future I’ll try to make some code that breaks the rpc that I can share.