How to make OpenMV RT1062 act as SPI slave? (machine vs rpc / pyb dependency clarification)

I am trying to make an OpenMV RT1062 act as an SPI slave with an ESP32 as SPI master. I confirmed that machine.SPI on OpenMV is master-only and does not support SPI slave mode (SPI.SLAVE does not exist), so raw SPI slave using machine is not possible. I also tried the reverse (OpenMV master, ESP32 slave), but ESP32 cannot reliably drive MISO and OpenMV receives only 0xFF, which is a known ESP32 SPI-slave limitation. The only approach that works reliably is using the OpenMV rpc library, specifically rpc_spi_slave or rpc_uart_slave, which makes OpenMV a proper slave with framed, bidirectional communication. I verified that RPC works correctly, but it internally depends on pyb even if user code does not import it. I would like to confirm that RPC is the only officially supported way to use OpenMV RT1062 as an SPI slave and that SPI slave via machine is intentionally unsupported.

Hi, the RT1062 has spi slave support in hardware; however, micropython lacks an API to control it. Note that the PYB library only works on STM32 devices.

As for what’s available for the RT1062 right now, just UART. We have a clear path to add I2C slave support soon, too, now that I2CTarget mode was added in MicroPython.

I’ve asked Damien to support SPITarget and CAN in the machine module. These may be delivered next year. Looks like some work restarted on CAN: stm32: Add machine.CAN low-level driver by projectgus · Pull Request #18572 · micropython/micropython · GitHub