tx_sdr tool for transmitting data to SDRs,
based on rtl_sdr from librtlsdr,
and rx_sdr from rx_tools,
using the SoapySDR vendor-neutral SDR support library,
intended to support a wide range of TX-capable devices.
Mostly untested pre-release quality code, YMMV.
Install SoapySDR, then run:
mkdir build ; cd build
cmake ..
make
After building, these binaries should then be available at the build directory:
tx_sdr- transmits raw I/Q datapulse_gen- create I/Q data file from pulse textcode_gen- create I/Q data file from code text
Also some test and example programs:
encode_ascii- simple CLI to test ASCII encodingencode_dmc- simple CLI to test DMC encodingencode_hex- simple CLI to test HEX encodingencode_imc- simple CLI to test IMC encodingencode_mc- simple CLI to test MC encodingcode_dump- an example how to parse and process code textexample_gen- an example how to parse code text programmatically
CU4- 4-bit /channel, unsigned I/Q data (1 byte per sample)CS4- 4-bit /channel, signed I/Q data (1 byte per sample)CU8- 8-bit /channel, unsigned I/Q dataCS8- 8-bit /channel, signed I/Q dataCU12- 12-bit /channel, unsigned I/Q data (3 bytes per sample)CS12- 12-bit /channel, signed I/Q data (3 bytes per sample)CU16- 16-bit /channel, unsigned I/Q dataCS16- 16-bit /channel, signed I/Q dataCU32- 32-bit /channel, unsigned I/Q dataCS32- 32-bit /channel, signed I/Q dataCU64- 64-bit /channel, unsigned I/Q dataCS64- 64-bit /channel, signed I/Q dataCF32- 32-bit /channel, float I/Q dataCF64- 64-bit /channel, double I/Q data
For CU8 (CU4) the value range is 0 to 0xff (0xf) with uniform distribution,
i.e. a bias of 127.5 (7.5).
This matches the output format of the RTL-SDR receivers.
For CS8 (CS4) the value range is -127 to 127 (-7 to 7) with uniform distribution,
i.e. a smaller dynamic range than the unsigned formats, but without bias.
- CODE text
- PULSE text
- OOK text
- ASK text
- FSK text
- PSK text
- TONE text
Tools to be added soon will implement modulation and encoding for:
OOK,ASK,AMFSK,4-FSK,GFSK,FMManchester
Currently tested with a LimeSDR-USB, LimeSDR-mini, and LimeNET Micro, but supporting all devices supported by SoapySDR is the goal. Experimental, use at your own risk, but bug reports and patches are welcome.