Skip to content
Erwin (de F/PE3ES) edited this page Aug 18, 2020 · 8 revisions

Pothos overview

Pothos is a scheduling framework and an API for solving problems with interconnected processing blocks. Some of its prominent features are the network-distributed topologies, minimal-boilerplate for creating new processing blocks, and buffer management techniques. Read more on the features page.

Graphical tools

Pothos has a GUI design tool to accompany the library (Pothos GUI). Some prominent features of the GUI are live evaluation, live topology reconfiguration, support for networked topologies, and embedded widgets and plotters. Learn more on the GUI tutorial.

Add-on toolkits

Pothos has many add-on projects call toolkits. Toolkits add processing blocks, widgets, plotters, device support, and language bindings to the Pothos environment. A list of offcial toolkits can be found on the components map.

SDR support

Software defined radio (SDR) is one of the major use-cases for Pothos. To support SDR, Pothos has a toolkit for interfacing with SDR hardware, a toolkit with live signal-analysis plotters, and several toolkits with signal processing blocks.

  • The pothos-sdr toolkit provides source and sink blocks for interfacing with sample streams from SDR hardware. The blocks support advanced timing and burst features, and hook into the framework's signals and slots system to support message-oriented control. Through Soapy SDR, the SDR interface blocks can be adapted to most available hardware.
  • Soapy SDR goes above and beyond simply being a interface for the pothos-sdr toolkit. Its a compatibility layer for various SDR APIs and frameworks, a general-purpose abstraction API for SDR devices, and an easy way for new devices to enter into the SDR ecosystem.
  • The GNU Radio support toolkit allows GNU Radio DSP blocks to hook into the Pothos framework. GNU Radio blocks are usable from within the Pothos API and the Pothos GUI. This branch of GNU Radio is implemented in such a way that it will not interfere with normal GNU Radio operation.
  • The pothos-blocks toolkit provides higher level blocks that operate on packet-based data for implementing a communication MAC layer and re-transmission.
  • The pothos-widgets toolkit provides live signal-analysis plotters based on the Qwt library. These plotters can be used from within the Pothos GUI tool or instantiated in an external application.

Getting started

Get the Pothos development environment up and running with the getting started guide.