USB gadget isochonous endpoint

I am developing a very latency critical application where I want to send periodic (real time) data from a PC to the Rock Pi 4 (or similar) and then control a SPI peripheral. Given the real-time application and latency requirement I plan on using isochronous USB endpoints.
The Rock PI 4 has USB OTG, but I can’t see any documentation on how use this with isochronous transfer.

I there any example of how to receive data in USB Gadget Mode from a host PC?

Can I write a C++ application using e.g. libusb to register the Rock Pi as a USB slave with Isoc endpoints?

Any good advice or pointers to reading resources are appreciated!

I don’t know if USB Ethernet is suitable

Hi, @paamand

I think isochronous mode is just for the transferring mode(the other is bulk transfer), you still need to specify what type of gadget is your usb device. Usually isochronous mode is for large amount of data, such as video or audio streaming.

That is very relevant. I thought it was for internet over USB, but it seems to be an implementation of USB CDC ( If the implementation does not add additional latency on top of the USB service intervals it could be an option.

You are right, and my problem is that the examples and drivers seems to implement bulk transfers. I will try to investigate if a isochronous variant of USBNET is possible.

My application is similar to audio streaming (but with custom data packages).