rtlsdr.rtlsdr
- class rtlsdr.rtlsdr.BaseRtlSdr(device_index=0, test_mode_enabled=False, serial_number=None, dithering_enabled=True)[source]
Bases:
objectCore interface for most API functionality
- Parameters:
device_index (
int, optional) – The device index to use if there are multiple dongles attached. If only one is being used, the default value (0) will be used.test_mode_enabled (
bool, optional) – If True, enables a special test mode, which will return the value of an internal RTL2832 8-bit counter with calls toread_bytes().serial_number (
str, optional) – If not None, the device will be searched for by the given serial_number byget_device_index_by_serial()and thedevice_indexreturned will be used automatically.
- DEFAULT_FC
Default
center_freqvalue used on initialization:80e6(80 Mhz)- Type:
- DEFAULT_RS
Default
sample_ratevalue used on initialization:1.024e6(1024 Msps)- Type:
- DEFAULT_READ_SIZE
Default number of samples or bytes to read if no arguments are supplied for
read_bytes()orread_samples(). Default value is1024- Type:
- gain_values
The valid gain parameters supported by the device (in tenths of dB). These are stored as returned by
librtlsdr.
- static get_device_index_by_serial(serial)[source]
Retrieves the device index for a device matching the given serial number
- Parameters:
serial (str) – The serial number to search for
- Returns:
The device_index as reported by
librtlsdr- Return type:
Notes
Most devices by default have the same serial number: ‘0000001’. This can be set to a custom value by using the rtl_eeprom utility packaged with
librtlsdr.
- get_gpio_byte()[source]
Get multiple GPIO pin values at once as a byte.
- Returns:
byte containing settings of multiple GPIO pins
- Return type:
val (int)
- get_tuner_type()[source]
Get the tuner type.
- Returns:
The tuner type as reported by the driver. See the tuner enum definition for more information.
- Return type:
- init_device_values()[source]
Retrieves information from the device
This method acquires the values for
gain_values. Also sets the device to the defaultcenter frequency, thesample rateandgain
- open(device_index=0, test_mode_enabled=False, serial_number=None, dithering_enabled=True)[source]
Connect to the device through the underlying wrapper library
Initializes communication with the device and retrieves information from it with a call to
init_device_values().- Parameters:
device_index (
int, optional) – The device index to use if there are multiple dongles attached. If only one is being used, the default value (0) will be used.test_mode_enabled (
bool, optional) – If True, enables a special test mode, which will return the value of an internal RTL2832 8-bit counter with calls toread_bytes().serial_number (
str, optional) – If not None, the device will be searched for by the given serial_number byget_device_index_by_serial()and thedevice_indexreturned will be used automatically.dithering_enabled (
bool, optional) – If False, disables PLL dithering to prevent it destroying phase coherence in CLK-synchronized dongles.
Notes
The arguments used here are passed directly from object initialization.
- Raises:
IOError – If communication with the device could not be established.
- packed_bytes_to_iq(bytes)[source]
Unpack a sequence of bytes to a sequence of normalized complex numbers
This is called automatically by
read_samples().- Returns:
The unpacked iq values as either a
listornumpy.ndarray(if available).
- read_bytes(num_bytes=1024)[source]
Read specified number of bytes from tuner.
Does not attempt to unpack complex samples (see
read_samples()), and data may be unsafe as buffer is reused.- Parameters:
num_bytes (
int, optional) – The number of bytes to read. Defaults toDEFAULT_READ_SIZE.- Returns:
A buffer of len(num_bytes) containing the raw samples read.
- Return type:
ctypes.Array[c_ubyte]
- read_samples(num_samples=1024)[source]
Read specified number of complex samples from tuner.
Real and imaginary parts are normalized to be in the range [-1, 1]. Data is safe after this call (will not get overwritten by another one).
- Parameters:
num_samples (
int, optional) – Number of samples to read. Defaults toDEFAULT_READ_SIZE.- Returns:
The samples read as either a
listornumpy.ndarray(if available).
- set_bias_tee(enabled)[source]
Enable RTL2832 Bias Tee
Enables or disables the Bias Tee option (RTL-SDRv3 only)
- Parameters:
enabled (bool)
Warning
Using this could potentially damage your device! Please make sure you understand what Bias Tee does before using this method.
See the Bias T section of the RTL-SDRv3 Manual for information.
Added in version 0.2.93.
- set_direct_sampling(direct)[source]
Enable direct sampling.
- Parameters:
direct – If False or 0, disable direct sampling. If ‘i’ or 1, use ADC I input. If ‘q’ or 2, use ADC Q input.
- set_gpio_byte(val)[source]
Set multiple GPIO pins at once using a byte.
- Parameters:
val (int) – byte
- set_gpio_input(gpio)[source]
Set GPIO pin to input mode.
- Parameters:
gpio (int) – RTL-SDR GPIO pin number
- set_gpio_output(gpio)[source]
Set GPIO pin to output mode.
- Parameters:
gpio (int) – RTL-SDR GPIO pin number
- set_gpio_status()[source]
Get GPD register status as a byte.
Note that the librtlsdr API calls rtlsdr_read_reg, and this function is used everywhere like a getter.
- Returns:
byte containing status of all GPIO pins
- Return type:
val (int)
- set_manual_gain_enabled(enabled)[source]
Enable or disable manual gain control of tuner.
- Parameters:
enabled (bool)
Notes
If
enabledis False, then AGC should also be used by callingset_agc_mode(). It is recommended to useset_gain()instead of calling this method directly.
- property bandwidth
Get/Set bandwidth value (in Hz)
Set value to 0 (default) for automatic bandwidth selection.
Notes
This value is stored locally and may not reflect the real tuner bandwidth
- Type:
- property gain
Get/Set gain of the tuner (in dB)
Notes
If set to ‘auto’, AGC mode is enabled; otherwise gain is in dB. The actual gain used is rounded to the nearest value supported by the device (see the values in
valid_gains_db).
- class rtlsdr.rtlsdr.RtlSdr(device_index=0, test_mode_enabled=False, serial_number=None, dithering_enabled=True)[source]
Bases:
BaseRtlSdrThis adds async read support to
BaseRtlSdr- _bytes_converter_callback(raw_buffer, num_bytes, context)[source]
Converts the raw buffer used in
rtlsdr_read_asyncto a usable typeThis method is used internally by
read_bytes_async()to convert the raw data fromrtlsdr_read_asyncinto a memory-safe array.The callback given in
read_bytes_async()will then be called with the signature:callback(values, context)
- Parameters:
Notes
This method is not meant to be called directly or overridden by subclasses.
- _samples_converter_callback(buffer, context)[source]
Converts the raw buffer used in
rtlsdr_read_asyncto a usable typeThis method is used internally by
read_samples_async()to convert the data into a sequence of complex numbers.The callback given in
read_samples_async()will then be called with the signature:callback(samples, context)
- Parameters:
buffer – Buffer of type
unsigned charcontext – User-defined value passed to
rtlsdr_read_async. In most cases, will be a reference to theRtlSdrinstance
Notes
This method is not meant to be called directly or overridden by subclasses.
- cancel_read_async()[source]
Cancel async read. This should be called eventually when using async reads (
read_bytes_async()orread_samples_async()), or callbacks will never stop.See also
- read_bytes_async(callback, num_bytes=1024, context=None)[source]
Continuously read bytes from tuner
- Parameters:
callback – A function or method that will be called with the result. See
_bytes_converter_callback()for the signature.num_bytes (int) – Number of bytes to read for each callback. Defaults to
DEFAULT_READ_SIZE.context (Optional) – Object to be passed as an argument to the callback. If not supplied or None, the
RtlSdrinstance will be used.
Notes
As with
read_bytes(), the data passed to the callback may by overwritten.
- read_samples_async(callback, num_samples=1024, context=None)[source]
Continuously read ‘samples’ from the tuner
This is a combination of
read_samples()andread_bytes_async()- Parameters:
callback – A function or method that will be called with the result. See
_samples_converter_callback()for the signature.num_samples (int) – The number of samples read into each callback. Defaults to
DEFAULT_READ_SIZE.context (Optional) – Object to be passed as an argument to the callback. If not supplied or None, the
RtlSdrinstance will be used.