RTL Multi-User Server is a small python script to allow multiple clients control the same RTL-SDR compatible DVB-T tuner, while also receiving I/Q samples.
Update 2020-05-27: This project is not developed anymore. Check the
nmux
tool in csdr for a faster alternative (however, that does not support forwarding commands, so it's not an exact replacement).
- rtl_mus requires an instance of rtl_tcp to connect to.
- When it receives a command from any of its clients, rtl_mus resends it to the rtl_tcp server.
- It continously reads samples from rtl_tcp, and resends them to the clients.
rtl_mus can also execute a command to perform DSP processing on the I/Q stream; then the processed I/Q stream is sent to its clients. A sample command for FLAC processing is included in the config file. FLAC is a loseless codec originally intended for audio, but it seems to work on sampled RF, too... 😄 As of a FLAC processed I/Q stream requires about 20% less bandwidth than the original, it might help to transport I/Q signals over a low-bandwidth internet link, but as of none of the SDR software can decode FLAC right now, another instance of rtl_mus has to be run locally, to decode the FLAC-encoded signal.
By changing the source code, one can easily allow and deny remote clients execute particular commands on the rtl_tcp server. Commands that are not allowed are simply not forwarded by rtl_mus.
It can be particularly useful to avoid your GNU Radio flowgraph hang when using an OsmoSDR Source block.
András Retzler [email protected]