- COSMOS Testbed Overview
- Getting Started
- User Guide
- Resources, Services and APIs
- Hardware Info
- RF Policies & Compliance
This page lists coverage measurements performed for the COSMOS nodes. The goal is to give experimenters an idea of what coverage each node provides in the testbed area, so experiments may be planned more effectively.
Contributors: Gulnur Avci, Sienna Brent, Tingjun Chen, Angel Daniel Estigarribia, Sabbir Hossain, Manav Kohli, Jared Moser, Watson Mushimbei, Leoni Lu, Dwiref Oza, Irfan Tamim, Jeswanth Yadagani
For any questions, please email mpk2138[at]columbia.edu.
Node Coverage Measurements
A uniform procedure is used to measure each node. The procedure utilizes the USRP 2974 in each node to transmit real 802.11g data packets at regular 100ms intervals with fixed +27 dBm power on channel 1 (2412 MHz). The modulation and coding scheme used for these packets is QPSK 3/4. The 802.11g packets are generated in GNU Radio, using an 802.11 out-of-tree (OOT) framework [ 1 ], and transmitted through the node's RF Front End, as shown in Figure 1. A Dell XPS 13 laptop computer with an Intel 8265 WiFi card [ 2 ] is then used to receive and decode these packets in different locations, with the output provided by the
tcpdump command. Each decoded packet reports its received power from the perspective of the Laptop WiFi card.
Each measurement location is measured for 20 seconds, allowing both an average received power and packet reception ratio (PRR) to be computed over 200 packets.
Detailed Measurement Procedure
The specific procedure for setting up a node for measurements is outlined in this section.
Setting up the Node
As an example, node
s3-lg1 is used, but the following commands may be used on any node in the testbed.
- Load the correct image onto the USRP 2974 in
console~$ omf load -i mpk2138-cosmos-node-measurements-2021-03-26.ndz -t sdr2-s3-lg1
- Set up the RF front end of the node to transmit at 2.412 GHz.
console~$ curl "am1.cosmos-lab.org:5054/rf_control/set_tx_path?node=sdr2-md2.bed.cosmos-lab.org&rf_port=0,1&power_amp=on&f_lower=2400&f_upper=2460"
- Turn on the USRP 2974. Wait one minute for the radio to turn on after issuing this command.
console~$ omf tell -a on -t sdr2-md2.bed.cosmos-lab.org
- Login to the USRP 2974 and set it up for transmitting the WiFi packets. The prompt will say
sdr2-s3-lg1no matter what node you use.
console~$ ssh -X root@sdr2-md2 sdr2-s3-lg1~# /usr/local/bin/niusrprio_pcie start sdr2-s3-lg1~# sudo sysctl -w net.core.wmem_max=625000000 sdr2-s3-lg1~# sudo sysctl -w net.core.rmem_max=625000000 sdr2-s3-lg1~# cd cosmos_measurements
Setting up the Laptop
The instructions here are specific to the Dell XPS 13 laptop with Intel 8265 [ 2 ] WiFi card running Ubuntu 18.10. Performance with other WiFi cards may vary, and setup may also be different.
- Restart the laptop.
- Setup the WiFi card to monitor all incoming packets on 2.412 GHz. Please note, the
wlp2s0WiFi card interface may be named differently - use the
ifconfig -acommand to find the name of the WiFi card interface.
$ sudo su $ iw dev $ iw phy phy0 info $ iw phy phy0 interface add mon0 type monitor $ ip link $ iw dev wlp2s0 del $ rfkill unblock wifi $ ip link set mon0 up $ iw dev mon0 info $ iw dev mon0 set freq 2412 $ exit $ cd ~/COSMOS\ Measurements
Measurements are taken by placing the laptop at various locations around the node and recording the WiFi packets as the USRP 2974 in the node transmits them. The node image loaded onto the USRP 2974 provides a Python script that will start the packet transmissions from the USRP 2974. To transmit packets for roughly 45 seconds, run the following on the node SSH terminal:
sdr2-s3-lg1~/cosmos_measurements# timeout 45s python wifi_tx_nogui.py
Once the command line shows the radio has started transmitting (usually the presence of
U showing up confirms this), the following script can be run on the Dell laptop to collect a 20 second packet measurement:
COSMOS Measurements$ sudo python measure.py 20 <filename> <measurement number>
The filename can be anything but it is recommended to be descriptive including a date and the node being measured. The measurement number starts at 001 and increments with every measurement. Therefore an example measurement command would be:
COSMOS Measurements$ sudo python measure.py 20 2050-01-01-s3lg1Measurement 001
After the 20 second measurement has concluded, the GPS coordinates of the current laptop position can be recorded using an app such as one on iOS and Android called "Coordinates" [ 3 ]. The Dell laptop can then be moved to the next location, and the next measurement can be performed.
[ 2 ] - Intel 8265 Dual Band WiFi Card
[ 3 ] - Coordinates App