I’ll try to address all your questions, and point you in some hopefully useful directions; let me know if I’ve missed something:
The phy.read_capture_data()
calls in our notebooks are blocking, so you won’t see the captured data until it’s all been read, streaming or no streaming.
To read and process concurrently, you have to use something like the ViewSB approach. But like I mentioned earlier, if your aim is to capture as much data as possible, then stick to how stream.ipynb does it, because the overhead of parsing the incoming data reduces the rate at which your PC is able to read the incoming data.
That said… if your captures work with our notebooks but not with ViewSB, maybe this points to some problem in your Python threading module? Because threading is what’s used to pass data from the PhyWhisperer backend to the rest of ViewSB. Are you able to use ViewSB with usbmon? If the problem lies there, then the folks over on the usb-tools discord (link here: USB Tools · GitHub) should be able to help you.
FIFO overflow occurs when your PC is no longer keeping up with the incoming USB data. The PhyWhisperer FPGA has nowhere else to store the data, so it gives up. Everything you read before the overflow is still valid. If your target is producing USB traffic at a rate greater than what your PC can read from PhyWhisperer, and you’re using --size=0, then an overflow will always happen. That’s ok.
There are many variables that go into determining how fast you can read - it depends on all the layers from Python to your physical USB port, and everything in between.
I’m not familiar with the ITI480A format. PW doesn’t support saving the captured data to any format, but you have the raw USB data and so anything is possible (pull requests welcome!).
I’m not sure what you did here without seeing your code, but it sounds like you would be capturing chunks of USB traffic, with some USB activity missed in between each chunk; this probably isn’t very useful.
PW really isn’t designed to capture long USB sessions, especially at HS rates. There are other tools that are much better for that, and our crowdsupply project page highlights this. Have you considered using usbmon to see what your target traffic looks like, and from that, pick out a pattern to trigger a short capture with PW?
Jean-Pierre