ADALM-PLUTO SDR: Unboxing and Initial Testing

The PlutoSDR (aka ADALM-PLUTO) is a new RX and TX capable SDR from Analog Devices who are a large semiconductor manufacturer. The PlutoSDR covers 325 – 3800 MHz, has a 12-bit ADC with a 61.44 MSPS sampling rate and 20 MHz bandwidth. It is also priced at the bargain price of only $99 USD over on Digikey, although it seems they only produced a small batch as at the moment they seem to be already sold out. This may also be a promotional price, with the normal price $149 USD as that is the price we see on the analog.com store. But even at $149 the value for what you get is very high.

A few months ago we preordered a PlutoSDR from the analog.com store, and it was received it a few days ago.

Unboxing

plutosdr_unbox1
plutosdr_unbox2
pluto_pcb2
pluto_pcb1

The unit comes in a nice professionally designed cardboard box. Inside is the unit itself, two small 4cm long whip antennas a short 15 cm SMA cable and USB cable. The PlutoSDR unit itself comes in a blue plastic box which measures 11.7 x 7.9 x 2.4 cm and weighs 114 g in total. Two SMA ports are available, one for RX and one for TX. At the other end are two LEDs, a USB port and a power only USB port.

The PCB itself looks to be designed nicely. On the PCB you can see the main AD9363 front end chip, which is actually a 2 x 2 transceiver chip. It supports a tunable channel bandwidth of up to 20 MHz. The other chip is the ZYNQ XC7Z010 which is an ‘All Programmable SoC’. This is an FPGA, processor and ADC for the unit.

Hardware

The PlutoSDR can tune from 325 to 3800 MHz. It has an ADC which can sample at up to 61.44 MSPS with a resolution of 12-bits. There is no TCXO used, so the frequency accuracy is only 25 PPM. Although the maximum sample rate is 61.44 MSPS, the front end AD9363 only has a maximum signal bandwidth of 20 MHz, so that limits the available bandwidth.

For TXing, a claimed TX power of up to 7 dBm is available which is comparable to the TX power of the HackRF.

The unit has no shielding on it via PCB cans or a metal box, so may pick up spurious signals. However, for the intended purpose of learning and testing, no shielding is fine.

Software

Unfortunately software for the PlutoSDR is quite lacking. At the moment there is only really support for MATLAB and GNURadio.

That’s quite understandable however as the PlutoSDR is designed and promoted as a ‘learning module’ or in other words a device for students to learn with. However, if software support for SDR#, HDSDR, SDR-Console, GQRX etc was available it would also make a great unit that could not only compete with the HackRF and LimeSDR SDRs, but also perhaps the Airspy and SDRplay RSP RX only units, at least for UHF applications above 325 MHz.

In a previous post in February we’ve seen on Twitter that Alex Csete (programmer of GQRX) has had his PlutoSDR running on GQRX, but it seems the current public release does not yet support the PlutoSDR (please correct me if i’m wrong!).

The documentation is mostly all available on the PlutSDR wiki. However documentation for setting the unit up with MATLAB and GNURadio, and examples for actually using it is also still quite poor. There is a quickstart guide, but this barely helped. Presumably once more units ship out the documentation will be enhanced. 

To install the PlutoSDR drivers on Linux we used the instructions kindly provided by xavier_505 in this Reddit thread. Once GNU Radio was installed, installation of the gr-iio driver was as simple as running the two lines provided in the thread.

Testing

We’ve given the PlutoSDR a few tests in Linux with GNURadio, and very quickly with the ADI IIO Oscillioscope software for Windows.

In GNU Radio the PlutoSDR source can be found under the “Industrial IO” heading in the block menu on the right, or simply by doing CTRL+F “Pluto”.

One important note is that when using the source you need to set the “Device URI” to ip:pluto.local. This feature presumably allows you to control multiple devices via the network, but for now we’re just using it locally. Also, this may have been a problem related to running Linux in VMWare, but PlutoSDR creates new “Wired Connection” in Linux and we had to always remember to set the network connection to the PlutoSDR using the the network selector in the Linux taskbar for the network to be able to see it.

First we tested a simple FFT and Waterfall sink using the PlutoSDR source. We set the sample rate to the maximum of 61.44 MSPS, and the RF bandwidth to 60M (although the max is 20 MHz). The demo ran well and we were able to see the 900 MHz GSM band. It seems the max sample rate is not used as the output is only 30 MHz, or perhaps it’s only one ADC.

Next we adapted a simple FM receiver from csetes GNU Radio examples by replacing the USRP source file with the PlutoSDR. After adjusting the decimation we were able to receive NBFM clearly.

Next we tried adapting a simple transmit test by creating a flowgraph that would transmit a .wav file in NBFM mode using the PlutoSDR Sink. Again this ran easily and we were able to verify the output in SDR# with an RTL-SDR. No harmonics were found (the one seen in the screenshot is a harmonic from the RTL-SDR).

Finally we tested using the PlutoSDR ADI IIO Oscilloscope software and were able to generate a FFT spectrum of the GSM band.

pluto_waterfall
pluto_rx_test
pluto_TX_test
pluto_ADI_IIO_Oscilloscope

Conclusion

This is a very nice SDR with good specs and a very very attractive price. However, it is mostly aimed at experimenters and students and you’ll need to be comfortable with exploring GNU Radio and/or MATLAB to actually use it. If you’re okay with that, then adapting various GNU Radio programs to use the PlutoSDR is quite easy.

In the future hopefully some programmers of general purpose receiving programs like SDR#/GQRX etc will release modules to support this unit too.

This is a good alternative to more expensive experimenter TX/RX SDR units like the HackRF and LimeSDR, although you do lose out on frequencies below 325 MHz.

23 comments

  1. F4EXB

    I have just tried run mine on GNU radio and the address ip:pluto.local didn’t get me anywhere. Took a bit of time and search on the net to find you need to run the command “iio_info -s” and check the USB URI between brackets that appear at the end of the line related to your PlutoSDR device. Ex: “usb:3.12.5” Then use this exact string in the Device URI field of the PlutoSDR block.

    • Gérald

      Very strange, it is completely the opposite for me!
      “iio_info -s” returns “No contexts found’, but “iio_info -u ip:pluto.local” finds my pluto correctly.
      I can use “ip:pluto.local” in GNU radio, but i don’t have any clue of what usb URI is.
      I’m on Ubuntu 16.04,
      What OS are you using, and what drivers and packages have you installed?

  2. beta-tester

    does the ADALM-PLUTO has an amplifier or is the input signal going straight to the ADC?
    how is the usability compared to a RTL-SDR dongle in the range 400..1100 MHz?

    • Gérald

      I’ve just received mine, and surprisingly the sticker at the back (where should be S/N, PCB rev., MAC…) is missing! So i don’t know if it’s a rev. A, B or even C.

  3. Rwgast

    I’m jealous I’m so broke I’ve been trying to figure out what I can sell to pick one up, now you tell me there sold out.

    Maybe you could mail me this guy if it’s not your cup of tea, that is on the premise is write the code to get it working with soapysdr and rx_tools so it can be used with most rtl software on linux and windows. Also would like to see what it would take to write an exto.dell for hdsdr. If not I understand, maybe you could use another as mini instead :)? This a great little sdr, it and a 6ghz down converter are a nice hack rf alternative!

  4. DE8MSH

    Error:

    “one for TX and one for TX”. So two for TX in sum. 😉

    It should be “one for TX and one for RX”, I guess.

  5. rlwsdr

    I’ve been watching this product closely and have one. A few points of clarification.

    Overview: It is meant to be an SDR learning tool for Electrical Engineering students. If you really want to understand SDRs and love to tinker, this product is for you. If you’re happy just to be an equipment operator, maybe not so much.

    Availability: I was fortunate enough to pick up one from Mouser. The total factory batch was probably around a couple hundred and they sold out in days. The factory lead time being advertised is 16 weeks which pushes the next shipment into November. The ADALM-PLUTO can also be purchased directly from Analog (none are in stock) which are sent from the factory in Singapore.

    Software: MATLAB and Simulink do provide support as part of the Communication Systems Toolbox (https://www.mathworks.com/hardware-support/adalm-pluto-radio.html). MATLAB does have a home use license which substantially reduces the price but still plan on spending at least $300. Now only if GNU Octave would provide support :). The IIO Oscilloscope does work well in Windows but it will take a little bit to figure out all of the settings.

    Documentation: Documentation is on the Analog website and is a bit difficult at times to navigate. But as long as the instructions are followed, it’s not that difficult to setup. There are Analog forums available which provide decent support. The MATLAB website does a decent job on providing instructions on setting up the ADALM-PLUTO as well.

    Frequency Range: Saved the best for last. As the MATLAB page indicates, the ADALM-PLUTO can be reconfigured to extend the frequency range from 70 MHz to 6 GHz. Performance is not guaranteed but it seems to work. I’ve tested both the transmit and receive at various frequencies down to 70 MHz. I can only test up to 3 GHz so the upper limit has not been verified yet. Nor have I verified the extended bandwidth. The trick is to convince the ADALM-PLUTO it has an AD9364 instead of an AD9363 inside. Some of the early production units actually had AD9364s. The explanation and instructions for doing that are found here: https://wiki.analog.com/university/tools/pluto/users/customizing.

    Overall, it is a fun device to play around with and at a $99 introductory price, it really is a bargain.

  6. Simon Brown

    A nice price but a unfortunately a restricted frequency range. To help developers of SDR software example programs save a lot of time, the recently announced Airspy HF+ was simple to implement. I wish the project luck, I’ll not be buying one straight away as it’s the best part of £200 once VAT and shipping is taken into account. I will monitor the project though, if I see simple examples and a take-up then I’ll order.

    • Alexandru Csete

      You are correct about gqrx.

      Those who wish to experiment can enable PlutoSDR support in gqrx the following way:

      1. Ensure gr-iio is installed and working
      2. Install gr-osomsdr from: https://github.com/csete/gr-osmosdr-gqrx iiodev branch
      3. Re-build gqrx
      4. Use plutosdr in the device string

      It may have some hardcoded local IP address in the source code, I don’t remember. Unfortunately, I am too busy to finish it into a released package right now.

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>