{
 "measured": "2026-09-26, one board, iio_readdev over gigabit Ethernet, 33.6 Msamples per run, 3 runs per point",
 "wire_mbs": 125.0,
 "radio_msps": 61.44,
 "plateau_mbs": 44.3,
 "previously_quoted": {
  "mbs": 31.0,
  "buffer_samples": 65536,
  "note": "docs/modulation-and-throughput.md quoted ~31 MB/s as the ceiling; it is the throughput at a 64 Ksample buffer"
 },
 "buffer_sweep": {
  "1 receive channel": [
   {
    "buffer_samples": 16384,
    "mean_mbs": 14.91,
    "min_mbs": 14.04,
    "max_mbs": 15.35,
    "reps": 3
   },
   {
    "buffer_samples": 32768,
    "mean_mbs": 19.04,
    "min_mbs": 14.81,
    "max_mbs": 21.61,
    "reps": 3
   },
   {
    "buffer_samples": 65536,
    "mean_mbs": 28.33,
    "min_mbs": 27.8,
    "max_mbs": 28.96,
    "reps": 3
   },
   {
    "buffer_samples": 131072,
    "mean_mbs": 34.49,
    "min_mbs": 32.93,
    "max_mbs": 35.91,
    "reps": 3
   },
   {
    "buffer_samples": 262144,
    "mean_mbs": 39.15,
    "min_mbs": 38.24,
    "max_mbs": 40.01,
    "reps": 3
   },
   {
    "buffer_samples": 524288,
    "mean_mbs": 34.79,
    "min_mbs": 26.64,
    "max_mbs": 40.04,
    "reps": 3
   },
   {
    "buffer_samples": 1048576,
    "mean_mbs": 45.35,
    "min_mbs": 41.08,
    "max_mbs": 48.51,
    "reps": 3
   },
   {
    "buffer_samples": 2097152,
    "mean_mbs": 46.18,
    "min_mbs": 45.2,
    "max_mbs": 47.53,
    "reps": 3
   },
   {
    "buffer_samples": 4194304,
    "mean_mbs": 44.41,
    "min_mbs": 42.99,
    "max_mbs": 47.08,
    "reps": 3
   }
  ],
  "2 receive channels": [
   {
    "buffer_samples": 16384,
    "mean_mbs": 16.59,
    "min_mbs": 14.35,
    "max_mbs": 18.16,
    "reps": 3
   },
   {
    "buffer_samples": 32768,
    "mean_mbs": 20.27,
    "min_mbs": 18.08,
    "max_mbs": 21.37,
    "reps": 3
   },
   {
    "buffer_samples": 65536,
    "mean_mbs": 27.96,
    "min_mbs": 22.76,
    "max_mbs": 30.65,
    "reps": 3
   },
   {
    "buffer_samples": 131072,
    "mean_mbs": 33.18,
    "min_mbs": 27.51,
    "max_mbs": 36.19,
    "reps": 3
   },
   {
    "buffer_samples": 262144,
    "mean_mbs": 34.7,
    "min_mbs": 31.35,
    "max_mbs": 38.07,
    "reps": 3
   },
   {
    "buffer_samples": 524288,
    "mean_mbs": 33.42,
    "min_mbs": 29.51,
    "max_mbs": 35.58,
    "reps": 3
   },
   {
    "buffer_samples": 1048576,
    "mean_mbs": 44.78,
    "min_mbs": 42.23,
    "max_mbs": 46.7,
    "reps": 3
   },
   {
    "buffer_samples": 2097152,
    "mean_mbs": 39.96,
    "min_mbs": 36.98,
    "max_mbs": 44.66,
    "reps": 3
   },
   {
    "buffer_samples": 4194304,
    "mean_mbs": 44.86,
    "min_mbs": 40.57,
    "max_mbs": 49.29,
    "reps": 3
   }
  ]
 },
 "configurations": [
  {
   "name": "1 RX, on the board",
   "msps_per_channel": 49.8,
   "measured": true
  },
  {
   "name": "2 RX, on the board",
   "msps_per_channel": 46.2,
   "measured": true
  },
  {
   "name": "1 RX, USB gadget",
   "msps_per_channel": 1.7,
   "measured": true
  },
  {
   "name": "over a network link",
   "msps_per_channel": 11.3,
   "measured": false
  }
 ],
 "footnote": "Left: capture streamed to a host, 3 runs of 33.6 Msamples per point, band = full spread. Absolute values depend on YOUR link - the shape is the point. Right: the same capture run on the board removes the network entirely; the hatched bar is one example network path and not a specification. 4 bytes per complex sample.",
 "local": {
  "note": "iio_readdev run ON THE BOARD, no network involved. 33.6 Msamples, -b 1048576, 3 repeats.",
  "1 receive channel": {
   "mbs": 199.3,
   "msps_per_channel": 49.8
  },
  "2 receive channels": {
   "mbs": 369.4,
   "msps_per_channel": 46.2
  }
 },
 "host_path": {
  "note": "The host used for the network measurements has NO wired interface - every byte crossed WiFi to the router and only then the board's Ethernet. So the network figures are a property of THIS path, not of the board.",
  "wifi_phy_mbit": 540,
  "wifi_phy_mbs": 67.5
 },
 "theoretical": {
  "note": "4 bytes per complex sample per channel, at the converter's full 61.44 MS/s. Ethernet is full duplex, so the busiest single direction is what a link must carry, not the sum.",
  "combinations": [
   {
    "name": "1 RX",
    "rx": 1,
    "tx": 0,
    "total_mbs": 245.8,
    "busiest_direction_mbs": 245.8,
    "gigabit_limited_msps": 31.25
   },
   {
    "name": "2 RX",
    "rx": 2,
    "tx": 0,
    "total_mbs": 491.5,
    "busiest_direction_mbs": 491.5,
    "gigabit_limited_msps": 15.62
   },
   {
    "name": "1 TX",
    "rx": 0,
    "tx": 1,
    "total_mbs": 245.8,
    "busiest_direction_mbs": 245.8,
    "gigabit_limited_msps": 31.25
   },
   {
    "name": "2 TX",
    "rx": 0,
    "tx": 2,
    "total_mbs": 491.5,
    "busiest_direction_mbs": 491.5,
    "gigabit_limited_msps": 15.62
   },
   {
    "name": "1 RX + 1 TX",
    "rx": 1,
    "tx": 1,
    "total_mbs": 491.5,
    "busiest_direction_mbs": 245.8,
    "gigabit_limited_msps": 31.25
   },
   {
    "name": "1 RX + 2 TX",
    "rx": 1,
    "tx": 2,
    "total_mbs": 737.3,
    "busiest_direction_mbs": 491.5,
    "gigabit_limited_msps": 15.62
   },
   {
    "name": "2 RX + 1 TX",
    "rx": 2,
    "tx": 1,
    "total_mbs": 737.3,
    "busiest_direction_mbs": 491.5,
    "gigabit_limited_msps": 15.62
   },
   {
    "name": "2 RX + 2 TX",
    "rx": 2,
    "tx": 2,
    "total_mbs": 983.0,
    "busiest_direction_mbs": 491.5,
    "gigabit_limited_msps": 15.62
   }
  ],
  "gigabit_per_direction_mbs": 125.0,
  "lvds": {
   "lanes_each_way": 6,
   "ddr": true,
   "data_clk_hz": 245760000.0,
   "gbit_per_direction": 2.949,
   "bits_per_channel_sample": 24,
   "source": "AD9361 data sheet Rev. G: RX_D0-RX_D5 / TX_D0-TX_D5, DATA_CLK period 4.069 ns"
  }
 }
}
