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
}}}
Within `tx-rest.py` and `rx-rest.py`, make sure you indicate the correct rfdev corresponding to the mobile node being used.