Grant: GNU Radio Usability Enhancements

Date: March 2022
Amount: $263,011

GNU Radio is a free, open-source software-development toolkit that provides signal processing blocks to implement software radios. GNU Radio is always striving to be accessible to anyone across the globe, regardless of which operating system they are using and how much experience they have with wireless communications and digital signal processing. Historically, Windows operating system users have not had adequate support, despite it being the operating system used by nearly all K-12 students. Increasingly, macOS is becoming the platform of choice for both students and individuals. GNU Radio wants to be more intuitive and make it easier to install third-party modules known as out-of-tree modules (OOTs).

The GNU Radio project has identified a number of improvements to GNU Radio that it hopes will make GNU Radio easier to use, more accesible, and easier to maintain. These improvements are broken down into the following categories:

  • Installation of GNU Radio and out-of-tree modules (OOTs)
  • Documentation
  • Ongoing software maintenance and support
  • GNU Radio Companion (GRC)

The projects were carefully chosen to extend and advance work already underway, but hindered by lack of specialist experience. This grant from ARDC will allow GNU Radio to hire experts specialized in each area. We believe the specific GUI projects this ARDC grant would fund will also give the new GRC the final push that it needs to become the interface that ships with GNU Radio and provides users a much-improved experience. For each improvement category described above, one or more mentors (who will be volunteers from the GNU Radio leadership or core developers) will guide the work. These mentors will help the contractors stay aligned to the goals and offer feedback at periodic intervals. This grant will unlock the considerable existing capabilities to a large population in a timely manner and bring new people into the community.

Update

This grant was successful in significantly improving GNU Radio and GNU Radio Companion to be more usable, with more reliable installation and operation, and better documented, especially for users of Windows and MacOS.

With grant funds, GNU Radio (with management / sponsorship help from SETI Institute) was able to hire and coordinate paid contractors to work on updating GNU Radio in areas that were not well addressed by volunteers. One significant issue addressed with this grant was that most volunteers contributing to GNU Radio use Linux, and thus their contributions aren’t immediately usable by Windows and MacOS users. With grant funds, contractors with expertise in Windows and MacOS development were hired to improve GNU Radio installation on Windows and MacOS and streamline future cross-platform compatibility.

Many known bugs in GNU Radio were fixed (the majority), or if not fixed, at least triaged for easier troubleshooting in the future. In addition, the GNU Radio Companion graphical user interface for easier use of GNU Radio was significantly improved, and the provided examples were verified for full functionality, and updated as necessary. GNU Radio’s documentation was also improved, including a migration path from the existing Wiki to other documentation systems.

One significant issue for future work on GNU Radio was identified – the coordination and management of the myriad tasks of the paid contractors was a significant time commitment, perhaps not compatible with volunteer labor.

A bonus result of the grant was a funded project to create a QPSK packet modem reference design using GNU Radio 4 (a newer branch of GNU Radio) by Daniel Estevez EA4GPZ. This project was presented at the European GNU Radio Days event – https://events.gnuradio.org/event/23/contributions/611/; video – https://archive.org/details/youtube-Utpvxn77P8k. The final demo accomplished an over-the-air IP link transferring over 1 Mbps. The development of this reference design has encouraged additional contributors to work with GNU Radio 4’s code and been invaluable for finding remaining areas in GNU Radio 4 which could be improved.

Learn more at https://www.gnuradio.org/.