802.11 Reference Design
802.11 Reference Design: Experiment Framework Setup
The basic steps to setup and use the 802.11 Reference Design Experiments Framwork are listed below, and explained in detail in the following sections.
- Install a suitable version of Python
- Install the wlan_exp Python package
- Configure and connect WARP v3 nodes via Ethernet
- Test the hardware and setup
There are two sets of instructions below- one for Python beginners, one for Python experts.
For Python Beginners
New Python users should start with the Anaconda Scientific Python Distribution from Continuum Analytics. This distribution bundles known-good versions of Python, third-party packages for data processing and great IDE tools.
The installers for Mac OS X, Windows and Linux are available on the Anaconda downloads page.
We strongly recommend a 64-bit Python installation to fully utilize the 802.11 Reference Design logging framework. A 32-bit Python cannot handle the large log files generated by nodes during long experiments.
The Anaconda Mac OS X distribution is always 64-bit.
If your Windows PC and OS is 64-bit, you should use the 64-bit Anaconda distribution.
Install wlan_exp Package
A core component of 802.11 Reference Design Experiments Framework is the wlan_exp Python package. You must use a wlan_exp version that matches the 802.11 Reference Design version running in your WARP v3 nodes.
We strongly recommend using the wlan_exp package bundled in the reference design .zip archive. This version of the package is tested with the C code, FPGA designs and pre-compiled bitstreams bundled in the same release. The wlan_exp package is located in the /Python_Reference folder in the reference design .zip archive.
To install the wlan_exp package in your Python environment:
- Launch the Spyder IDE in your Anaconda installation (Start Menu -> Anaconda (64-bit) -> Spyder)
- Select Tools -> PYTHONPATH Manager
- If the PYTHONPATH window shows any existing 802.11 Reference Design Python_Reference entries, remove them
- Click Add
- Navigate to the Python_Reference folder in the expanded reference design archive (for example "C:\work\Mango_802.11_RefDes_v1.0.0\Python_Reference")
- Click Select Folder
- Click Synchronize, then Yes
- Click Close
To test whether the path setup was successful, quit and re-launch Spyder. Then in the Spyder Python console, run import wlan_exp. If this runs without error, the wlan_exp package is properly installed.
Configure and Connect WARP v3 Nodes
The 802.11 Reference Design Experiments Framework communicates with WARP v3 nodes via Ethernet. Your PC (with Python and the wlan_exp package) and all WARP v3 nodes must be connected to the same Ethernet switch.
We recommend using a dedicated NIC for wlan_exp experiments. This NIC should have a static IP address in the 10.0.0.x subnet. This is the same recommended setup as for WARPLab.
Ethernet Setup:
- Set your PC NIC IP address to 10.0.0.250 and subnet mask to 255.255.255.0
- Connect the NIC to a 1Gb Ethernet switch
- Connect ETH_B of each WARP v3 node to the same switch
Important: do not connect ETH_A of multiple WARP v3 nodes to the same switch. The 802.11 Reference Design wired-wireless portal will attempt to bridge ETH_A to the wireless interface. Mixing this behavior with wlan_exp traffic will have unpredictable results.
Nodes Configuration:
- If you have one WARP v3 node, configure this node as an 802.11 AP using the AP bitstream from the Bitstream_Reference folder
- If you have multiple WARP v3 nodes, configure one as an AP (AP bitstream) and the rest as stations (STA bitstream)
Testing Your Setup
- Launch a Python shell (Start Menu -> Anaconda (64-bit) -> Anaconda Command Prompt)
- Change directory to the Python_Reference/Examples folder (cd C:\work\Mango_802.11_RefDes_v1.0.0\Python_Reference\examples)
- Run the blink_node_leds.py example: python blink_node_leds.py
All of your WARP v3 nodes should blink their hex displays for 5 seconds. If any node is not blinking, double-check your Ethernet connections (use ETH_B!), PC IP address and Python setup.
Next Steps
Once your setup is complete we suggest exploring the wlan_exp examples.
For Python Experts
The wlan_exp package requires Python 2 (version 2.7.5 or later) or Python 3 (version 3.3.5 or later).
Most functions of the wlan_exp package only require the Python standard library. These functions include node initialization, control, monitoring and retrieval of log data.
We recommend a 64-bit installation. A 32-bit Python installation will work for most wlan_exp usage except processing large (multi-gigabyte) log files.
Some of the log parsing utilities and examples use third-party packages. To run all of our examples your Python installation must have:
- NumPy (version 1.8 or later)
- Pandas (version 0.13 or later)
- matplotlib (version 1.3.1 or later)
- h5py (version 2.2 or later)
In our testing the wlan_exp examples that use these packages work in both Python 2.7 and 3.3.