Getting Started

830 views
Skip to first unread message

Chuck Yahrling

unread,
May 1, 2015, 8:46:46 AM5/1/15
to pothos...@googlegroups.com
Hi Josh,

Noob here.  FB on the windows Pothos. I'm trying to sort out what all the pieces are are in the gnuradio picture puzzle.  So far I have Xubuntu 14.04.4 LTS and GRC 3.7.2.1 (via apt-get) up and running. Have tried to follow Balint's old youtube vids and can built rudimentary flow graphs and get soundcard audio out so I think my workstation is valid so far as it goes. Comments anyone? 

Where I need guidance is understanding how things like Pothos replace or enhance (not sure which) gnuradio. Googling around leads me to mostly abandoned web sites with circa 2012 info I don't trust.   

Can you point me to at least a glossary that gives basic explanations of how all the current parts fit together? I presume that will depend on what I want to do but lets assume I want to look at wav file sources and instrument them for now, as a self-tutorial.  right now GRC complains that my wav files, generated from either audio or IQ out from NaP3 (using live signals in ham bands), are invalid. I also see from one or your vids the exact kind of instruments I want to play with, which so far I don't appear in my GRC install.  I presume some libraries need to be added but I don't want to blindly frag what I have working now by misunderstanding what comes next. 

Also, since I have the above working on Xubuntu, should I install linux Pothos on the same machine? Or is it just as valid to install WIN Pothos on a different machine and somehow get the two communicating.   I'm assuming that I either use win pothos standalone or have to install gnuradio for win on the same machine to get full capability.

High altitude overview docs, even if brief, would aid guys like me trying to feel our way along.

At any rate, thanks for the magnificent work that you and others are doing.

73, chuck

Josh Blum

unread,
May 2, 2015, 12:14:20 AM5/2/15
to pothos...@googlegroups.com
Chuck,

I see what you mean. A lot of the documentation so far has been geared
towards someone intimately familiar with the ecosystem and compiling
everything from source. It definitely needs a top-down overview and
getting started guide. But lets see what I can clear up here:

Pothos itself is a scheduling framework and an API for designing
processing blocks. I think some of its prominent features are the
network-distributed topologies, minimal-boilerplate for creating new
processing blocks, and buffer management techniques.

There is a GUI design tool to accompany the library (pothos gui). It has
its own interesting features, like live evaluation, live topology
reconfiguration, support for the network topologies, and embedded
widgets and plotters. Some more on the features summary page:
https://github.com/pothosware/pothos/wiki/Features

Outside of that we have toolkits, they are usually named
pothos-something. Toolkits add blocks, widgets, plotters, devices, and
language bindings to the environment. Here is a complete list of known
toolkits: https://github.com/pothosware/pothos/wiki/ComponentsMap

Now the GNU Radio toolkit is essentially a branch that allows GNU Radio
processing blocks to hook into the Pothos framework. They are usable
from the API and within the GUI. The branch is done in such a way that
it will not interfere with normal GNU Radio operation. Read more here:
https://github.com/pothosware/gnuradio/wiki

Then we have Soapy SDR as a sister project. Soapy SDR is really about
creating compatibility for different SDR APIs and frameworks, creating a
useful abstraction API for SDRs, and making it easy to enter new devices
into the SDR ecosystem. Also, the SDR interface blocks for pothos use
Soapy SDR rather than the API of a specific hardware vendor:
https://github.com/pothosware/SoapySDR/wiki

So, I have put together the windows environment first thinking that
windows users have a greater barrier to getting started. An ubuntu PPA
for this software is on its way so that the same environment can be
installed rather painlessly with apt-get. But currently to use this
software suite on linux now, you will have to compile it. That may not
be worth the trouble, but if you are interested, here are the basic steps:

* install drivers for your hardware, example rtl-sdr, either from source
or by some pre-built means
* install soapy sdr: https://github.com/pothosware/SoapySDR/wiki/BuildGuide
* install pothos, this is a super-repo with many of the toolkits
included: https://github.com/pothosware/pothos/wiki/BuildGuide
* And then finally install this gnuradio branch and the post-install
instructions: https://github.com/pothosware/gnuradio/wiki#installation

In regards to GRC missing the plotting widgets: GRC isnt going to have
the exact same plotter widgets as seen in my videos, but it should have
the equivalent. So, you may not have installed the gnuradio qt widgets
component or the wx widgets component if they are missing. Thats my best
guess, but I'm not familiar with the apt package mentioned, it may
simply be missing the plotters.

In regards to the wav file format. GNU Radio does come with wav file
source and sink blocks, but I can imagine that there is some kind of
format mismatch and that its not really .wav format or some unrecognized
variant. Perhaps you need to run the files through an audio converter.
Also, if you can convert the files into a raw binary stream of floats or
ints, you should be able to use the binary file source to stream them
into a topology as well.

I hope that covers everything. Sorry about the confusion. I will be
working on apt packages and tutorials in the coming weeks. And a
top-down wiki page with this sort of information sounds like a great
idea as well.

Thanks for the feedback,
-josh

Josh Blum

unread,
May 9, 2015, 4:45:20 AM5/9/15
to pothos...@googlegroups.com
quick update:

I put together an overview wiki on the main project page:
https://github.com/pothosware/pothos/wiki/Overview

And a getting started guide as well:
https://github.com/pothosware/pothos/wiki/GettingStarted

Thanks,
-josh

Allan W

unread,
Apr 22, 2017, 2:51:02 PM4/22/17
to Pothos Users, jo...@joshknows.com
I have an RTL-SDR dongle which has been working well. I installed the driver for it using Zadig.

I just installed the Pothos SDR environment on Windows 7 using binary

I am trying to follow the tutorial on  

When I ran "SoapySDRUtil.exe --find" it found the dongle but returned "driver=rtlsdr" instead of "driver=rtl". When I ran 
SoapySDRUtil --make="driver=rtlsdr" it reported success. Then I tried CubicSDR and it ran fine.

Then I launched the Pothos GUI and instantiated an SDR Source block as shown in the tutorial, but using {"driver":"rtlsdr"}. I got the error
"SDRBlock:call SetupDevice threw:Exception:SoapySDR::Device::make() no match"

Here is the output from SoapySDRUtil --probe

------------------------------------------------------------------------------------------------------------------------------------------

C:\Users\allan>SoapySDRUtil --probe="driver=rtlsdr"

######################################################

## Soapy SDR -- the SDR abstraction library

######################################################


Probe device driver=rtlsdr

Win32; Microsoft Visual C++ version 14.0; Boost_106300; UHD_003.010.001.001-0-gc705922a


Found Rafael Micro R820T tuner

Found Rafael Micro R820T tuner


----------------------------------------------------

-- Device identification

----------------------------------------------------

  driver=RTLSDR

  hardware=RTLSDR

  origin=https://github.com/pothosware/SoapyRTLSDR

  rtl=0


----------------------------------------------------

-- Peripheral summary

----------------------------------------------------

  Channels: 1 Rx, 0 Tx

  Timestamps: NO

  Other Settings:

     * Direct Sampling - RTL-SDR Direct Sampling Mode

       [key=direct_samp, default=0, type=string, options=(0, 1, 2)]

     * Offset Tune - RTL-SDR Offset Tuning Mode

       [key=offset_tune, default=false, type=bool]

     * I/Q Swap - RTL-SDR I/Q Swap Mode

       [key=iq_swap, default=false, type=bool]


----------------------------------------------------

-- RX Channel 0

----------------------------------------------------

  Full-duplex: YES

  Supports AGC: YES

  Stream formats: CS8, CS16, CF32

  Native format: CS8 [full-scale=128]

  Stream args:

     * Buffer Size - Number of bytes per buffer, multiples of 512 only.

       [key=bufflen, units=bytes, default=16384, type=int]

     * Buffer Count - Number of buffers per read.

       [key=buffers, units=buffers, default=15, type=int]

  Antennas: RX

  Full gain range: [0, 49.6] dB

    TUNER gain range: [0, 49.6] dB

  Full freq range: [23.999, 1764] MHz

    RF freq range: [24, 1764] MHz

    CORR freq range: [-0.001, 0.001] MHz

  Sample rates: [0.25, 3.2] MHz

-------------------------------------------------------------------------------------------------------------------------------------


Any help would be greatly appreciated. Thanks.


Allan W

unread,
Apr 22, 2017, 5:29:58 PM4/22/17
to Pothos Users, jo...@joshknows.com
Followup to previous post

When I used empty braces for the Device Args field in SDR Source, I got a different error

Framework Topology Connect Error: Pothos::Topology::commit(): Framework Topology Connect Error: SDRSource0.activate(): Exception: RtAudio init error 'RtApiDs::probeDeviceOpen: error (Invalid parameter) creating input buffer (Default Device)!
  

Josh Blum

unread,
Apr 22, 2017, 11:34:15 PM4/22/17
to Allan W, Pothos Users


On 04/22/2017 11:51 AM, Allan W wrote:
> I have an RTL-SDR dongle which has been working well. I installed the
> driver for it using Zadig.
>
> I just installed the Pothos SDR environment on Windows 7 using binary
> PothosSDR-2017.03.12-vc14-x64.exe
> <http://downloads.myriadrf.org/builds/PothosSDR/PothosSDR-2017.03.12-vc14-x64.exe>
>
> I am trying to follow the tutorial on
> https://github.com/pothosware/PothosSDR/wiki/Tutorial
>
> When I ran "SoapySDRUtil.exe --find" it found the dongle but returned
> "driver=rtlsdr" instead of "driver=rtl". When I ran
> SoapySDRUtil --make="driver=rtlsdr" it reported success. Then I
> tried CubicSDR and it ran fine.
>
> Then I launched the Pothos GUI and instantiated an SDR Source block as
> shown in the tutorial, but using {"driver":"rtlsdr"}. I got the error
> "SDRBlock:call SetupDevice threw:Exception:SoapySDR::Device::make() no
> match"
>

That is odd, since SoapySDR definitely sees the device. Can you set the
affinity zone to "GUI" for the sdr source? Use the same
{"driver":"rtlsdr"}. I wonder if the process cant find it for some
reason:
https://github.com/pothosware/pothos-gui/wiki/Tutorial#applying-an-affinity-zone

As far as this error: Exception: RtAudio init error
'RtApiDs::probeDeviceOpen: error (Invalid parameter) creating input
buffer (Default Device)!

There is a package soapy audio that picks up various audio devices on
the system. The audio devices are always present, so it will always find
them. It probably is very picky about the sample rate though.

-josh

Allan W

unread,
Apr 23, 2017, 2:11:06 PM4/23/17
to Pothos Users, fre...@gmail.com, jo...@joshknows.com
Thanks, I will try that. Does the fact that I got the RtAudio init error instead of the  SoapySDR error suggest that SoapySDR was actually seeing my device ?

Allan

Allan W

unread,
Apr 25, 2017, 12:14:15 AM4/25/17
to Pothos Users, fre...@gmail.com, jo...@joshknows.com
Changing the affinity zone to GUI has cleared the SoapySDR error I was getting with {"driver":"rtlsdr"} but I'm still getting the RtAudio error. Is there a test program I can run to see if my audio drivers are compatible?

Allan W

unread,
Apr 25, 2017, 12:55:27 AM4/25/17
to Pothos Users, fre...@gmail.com, jo...@joshknows.com
I created some simple topologies that generated sound. No errors and they sounded OK.


Josh Blum

unread,
Apr 25, 2017, 1:56:31 AM4/25/17
to Allan W, Pothos Users
Allan,

Sounds like everything is working. Thats interesting that the rtl was
visible to gui and not one of the subprocesses that it spawned. Its good
to keep in mind, but I dont have a good explanation. I wonder if thats a
security or perhaps virus scan feature to "protect" devices (just a wild
guess).

I dont have a lot of control over the rtaudio stuff. But the host
explorer can show what SDR devices SoapySDR is seeing. It will be listed
after the CPUs like in this screenshot:
https://github.com/pothosware/pothos-gui/wiki/Tutorial#the-host-explorer-panel

The next release will also have a dropdown for the available devices, so
it will be a little more clear.

-josh
Reply all
Reply to author
Forward
0 new messages