Troubleshooting UART Image Transfer Using OpenMV RPC

Hello everyone,

I’m attempting to send image data over UART from my OpenMV H7 and visualize it on my computer. However, I’m currently only getting a blank pop-up window without any visible image, and the terminal output is just zeros when the script runs. I followed the setup and approach shown in this video: https://www.youtube.com/watch?v=WRHrqlKBZ3s.

My code for the OpenMV H7 can be found here:

And the corresponding controller code running on my laptop is here:

Could anyone help me understand what might be going wrong?

Additionally, I have two questions:

  1. Why is the RPC approach necessary for this setup? Is it possible to directly transfer JPEG data without RPC in the raw form, I tried this the frames are not being reconstructed correctly?
  2. I want to extend this workflow to my application, where I plan to:
    Capture JPEG images using the OpenMV camera.
    Send the data over UART to an STM32 for cryptographic processing.
    Then forward the processed data to a Raspberry Pi for further computation.
    Finally, send it to an ESP32 for reconstruction.
    How should I adapt the RPC-based scripts, or is there another recommended approach, to handle this multi-stage data transfer setup?

Thanks in advance for any guidance!

Hi, if you are sending the data via the UART serial pins then the RPC library is the best script to use for this.

Per your questions:

  1. You do not need to use the RPC script. However, it is sending the JPEG image in binary form. The RPC library helps sync the two external systems and then helps transmit the data with a CRC.
  2. The purpose of the OpenMV Cam was to do all this on one system. What you want to do is very hard. Each time you move data from one system to another, you have to deal with a myriad of things that could be going wrong. You could adapt the RPC scripts for this… but, just… don’t. You should apply a better system design.

As for what’s going wrong, did you connect RX to TX and TX to RX when connecting the UARTs between each system? Did you connect the grounds?