GENX320 - streaming raw event data over USB

@tijnven We have some updates on the new USB protocol. We are getting closer to releasing an IDE with support for it and with it you’ll be able to transport data to the PC via command line tools.

I was just testing out some demo scripts that we’ll provide soon which allow the RT1062 to transfer raw event buffers to the PC at about 12-16MB/s on average. This allows you to move round 1M+ events a second to the PC using the RT1062. The N6 can do about 7MB/s right now, there are some USB stability issues preventing it from hitting the same speed as the RT1062, but, we should be able to mostly resolve these in the future.

Here’s how to run the code:

  1. Checkout this branch: GitHub - openmv/openmv at omv_protocol_v2
    1. Build the firmware for the RT1062. Flash it with OpenMV IDE. Note that the IDE will lockup trying to talk to the camera after this as it will be using the new protocol. We’ll have a release with OpenMV IDE and the new protocol in less than a week.
  2. Install this: GitHub - openmv/openmv-python
    1. Run these scripts:
      1. genx320_event_mode_streaming_on_cam.py (3.0 KB)

        genx320_event_mode_streaming_on_pc.py (8.2 KB)

        1. You just need to execute the one for the pc like: python -u genx320_event_mode_streaming_on_pc.py --port COM5 --script genx320_event_mode_streaming_on_cam.py
          1. Note that you may need to turn on the CRC --crc True if there are some stability issues. Also, see the buffer size in the on_cam script for how big to make the event buffer. 8192 might be too big. You might need to make it 2048. I was able to push it to 32768 though in some cases and get up to 16MB/s transfer performance. Anyway, we’re hitting above 100Mb/s, so, better than Ethernet performance while still using Python.
1 Like