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
nmuxtool in csdr for a faster alternative (however, that does not support forwarding commands, so it's not an exact replacement).
How does it work?
- 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...
Permissions on commands
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.
On rtl_tcp crash it fills clients with zeros
It can be particularly useful to avoid your GNU Radio flowgraph hang when using an OsmoSDR Source block.
András Retzler firstname.lastname@example.org