zephyr/samples/net/wpanusb
Anas Nashif 87de383c66 tests: CONFIG_ARC_INIT is n by default
CONFIG_ARC_INIT is set to 'n' by default, no need to set this in the
prj.conf.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-07-30 15:17:51 -04:00
..
src samples: wpanusb: Remove old dead code 2018-07-18 08:23:00 -04:00
CMakeLists.txt
README.rst samples: usb: wpanusb: update README to rst format 2018-07-17 11:13:16 +02:00
overlay-cc1200.conf samples: net: wpanusb: add TI CC1200 overlay config 2018-07-17 11:13:16 +02:00
overlay-cc2520.conf samples: net: wpanusb: split cc2520 settings from prj.conf 2018-07-17 11:13:16 +02:00
overlay-mcr20a.conf samples: usb: wpanusb: add MCR20A overlay config 2018-07-17 11:13:16 +02:00
prj.conf tests: CONFIG_ARC_INIT is n by default 2018-07-30 15:17:51 -04:00
sample.yaml samples: net: wpanusb: fix sanitycheck 2018-07-17 11:13:16 +02:00
wpan-radio-spec.txt

README.rst

.. _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-cc1200.conf`
    This overlay config enables support for CC1200

- :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: <board to use>
   :conf: <config file to use>
   :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