| Crates.io | sddc |
| lib.rs | sddc |
| version | 0.1.2 |
| created_at | 2025-12-30 08:29:27.489846+00 |
| updated_at | 2026-01-13 14:08:21.545812+00 |
| description | A native Rust driver for the RX-888 family of software-defined radios (SDR). |
| homepage | http://www.rx-888.com |
| repository | |
| max_upload_size | |
| id | 2012275 |
| size | 294,354 |
A native Rust driver for the RX-888 family of software-defined radios (SDR).
cargo build --release
cargo build --release --features cbinding
cargo t --features cbinding
The library exposes a Rust version of API. The following is the core logic of API. You can also rereference the code under src/bin, which demostrate a completely application.
// Open device
let mut radio = Radio::open(0)?;
// Configure for typical HF operation
const SAMPLE_RATE: u32 = 64_000_000; // 64 MHz
radio.set_xtal_freq(SAMPLE_RATE)?;
radio.set_direct_sampling(true)?;
radio.set_center_freq(7_100_000)?; // 7.1 MHz (40m band)
radio.set_if_gain(30.0)?;
radio.set_rf_gain(10.0)?;
radio.read_async(Box::new(move |data: &[i16]| {
// Captured raw ADC input in data
}));
std::thread::sleep(1000);
radio.read_cancel(); // stop reading
The library exposes an API similar to librtlsdr; read the include/libsddc.h for the details.
The following example is the core logic:
struct sddc_dev_t *device;
sddc_open(&device, 0);
sddc_set_xtal_freq(device, 64000000);
sddc_set_direct_sampling(device, 1);
sddc_read_async(device, async_callback); // Note, this API is not blocking!
// sleep some time
sddc_cancel_read(device);
sddc_close(device);
The file cmake/sddcTargets.cmake shows how to integrate the logic to download the pre-build release binaries from Github Release page.
Contributing
License