Download librtf 1.1.0

1 Introduction

This document describes the libtrf ThinkRF device library release version 1.1.0

1.1 What is libtrf?

The libtrf library is a multi-platform API library that can be used for interfacing with existinggeneration ThinkRF RTSA devices (R5xx0) and will be maintained into the future to support

interfacing with all presently supported and future thinkRF devices. In addition to device support, the library will be evolved to integrate increasingly sophisticated signal processing capabilities that can be easily integrated into end-user application code. The library is currently released as builds for Microsoft windows 64-bit (.h/.dll) and Linux (.h/.so) for both x86_64 (Intel/AMD) and aarch64 (ARM v8+) targets. The interface is presented as undecorated ‘C’ compatible with the C99 (ISO/IEC

9899:1999) and later standards.

1.2 libtrf RTSA support (R5xx0 family)

The libtrf RTSA support is designed to support the most common modes of utilizing the RTSA family

devices. The ‘idealized’ device that libtrf presents implements the equivalent of the ‘SH’

(Superheterodyne) modes of the RTSA product, hiding all implementation details. Key features of

this support are:

  • Sweep from 100kHz to device limit with user-programmable RBW, windowing.
  • Multiple concurrent sweep support.
  • IQ data from full device usable bandwidth (40MHz) to sub-1kHz IFBW across the entire device frequency range.

Full usage details are provided in the companion ‘libtrf API Reference Guide’ document.

Note that libtrf does *not* support WSA-series devices. These legacy devices remain supported by

the existing C, C++ and Python APIs.

2 Issues addressed

2.1 libtrf 1.1.0 from libtrf 1.0.9

  1. Enhanced parameter value checking and error reporting mechanism.
  2. Added ‘trfDeviceUnreachable’ error code for devices that cannot be found on the network.
  3. Fixed issues with bad file parameter definitions for IQ and Spectrum streams (write/read).
  4. Internal changes for next-generation receiver support.
  5. Internal changes preparing for signal processing integration.

2.2 libtrf 1.0.9 from libtrf 1.0.7

  1. Internal changes for next-generation receiver support.

2.3 libtrf 1.0.7 from libtrf 1.0.6

  1. Fixed an error whereby command-line example code on linux platforms was not functioning as designed leading to stream starting timing out. This issue is now fixed.
  2. Added TRFPLLSource parameter to control PLL disciplining source for R5xx0 devices.
  3. Added additional GNSS read-only parameters; heading, track, speed, magnetic variation.

2.4 libtrf 1.0.6 from libtrf 1.0.5

  1. Added trfFlushStream and trfIsAttached calls to change and test stream state.
  2. trfResetDeviceConnection was present but not functioning.
  3. Introduced new example code for newly supported calls.
  4. Miscellaneous performance improvements.

2.5 libtrf 1.0.5 from libtrf 1.0.1

  1. Multiple performance fixes have been explored to resolve the observed ‘trfNotStarted’ and ‘trfWaiting’ conditions reported by HSC and also internally observed. A mechanism has been developed that causes the RTSA to un-freeze when the last few bytes of a VRT packet have not been delivered. This indicates an un-fixed defect in the R5xx0 firmware which should be addressed.

2.6 libtrf 1.0.1 from 1.0.0

  1. In libtrf 1.0.0, an error was present whereby streaming 40MHz IQ data on a low-powered platform could result in large memory allocation due to unbounded work-deferral buffer growth. Issue fixed in libtrf 1.0.1.

3 New Features

See the companion ‘libtrf API Reference Guide’ for details of the libtrf 1.1.0 interface.

4 Other Changes


5 Known Issues and Limitations

  1. R55xx/R57xx - Between 50MHz and 30MHz centre frequencies, it is not possible to stream a full 40MHz IFBW as IQ data.

Download librtf 1.1.0