Load the nodes with images: {{{ omf load -i abhiadhikari-node-mob4-3.sb1.cosmos-lab.org-2023-10-27-21-13-48.ndz -t mob4-2 omf load -i abhiadhikari-node-mob4-2.sb1.cosmos-lab.org-2023-10-27-20-40-46.ndz -t mob4-1 }}} `mob4-1` is the transmitter, and `mob4-2` is the receiver. Within the console, make sure the PAAMs are activated properly: `mob4-1`: {{{ curl "http://rfdev-mob4-1.sb1.cosmos-lab.org:3000/array_mgmt/connect?dev_name=Local&ics=all&num_elements=16&txrx=tx&pol=h&theta=0&phi=0" curl "http://rfdev-mob4-1.sb1.cosmos-lab.org:3000/array_mgmt/enable?dev_name=Local&ics=all&num_elements=16&txrx=tx&pol=h&theta=0&phi=0" curl "http://rfdev-mob4-1.sb1.cosmos-lab.org:3000/array_mgmt/steer?dev_name=Local&theta=0&phi=0" }}} `mob4-2`: {{{ curl "http://rfdev-mob4-2.sb1.cosmos-lab.org:3000/array_mgmt/connect?dev_name=Local&ics=all&num_elements=16&txrx=rx&pol=h&theta=0&phi=0" curl "http://rfdev-mob4-2.sb1.cosmos-lab.org:3000/array_mgmt/enable?dev_name=Local&ics=all&num_elements=16&txrx=rx&pol=h&theta=0&phi=0" curl "http://rfdev-mob4-2.sb1.cosmos-lab.org:3000/array_mgmt/steer?dev_name=Local&theta=0&phi=0" }}} Now create two terminals. `Terminal 1` will be used for `mob4-1`. `Terminal 2` will be used for `mob4-2`. Within `Terminal 1`, run: {{{ ssh -Y root@mob4-1 gnuradio-companion }}} Within `Terminal 2`, run: {{{ ssh -Y root@mob4-2 gnuradio-companion }}} Run `/root/tx.grc` and `/root/rx.grc` in `Terminal 1` and `Terminal 2`, respectively. Obtain the frequency plot shown below. [[Image(basic_mobile_tx_rx.png, 900px)]] Now, we will run the beam-steering scripts being used for the NRDZ project. Using `gnuradio-companion` in `Terminal 2`, make sure the file sink is enabled for `/root/rx.grc`. [[Image(file_sink_on.png, 400px)]]. Make sure to start the receiver first! `Terminal 2` in this case In `Terminal 1`, run: {{{ root@mob4-1:~/rest# ./tx-rest.py }}} `Terminal 1` output: {{{ 3x3 TRIALS: [(-10, 0), (0, 0), (10, 0)] Estimated Experiment Time: 1.75 minutes (105 seconds) Press enter to confirm experiment execution. http://rfdev-mob4-2.sb1.cosmos-lab.org:3000/array_mgmt/connect?dev_name=Local&txrx=tx&pol=h&ics=all&num_elements=4&verify=False 200 Warm-up for 15 seconds... [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; UHD_4.1.0.4-release [INFO] [X300] X300 initialization sequence... [INFO] [X300] Connecting to niusrpriorpc at localhost:5444... [INFO] [X300] Using LVBITX bitfile /usr/share/uhd/images/usrp_x310_fpga_HG.lvbitx [INFO] [GPS] Found an internal GPSDO: LC_XO, Firmware Rev 0.929a [INFO] [X300] Radio 1x clock: 200 MHz [WARNING] [MULTI_USRP] Calling multi_usrp::recv_async_msg() is deprecated and can lead to unexpected behaviour. Prefer calling tx_stream::recv_async_msg(). [INFO] [MULTI_USRP] 1) catch time transition at pps edge [INFO] [MULTI_USRP] 2) set times next pps (synchronously) [WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping. Press Enter to quit: Beginning TX! TRIALS: [(-10, 0), (0, 0), (10, 0)] Steering beam to (-10,0), waiting 10 seconds... Delimiting for 5 seconds 127.0.0.1 - - [05/Dec/2023 22:31:55] "POST /RPC2 HTTP/1.1" 200 - Setting amplitude to 0.001 127.0.0.1 - - [05/Dec/2023 22:32:00] "POST /RPC2 HTTP/1.1" 200 - http://rfdev-mob4-2.sb1.cosmos-lab.org:3000/array_mgmt/steer?dev_name=Local&theta=-10&phi=0 200 }}} In `Terminal 2`, run: {{{ **root@mob4-1:~/rest# ./tx-rest.py** }}} `Terminal 2` output: {{{ 3x3 TRIALS: [(-10, 0), (0, 0), (10, 0)] Estimated Experiment Time: 1.75 minutes (105 seconds) Press enter to confirm experiment execution. http://rfdev-mob4-2.sb1.cosmos-lab.org:3000/array_mgmt/connect?dev_name=Local&txrx=tx&pol=h&ics=all&num_elements=4&verify=False 200 Warm-up for 15 seconds... [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; UHD_4.1.0.4-release [INFO] [X300] X300 initialization sequence... [INFO] [X300] Connecting to niusrpriorpc at localhost:5444... [INFO] [X300] Using LVBITX bitfile /usr/share/uhd/images/usrp_x310_fpga_HG.lvbitx [INFO] [GPS] Found an internal GPSDO: LC_XO, Firmware Rev 0.929a [INFO] [X300] Radio 1x clock: 200 MHz [WARNING] [MULTI_USRP] Calling multi_usrp::recv_async_msg() is deprecated and can lead to unexpected behaviour. Prefer calling tx_stream::recv_async_msg(). [INFO] [MULTI_USRP] 1) catch time transition at pps edge [INFO] [MULTI_USRP] 2) set times next pps (synchronously) [WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping. Press Enter to quit: Beginning TX! TRIALS: [(-10, 0), (0, 0), (10, 0)] Steering beam to (-10,0), waiting 10 seconds... Delimiting for 5 seconds 127.0.0.1 - - [05/Dec/2023 22:31:55] "POST /RPC2 HTTP/1.1" 200 - Setting amplitude to 0.001 127.0.0.1 - - [05/Dec/2023 22:32:00] "POST /RPC2 HTTP/1.1" 200 - http://rfdev-mob4-2.sb1.cosmos-lab.org:3000/array_mgmt/steer?dev_name=Local&theta=-10&phi=0 200 }}}