https://github.com/triq-org/tx_tools
tx_sdr tool for transmitting data to SDRs using SoapySDR
https://github.com/triq-org/tx_tools
Last synced: 11 days ago
JSON representation
tx_sdr tool for transmitting data to SDRs using SoapySDR
- Host: GitHub
- URL: https://github.com/triq-org/tx_tools
- Owner: triq-org
- License: gpl-2.0
- Created: 2017-12-31T16:46:38.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-20T13:02:14.000Z (12 months ago)
- Last Synced: 2024-11-05T13:41:51.638Z (5 months ago)
- Language: C
- Size: 217 KB
- Stars: 40
- Watchers: 7
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
- awesome-rainmana - triq-org/tx_tools - tx_sdr tool for transmitting data to SDRs using SoapySDR (C)
README
# tx\_tools
`tx_sdr` tool for transmitting data to SDRs,
based on `rtl_sdr` from [librtlsdr](https://github.com/librtlsdr/librtlsdr),
and `rx_sdr` from [rx_tools](https://github.com/rxseger/rx_tools),
using the [SoapySDR](https://github.com/pothosware/SoapySDR) vendor-neutral SDR support library,
intended to support a wide range of TX-capable devices.## Warning: mostly untested pre-release
Mostly untested pre-release quality code, YMMV.
## Installation
[Install SoapySDR](https://github.com/pothosware/SoapySDR/wiki#installation), then run:
mkdir build ; cd build
cmake ..
make## Tools included
After building, these binaries should then be available at the build directory:
* `tx_sdr` - transmits raw I/Q data
* `pulse_gen` - create I/Q data file from pulse text
* `code_gen` - create I/Q data file from code textAlso some test and example programs:
* `encode_ascii` - simple CLI to test ASCII encoding
* `encode_dmc` - simple CLI to test DMC encoding
* `encode_hex` - simple CLI to test HEX encoding
* `encode_imc` - simple CLI to test IMC encoding
* `encode_mc` - simple CLI to test MC encoding
* `code_dump` - an example how to parse and process code text
* `example_gen` - an example how to parse code text programmatically## Output formats
* `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 data
* `CS8` - 8-bit /channel, signed I/Q data
* `CU12` - 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 data
* `CS16` - 16-bit /channel, signed I/Q data
* `CU32` - 32-bit /channel, unsigned I/Q data
* `CS32` - 32-bit /channel, signed I/Q data
* `CU64` - 64-bit /channel, unsigned I/Q data
* `CS64` - 64-bit /channel, signed I/Q data
* `CF32` - 32-bit /channel, float I/Q data
* `CF64` - 64-bit /channel, double I/Q dataFor `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.## Input formats
* CODE text
* PULSE text
* OOK text
* ASK text
* FSK text
* PSK text
* TONE text### Future plans
Tools to be added soon will implement modulation and encoding for:
* `OOK`, `ASK`, `AM`
* `FSK`, `4-FSK`, `GFSK`, `FM`
* `Manchester`## Device support
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.