Announcing Pothos SDR dev environment Wed, Apr 29 2015 AM
I am pleased to announce the Pothos SDR development environment -- for Windows! The goal is to make it easier for Windows users to design and develop for SDR hardware. The development environment is based around the Pothos data-flow suite, and contains graphical design tools, GNU Radio signal processing blocks, and various drivers for hardware support.
Getting started
The getting started tutorial contains a brief series of steps that should get most people off the ground and running right away. However, this is something new, and I fully expect there to be bugs and various issues. If you catch a bug or have suggestion, please don't hesitate to contact me. I am eager to hear about it.
The challenge
I've had a quite a few requests for windows installers for Pothos, and so I have been thinking quite a bit about how to do this right. Basically, there are a lot of software packages and dependencies involved in simply getting a minimal system up and running. On Linux, there are some very excellent software repositories like apt and yum to make obtaining dependencies painless. In addition, many of the build scripts are adept at automatically locating these dependencies on the system.
But its not so easy on Windows. Most dependencies have to be located, downloaded, and unpacked. Then you need to tell the various build scripts where the dependencies are located, and make sure that the runtime DLLs can be found in the PATH. Anyway, This gets quite tedious for a dozen or so dependencies and software packages, and it poses a very real barrier to entry for anyone simply trying to get started.
Also, I have spent a great deal of time just patching and tweaking various software packages to get them building in Visual Studio. For the most part the patches were minor, and CMake has been truly wonderful at being a cross platform build system, but its just something I wouldn't want my users to go through with.
Future endeavors
Actual installer: Currently, the development environment is just a zip file that must be unpacked in a specific directory (C:/PothosSDR). To move the environment to another location would require setting the environment variables of various software packages so they can locate various plugins and resources. With an installer, the user can select the destination, and all of the environment variables including the PATH can be set automatically. Start menu short cuts as well!
More hardware drivers: The goal is to get as many devices supported in this environment as possible. I had to pick a handful (including rtl) to include in this initial release. I am looking for suggestions for additional drivers to build, and help testing. And it will speed things up a great deal if a the driver is known to build under visual studio, and has a gr-osmosdr or Soapy SDR wrapper.
A better build system: The build system for this development environment is just a very large batch script that installs dependencies, clone repositories, and configures and builds the software packages. This is great until something crashes a long the way as the script isn't very fault tolerant. What's cool is that CMake has this External Project module that creates build targets for other projects. You can enter git repos and build commands, and dependencies on other projects. In essence, I can make a CMake project to build other CMake projects that handles faults better and can build based on dependency ordering.