From 4226daee7f795ccf2a131cfe96e3540a054b9b4c Mon Sep 17 00:00:00 2001
From: Robert Schmidt <robert.schmidt@openairinterface.org>
Date: Mon, 8 Jan 2024 16:29:58 +0100
Subject: [PATCH] USRP doc: Include b205-mini, improve markup

---
 radio/USRP/README.md | 50 ++++++++++++++++++++++++++++++++------------
 1 file changed, 37 insertions(+), 13 deletions(-)

diff --git a/radio/USRP/README.md b/radio/USRP/README.md
index c1c555828c3..cd3f5f10ba4 100644
--- a/radio/USRP/README.md
+++ b/radio/USRP/README.md
@@ -1,14 +1,29 @@
-USRP device documentation
+[[_TOC_]]
 
-OAI works with the most common USRP models like, B200, B200mini, B210, X310, N300, N310, N320, X410. This is achieved by using the Ettus Universal Hardware Driver (UHD) (https://github.com/EttusResearch/uhd). The file usrp_lib.cpp provides an abstraction layer of UHD to OAI.
+# USRP device documentation
 
-The USRP can be configured in the RU section of the config file. The field "sdr_addrs" uses the same syntax as the USRP device identification string (https://files.ettus.com/manual/page_identification.html). Here are a few examples
+## General
 
-```bash
-sdr_addrs = "addr=192.168.10.2" # uses a single 10Gb Ethernet interface on an N3x0 or X3x0 or X4x0
+OAI works with most common USRP models, like B200, B200mini/B205mini, B210,
+X310, N300, N310, N320, X410. This is achieved by using the Ettus Universal
+Hardware Driver (UHD) (https://github.com/EttusResearch/uhd). The file
+[`usrp_lib.cpp`](./usrp_lib.cpp) provides an abstraction layer of UHD to OAI.
+
+Example files can be found in the `ci-scripts/conf_files/` directory with a
+`usrp` in the name, for instance
+[`gnb.sa.band78.106prb.usrpn310.ddsuu-2x2.conf`](../../ci-scripts/conf_files/gnb.sa.band78.106prb.usrpn310.ddsuu-2x2.conf).
 
+## Configuration
 
+The USRP can be configured in the RU section of the config file. The field
+`sdr_addrs` uses the [USRP device identification
+string](https://files.ettus.com/manual/page_identification.html). Here are a
+few examples
+
+```bash
+sdr_addrs = "addr=192.168.10.2" # uses a single 10Gb Ethernet interface on an N3x0 or X3x0 or X4x0
 sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2" # uses 2 10Gb Ethernet interfaces on a N3x0 or X3x0 or X4x0 (requires that you flashed the FPGA wth the XG image)
+sdr_addrs = "serial=ABC1234" # globally unique identifier of this device
 ```
 
 you can also use the multi USRP feature and specify multiple USRPs, in which case you will get the aggregated number of channels on all the devices
@@ -17,7 +32,9 @@ you can also use the multi USRP feature and specify multiple USRPs, in which cas
 sdr_addrs = "addr0=192.168.10.2,addr1=192.168.30.2"
 ```
 
-You can specify if you want to use external or interal clock or time source either by adding the parameters in the sdr_addrs field or by using the fields clock_src or time_src
+You can specify to use external or interal clock or time source either by
+adding the parameters in the `sdr_addrs` field or by using the fields
+`clock_src` or `time_src`
 
 ```bash
 sdr_addrs = "addr=192.168.10.2,clock_source=external,time_source=external"
@@ -31,15 +48,23 @@ clock_src = "external"
 time_src  = "external"
 ```
 
-Valid choices for clock and time source are "internal", "external", and "gpsdo".
+Valid choices for clock and time source are `internal`, `external`, and `gpsdo`.
 
-Note 1: the USRP remembers the choice of the clock source. If you want to make sure it uses always the same, always specify the clock_source and time_source.
+Note 1: the USRP remembers the choice of the clock source. If you want to make
+sure it uses always the same, always specify the `clock_source` and
+`time_source`.
 
-Note 2: when using multiple USRPs they always have to be synchronized using "external" or "gpsdo"
+Note 2: when using multiple USRPs they always have to be synchronized using
+`external` or `gpsdo`
 
-Last but not least you may specify that only a specfic subdevice of the USRP is used. See also https://files.ettus.com/manual/page_configuration.html#config_subdev
+Last but not least you may specify that only a specfic subdevice of the USRP is
+used. See also the section [Specifying the
+Subdevice](https://files.ettus.com/manual/page_configuration.html#config_subdev)
+in the UHD manual.
 
-For example on a USRP N310 the following fields will specify that you use channel 0 of subdevice A. You can enter this information after providing the ip addresses of the USRPs in sdr_addrs.
+For example, on a USRP N310, the following fields will specify that you use
+channel 0 of subdevice A. You can enter this information after providing the ip
+addresses of the USRPs in `sdr_addrs`.
 
 ```bash
 tx_subdev = "A:0"
@@ -67,9 +92,8 @@ RUs = (
 }
 );
 ```
-Hint:
 
-You cannot see TX/RX spread over multiple USRPs, if you use "internal" as a refrence of the clock and time source.
+Hint: You cannot see TX/RX spread over multiple USRPs, if you use `internal` as a refrence of the clock and time source.
 
 Furthur information about synchronization on the USRP N3xx devices can be found here: https://kb.ettus.com/Using_Ethernet-Based_Synchronization_on_the_USRP%E2%84%A2_N3xx_Devices
 
-- 
GitLab