From e5c1215f6315090e7c767cadfbe4fc3c71f6be01 Mon Sep 17 00:00:00 2001 From: Brett Witherspoon Date: Sun, 28 Jul 2024 12:37:27 -0400 Subject: [PATCH 1/2] Add marconi as current SDR host --- system-overview/README.md | 2 +- system-overview/marconi.md | 0 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 system-overview/marconi.md diff --git a/system-overview/README.md b/system-overview/README.md index 00ebc2b..e147fdf 100644 --- a/system-overview/README.md +++ b/system-overview/README.md @@ -21,6 +21,7 @@ coverY: 0 | [justify](triple-crown.md#justify) | Triple Crown AMD EPYC 7742 (Rome) 2x64-core 1 TB | Centos 7.9 | | | [leconte](leconte.md) | Summit server POWER9 42 Cores | Centos 8.4 | 6 Tesla V100 16 GB GPUs | | [lewis](lewis.md) | Desktop embedded system development | Ubuntu 22.04 | | +| [marconi](marconi.md) | Software Defined Radio (SDR) development | Ubuntu 22.04 | 2 Ettus X410 (RFSoC) SDRs | | [mcmurdo](mcmurdo.md) | Desktop embedded system development | Ubuntu 20.04 | Snapdragon 855 & PolarFire SoC (retiring) | | [milan0](milan.md) | AMD EPYC 7513 (Milan) 2x32-core 1 TB | Ubuntu 22.04 | 2 \* Nvidia A100 | | [milan1](milan.md) | AMD EPYC 7513 (Milan) 2x32-core 1 TB | Ubuntu 22.04 or other | 2 Groq AI accelerators | @@ -46,7 +47,6 @@ coverY: 0 * Achronix FPGA * AGX Orin Developer Kits * Xilinx U280 -* 2 Ettus x410 high-performance, multi-channel, Zynq US+ RFSoC based software defined radio (SDR) ## Accelerator Highlights diff --git a/system-overview/marconi.md b/system-overview/marconi.md new file mode 100644 index 0000000..e69de29 From 6de4afaae8fe58b880698f3f667074455782da84 Mon Sep 17 00:00:00 2001 From: Brett Witherspoon Date: Sun, 28 Jul 2024 12:37:39 -0400 Subject: [PATCH 2/2] Add Ettus X410 SDR guide --- .gitbook/assets/ettus-x410.png | Bin 0 -> 25259 bytes quick-start-guides/usrp-x410.md | 197 ++++++++++++++++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 .gitbook/assets/ettus-x410.png create mode 100644 quick-start-guides/usrp-x410.md diff --git a/.gitbook/assets/ettus-x410.png b/.gitbook/assets/ettus-x410.png new file mode 100644 index 0000000000000000000000000000000000000000..15031300d22668ff70e30ffc59ca52676bcd314e GIT binary patch literal 25259 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 g!Ksa