Skip to content
Snippets Groups Projects
2023-12_usb-real-data-rates.md 1.89 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jake Read's avatar
    Jake Read committed
    ## 2023 12 12 
    
    I've been trying to sort out how to get enough data out of the NIST printer to get to the "millisecond benchy" goal - part of that is figuring what real underlying data rates on USB serial links are. 
    
    To start, I spun up ... 
    
    ![4byte](images/2023-12-12_ingest-histogram-single-source-pck-32.png)
    
    ![64byte](images/2023-12-12_ingest-histogram-single-source-pck-64.png)
    
    ![128byte](images/2023-12-12_ingest-histogram-single-source-pck-128.png)
    
    
    ![250byte](images/2023-12-12_ingest-histogram-single-source-pck-250.png)
    
    Jake Read's avatar
    Jake Read committed
    
    
    So, we do win some speed when we increase packet sizes, but we have a clear trend around ~ 0.6 -> 0.9 Mbits/s ... which is not awesome; our spec for the data printer requires about 4 Mbits/s of real data rate. 
    
    Jake Read's avatar
    Jake Read committed
    
    ## 2023 12 20 
    
    So - yeah, I want to keep working through this today, and I'm going to bundle code in here as well. 
    
    
    I wanted to see about improving with nanocobs and maybe packing more data (up to 512 encoded bytes rather than 255), but I don't think that's the bottleneck - instead I suspect that we can try linux instead of windows... and then anyways move on to i.e. ethernet tests or multiple devices / async patterns etc etc etc, so, let's see about linux, running the same code.
    
    Jake Read's avatar
    Jake Read committed
    
    
    
    
    --- 
    
    ... then test to see if we can (1) get some backpressure going on and (2) intelligently control data rates, maybe culminating in some demo of a high-throughput application where we can visualize data flows, and see i.e. how traffic patterns change over time (if new devices are added, for example). 
    
    --- 
    
    And then a next step would be to get the COBS thing up to doing flow-control, and testing TS as well, pushing a first-hello-world-for-each... if we can do that today, and show that we can RP2040 UART PIO, that's good shit. 
    
    ---
    
    ## Results
    
    The data printer has a spec for 1.4Mbits/s total data, which initial tests look to not be capable of (out of one USB port) (2023-12-12 images).