Google is committed to advancing racial equity for Black communities. See how.

Pyspinel

Pyspinel is a Python CLI for the Spinel protocol, used to configure and manage OpenThread NCPs. This CLI is primarily targeted to CI tests, but can be used manually to experiment with and test OpenThread NCP instances.

Pyspinel is used to:

  • Add simulated NCP testing to continuous integration.
  • Automate testing of testbeds running NCP firmware on hardware.
  • Debug NCP builds of OpenThread.
  • Convert an OpenThread NCP into a packet sniffer.

For more information, see the README in the Pyspinel repository.

Get started

The quickest way to get started with Pyspinel is to try out the CLI:

  1. Install dependencies:
    sudo apt install python3-pip
    pip3 install --user pyserial ipaddress
  2. Clone the Pyspinel repository:
    git clone https://github.com/openthread/pyspinel
  3. Install Pyspinel:
    cd pyspinel
    python3 setup.py install
  4. Clone and build a simiulated OpenThread NCP as described in How to build OpenThread. After cloning and bootstraping, build the sim example:
    make -f examples/Makefile-simulation
  5. Run the Pyspinel CLI, using the path to your simulated build:
    cd path-to-pyspinel
    spinel-cli.py -p path-to-openthread/output/x86_64-unknown-linux-gnu/bin/ot-ncp-ftd -n 1
    
  6. Verify the OpenThread version:
    version
    OPENTHREAD/20180926-01310-g9fdcef20; SIMULATION; Feb 11 2020 14:09:56
  7. Start Thread on the simulated NCP and verify that it has become the leader in a Thread network:
    panid 1234
    Done
    ifconfig up
    Done
    thread start
    Done
    state
    leader
    Done
  8. View the help menu to see what commands are available:
    help

Contribute

You can contribute to the ongoing development of Pyspinel by submitting bug reports and feature requests to the Issue Tracker.