OpenMV H7 communication with arduino mega

So you need help on Arduino and you are asking openmv forums I stead of Arduino ones right?

Did you tried something like that?

if (Serial.available() >0){
// got at least 1 byte, read it & act on it
if (Serial.read() == ‘x’){
// perform some action
}
else{
// maybe perform some other action
}
} // end checking

in this case, the openmv sent an ‘x’ to the arduino?

if (Serial.available() >0){
  // got at least 1 byte, read it & act on it
  if (Serial.read() == 'x'){
  // perform some action
  }
  else{
  // maybe perform some other action
  }
} // end checking

Yeap

# Basic UART communications between OpenMV and Arduino Uno.

# 1) Wire up your OpenMV Cam to your Arduino Uno like this:
#
# OpenMV Cam Ground Pin   ----> Arduino Ground
# OpenMV Cam UART3_TX(P4) ----> Arduino Uno UART_RX(0)
# OpenMV Cam UART3_RX(P5) ----> Arduino Uno UART_TX(1)

# 2) Uncomment and upload the following sketch to Arduino:
#
# void setup() {
#   // put your setup code here, to run once:
#   Serial.begin(19200);
# }
# 
# void loop() {
#   // put your main code here, to run repeatedly:
#   if (Serial.available()) {
#     // Read the most recent byte
#     byte byteRead = Serial.read();
#     // ECHO the value that was read
#     Serial.write(byteRead);
#   }
# }

# 3) Run the following script in OpenMV IDE:

import time
from pyb import UART

# UART 3, and baudrate.
uart = UART(3, 19200)

while(True):
    uart.write("x\n")
    if (uart.any()):
        print(uart.read())
    time.sleep_ms(1000)

is it good?

Make sure to add the timeout chat setting on the UART construction.

http://docs.openmv.io/openmvcam/tutorial/uart_control.html

The UART will drop characters if they take too long to send which happens at low baud rates unless this setting is changed.

this is unessesary unless you want to read data from arduino :

 if (uart.any()):
        print(uart.read())