Summary
| Mentor(s): | Dr. Mike Murphy |
|---|---|
| Project Type: | Software development; hardware interface |
| Technologies: | Python, Qt (PySide6 and Qt Designer), RTL-SDR, Linux, Git |
| Undergraduate Credit: | CSCI 399, CSCI 490 |
| Graduate Credit: | IST 659 |
| Locality: | Main campus and/or remote (may need to purchase an RTL-SDR tuner if remote) |
Purpose
TealPlay already has support for TV tuning on Linux systems using the dvbv5-zap command-line program to set up the tuner. However, the dvbv5 applications are not designed to work with audio-only radio tuners. They are instead intended for digital video recorder (DVR) applications.
Radio support could be added (again, primarily on Linux platforms) by adding functionality to use inexpensive RTL-SDR tuners. With minimal hardware, TealPlay could support the FM broadcast band, NOAA weather radio, and 2-meter amateur radio. Additional hardware could enable the AM broadcast band, shortwave, and other amateur radio bands. It would even be possible to download weather satellite images from NOAA using the correct hardware and antenna, although such a feature would start to stray out of scope for TealPlay.
There are a few different ways to interface with the RTL-SDR hardware. Some of the methods, such as using GNU Radio, won't work in our application due to licensing conflicts. The two most promising approaches would be to use the rtl-sdr command-line utilities directly or to use the SoapySDR Python library for a potentially cleaner design.
Scope of Work
Add support for the RTL-SDR software defined radio tuner to TealPlay for Linux systems. Once the hardware interface and audio decoding have been implemented, a simple file containing tuning information (frequency, modulation, etc.) would be added to the media library. TealPlay would thereby play a radio station (or listen on a frequency) in the same way that it can play any other supported media.