|  | .. _wpanusb-sample: | 
|  |  | 
|  | wpanusb sample | 
|  | ############## | 
|  |  | 
|  | Overview | 
|  | ******** | 
|  |  | 
|  | This application exports ieee802154 radio over USB to be used in | 
|  | other OSes such as Linux.  For Linux, the ieee802154 stack would be | 
|  | implemented using the Linux SoftMAC driver. | 
|  | This sample can be found under :zephyr_file:`samples/net/wpanusb` in the | 
|  | Zephyr project tree. | 
|  |  | 
|  | Requirements | 
|  | ************ | 
|  |  | 
|  | - a Zephyr board with supported 802.15.4 radio and supported USB driver | 
|  | (such as the :ref:`nrf52840dk_nrf52840` or :ref:`atsamr21_xpro`) | 
|  | connected via USB to a Linux host | 
|  | - wpanusb Linux kernel driver (in the process of being open sourced) | 
|  | - wpan-tools (available for all Linux distributions) | 
|  |  | 
|  | Building and Running | 
|  | ******************** | 
|  |  | 
|  | There are configuration files for various setups in the | 
|  | ``samples/net/wpanusb`` directory: | 
|  |  | 
|  | - :file:`prj.conf` | 
|  | This is the standard default config.  This can be used by itself for | 
|  | hardware which has native 802.15.4 support. | 
|  |  | 
|  | - :file:`overlay-cc2520.conf` | 
|  | This overlay config enables support for CC2520 | 
|  |  | 
|  | Build the wpanusb sample for a board: | 
|  |  | 
|  | .. zephyr-app-commands:: | 
|  | :zephyr-app: samples/net/wpanusb | 
|  | :board: <board to use> | 
|  | :gen-args: -DEXTRA_CONF_FILE=<overlay file to use> | 
|  | :goals: build | 
|  | :compact: | 
|  |  | 
|  | Example building for the Nordic nRF52840 Development Kit: | 
|  |  | 
|  | .. zephyr-app-commands:: | 
|  | :zephyr-app: samples/net/wpanusb | 
|  | :board: nrf52840dk_nrf52840 | 
|  | :goals: build | 
|  | :compact: | 
|  |  | 
|  | When connected to Linux with wpanusb kernel driver, it is recognized as: | 
|  |  | 
|  | .. code-block:: console | 
|  |  | 
|  | ... | 
|  | T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=12  MxCh= 0 | 
|  | D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs=  1 | 
|  | P:  Vendor=2fe3 ProdID=000d Rev=01.00 | 
|  | C:  #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA | 
|  | I:  If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=wpanusb | 
|  | ... | 
|  |  | 
|  | The following script enables the network interface in Linux | 
|  | (uses iwpan tool from above): | 
|  |  | 
|  | .. code-block:: console | 
|  |  | 
|  | #!/bin/sh | 
|  | PHY=`iwpan phy | grep wpan_phy | cut -d' ' -f2` | 
|  | echo 'Using phy' $PHY | 
|  | iwpan dev wpan0 set pan_id 0xabcd | 
|  | iwpan dev wpan0 set short_addr 0xbeef | 
|  | iwpan phy $PHY set channel 0 26 | 
|  | ip link add link wpan0 name lowpan0 type lowpan | 
|  | ip link set wpan0 up | 
|  | ip link set lowpan0 up |