AnsweredAssumed Answered

Adalm Pluto Transmit Data via Libiio in C++

Question asked by MDKpj on Sep 18, 2017
Latest reply on Oct 27, 2017 by IPrium

I'm having some trouble transmitting data from my pluto, as far as I can tell it's not being modulated onto the carrier wave but is being sent to hardware. I can get samples from the pluto so wanted to check I was going through the right process.


My program does the following;


Create context from URI

Find the physical ad9361 device (ad9361-phy)

Set the carrier frequency

Find the transmit device (cf-ad9361-dds-core-lpc)

Set TX1_I_F1 frequency (altvoltge0)

Set TX1_Q_F1 frequency (altvoltge0)

Set gain_control_mode to fast_attack (ad9361-phy voltage0)

Set  ad9361-phy sampling_frequency


Find channel pointers for voltage0 & voltage1 of the TX device, (which are scan elements)

Enable the channels

Create a buffer for the transmit device


Iterate through the buffer calling 'iio_channel_write' and passing it a double

call iio_buffer_push



Is there something I have missed?

The iio documentation notes that iio_channel_write will convert samples to hardware format, does it not matter then which format the passed value is double, int, float?

Does the samples have to be in a particular range, i.e. would 0.001 or 100.000 be okay?


Any other pointers or advice would be great.