....
I didn't measured the maximum performance, but think it is about 50-100 kB/s.
....
Communication speed really can be improved, but I'm not sure that this is really needed.
There are several ways to improve performance:
1) optimize communication from PC side (don't send extra requests, don't do long delays, etc)
2) use binary format communications, but it will break compatibility with existing software (NanoVNASharp, Saver, etc)
Oddly, I'm seeing no where close to 50-100 kB/s (400kbs-800kbs) but then again, it could be something I am doing wrong. I don't think this is the problem with why it's so slow. Without the Nano connected to the PC and just watching it, it will scan about once a second. This is using the last image you uploaded.
On the PC I am seeing 325467 Bytes in 14.04 seconds or 185kbs. This is plenty fast to keep up with how slow the Nano scans. If I really push the data rates, basically asking for the next data set right after is finished sending a data set, without giving it some delay, the performance suffers.
Attached, I am showing the data rate portion of my regression test. I send out 50 frequencies commands which are very fast to respond as the payload is so small. This is followed by 50 data 0 and 50 data 1 packets. I will wait up to 2 seconds for the Nano to respond with a valid packet before timing out. I had tried to disable the LCD at one time but it had no effect on the speed. Maybe this has changed.
I've posted this a few times and mentioned it during my video but as long as we are on the topic of speed, unlike the software that was supplied with the Nano, I only request the frequencies when I have changed them. I also only collect data 0 for S11. Their software will collect data 0, data 1 and the frequencies for each sweep. I suspect they need a slightly longer delay for their Auto (1.2 seconds). It's a very small difference and IMO, both are very slow.
But hey, it's $50. I am just happy to see how stable this image you uploaded is! I have been running a fair number of tests on it over the last few days and not once has it white screened, locked up, or sent bad data.
I have not added any support for your averaged scan or the normal scan. I did try sending the commands just to get a feel how they would work.