.. _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. Requirements ************ - a Zephyr WPANUSB enabled board (such as the :ref:`nrf52840_pca10056`) connected via USB to a Linux host. - WPANUSB kernel driver (in the process of being open sourced) - IWPAN host tools at [http://wpan.cakelab.org/releases/](http://wpan.cakelab.org/releases/) 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 - :file:`overlay-mcr20a.conf` This overlay config enables support for MCR20A Build the WPANUSB sample like this: .. zephyr-app-commands:: :zephyr-app: samples/net/wpanusb :board: :conf: :goals: build :compact: Example building for the Nordic nRF52840 Development Kit: .. zephyr-app-commands:: :zephyr-app: samples/net/wpanusb :host-os: unix :board: nrf52840_pca10056 :goals: run :compact: Example building for the Quark SE C1000 Devboard with TI CC2520 support: .. zephyr-app-commands:: :zephyr-app: samples/net/wpanusb :host-os: unix :board: quark_se_c1000_devboard :conf: "prj.conf overlay-cc2520.conf" :goals: run :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=0101 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