Python interface for SmartRF Sniffer 2 Firmware

Overview

#TI SmartRF Packet Sniffer 2 Python Interface

TI Makes available a nice packet sniffer firmware, which interfaces to Wireshark. You can see this project here: https://www.ti.com/tool/download/PACKET-SNIFFER-2

Unfortunately sometimes you want to do stuff like scan channels, which is a hassle to do via the GUI. Luckily they document the interface.

Documentation from TI

The Documentation is installed when you install the Tool, but you can find it online.

Link to documentation: https://dev.ti.com/tirex/explore/node?node=AJ1gMrg0O1AMxi9KUZmTiQ__FUz-xrs__LATEST

Direct link to firmware interface codes: https://software-dl.ti.com/lprf/packet_sniffer_2/docs/user_guide/html/sniffer_fw/firmware/command_interface.html

Errata from TI Docs

The TI documentation claims the serial interface is at 921.6kbit baud, but on my board it was at 3Mbit baud. I'm not sure if all firmware does this or just some of the boards?

Setup

You'll need to flash the firmware onto your board. Basically ensure the GUI tool works first before trying this interface, as you'll get less feedback with this Python tool.

Scanning

For example, on my CC1352R1 board I can scan all 900 MHz channels + PHYs:

test = TICommand('COM90')

for phy in range(0, 9):
    for ch in range(0, 129):
        print("Phy = %x, Channel %d"%(phy, ch))
        test.sniff_stop()    
        test.cmd_set_frequencymhz(902.2 + 0.2*ch)
        test.cmd_set_phy(phy)
        test.sniff_start()

        rxd = 0

        for i in range(0, 3):
            time.sleep(1)

            resp = test.rx()
            if resp:
                print(resp)
                rxd += 1

Note the PHY index is specified in the reference docs from TI, as each board/chip uses different indexes. Also some of them are using the wrong frequency for the given phy etc, this is a quick-n-dirty way of doing it.

You might also like...
Python package for covariance matrices manipulation and Biosignal classification with application in Brain Computer interface

pyRiemann pyRiemann is a python package for covariance matrices manipulation and classification through Riemannian geometry. The primary target is cla

Easy to use Python camera interface for NVIDIA Jetson

JetCam JetCam is an easy to use Python camera interface for NVIDIA Jetson. Works with various USB and CSI cameras using Jetson's Accelerated GStreamer

A python interface for training Reinforcement Learning bots to battle on pokemon showdown
A python interface for training Reinforcement Learning bots to battle on pokemon showdown

The pokemon showdown Python environment A Python interface to create battling pokemon agents. poke-env offers an easy-to-use interface for creating ru

The Generic Manipulation Driver Package - Implements a ROS Interface over the robotics toolbox for Python
The Generic Manipulation Driver Package - Implements a ROS Interface over the robotics toolbox for Python

Armer Driver Armer aims to provide an interface layer between the hardware drivers of a robotic arm giving the user control in several ways: Joint vel

Hcpy -  Interface with Home Connect appliances in Python
Hcpy - Interface with Home Connect appliances in Python

Interface with Home Connect appliances in Python This is a very, very beta inter

A series of Python scripts to access measurements from Fluke 28X meters. Fluke IR Remote Interface required.

Fluke289_data_access A series of Python scripts to access measurements from Fluke 28X meters. Fluke IR Remote Interface required. Created from informa

Unified Interface for Constructing and Managing Workflows on different workflow engines, such as Argo Workflows, Tekton Pipelines, and Apache Airflow.

Couler What is Couler? Couler aims to provide a unified interface for constructing and managing workflows on different workflow engines, such as Argo

Web-interface + rest API for classification and regression (https://jeff1evesque.github.io/machine-learning.docs)
Web-interface + rest API for classification and regression (https://jeff1evesque.github.io/machine-learning.docs)

Machine Learning This project provides a web-interface, as well as a programmatic-api for various machine learning algorithms. Supported algorithms: S

A Neural Net Training Interface on TensorFlow, with focus on speed + flexibility
A Neural Net Training Interface on TensorFlow, with focus on speed + flexibility

Tensorpack is a neural network training interface based on TensorFlow. Features: It's Yet Another TF high-level API, with speed, and flexibility built

Owner
Colin O'Flynn
Colin is a huge nerd.
Colin O'Flynn
FIRM-AFL is the first high-throughput greybox fuzzer for IoT firmware.

FIRM-AFL FIRM-AFL is the first high-throughput greybox fuzzer for IoT firmware. FIRM-AFL addresses two fundamental problems in IoT fuzzing. First, it

null 356 Dec 23, 2022
Emulation and Feedback Fuzzing of Firmware with Memory Sanitization

BaseSAFE This repository contains the BaseSAFE Rust APIs, introduced by "BaseSAFE: Baseband SAnitized Fuzzing through Emulation". The example/ directo

Security in Telecommunications 138 Dec 16, 2022
null 571 Dec 25, 2022
ROS-UGV-Control-Interface - Control interface which can be used in any UGV

ROS-UGV-Control-Interface Cam Closed: Cam Opened:

Ahmet Fatih Akcan 1 Nov 4, 2022
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 3k Jan 3, 2023
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 2.8k Feb 12, 2021
PyStan, a Python interface to Stan, a platform for statistical modeling. Documentation: https://pystan.readthedocs.io

PyStan NOTE: This documentation describes a BETA release of PyStan 3. PyStan is a Python interface to Stan, a package for Bayesian inference. StanĀ® is

Stan 229 Dec 29, 2022
Python interface for the DIGIT tactile sensor

DIGIT-INTERFACE Python interface for the DIGIT tactile sensor. For updates and discussions please join the #DIGIT channel at the www.touch-sensing.org

Facebook Research 35 Dec 22, 2022
Selene is a Python library and command line interface for training deep neural networks from biological sequence data such as genomes.

Selene is a Python library and command line interface for training deep neural networks from biological sequence data such as genomes.

Troyanskaya Laboratory 323 Jan 1, 2023