BPIO2 binary mode

SPI flash read speed test time!

With 256 bytes per read, there is 3.5ms of usb + other overhead between packets.

image

With 256 byte reads we get about 65KB/s average speed and a 16MB flash chip takes ~250 seconds to read. According to @dreg the old BBIO top speed (in general use, not flash specific modes) was 90 seconds for 4MB. Old BBIO1: 360 seconds, new BPIO2: 250 seconds. Seems like a win, especially with the overhead of the flatbuffers in the mix.

image

Let’s increase the read size to 512bytes: chip dumps in 211 seconds.

With 1024 byte read size (not possible with current setup) we might be able to get under 3 minutes.

If you’d like to try your own speed test, the dump I used is in hacks/flatpy/example.py in the firmware repo.

TO DO:

  • Feel sweet relief that it’s not as slow as molasses
  • Framing
  • Pass errors from bus up to host
  • Investigate and optimize ram usage for maximum read/write sizes (target 1024 bytes, maybe more if big buffer is available? Perhaps this should be part of the status and config tables? Status show current max read/write size. Is big buff available, try to claim it.)
2 Likes