.. _pluto: PlutoSDR ======== The ADALM-PLUTO (PlutoSDR) is a portable and affordable software-defined radio developed by Analog Devices. It is designed for learning, experimenting, and prototyping in the field of wireless communication. The PlutoSDR is popular among students, educators, and hobbyists due to its versatility and ease of use. The PlutoSDR is based on the AD9363 transceiver chip, which supports both transmission and reception of signals across a wide frequency range. The device is supported by a robust open-source ecosystem, making it ideal for hands-on learning and rapid prototyping. Supported models ---------------- - **ADALM-PLUTO:** The standard model with a frequency range of 325 MHz to 3.8 GHz and a bandwidth of up to 20 MHz. - **Modified ADALM-PLUTO:** Some users modify their PlutoSDR to extend the frequency range to approximately 70 MHz to 6 GHz by applying firmware patches with unqualified RF performance. Key features ------------ - **Frequency Range:** 325 MHz to 3.8 GHz (standard), expandable with modifications. - **Bandwidth:** Up to 20 MHz, can be increased to 56 MHz with firmware modifications. - **Connectivity:** USB 2.0 interface with support for power, data, and firmware updates. - **Software Support:** Compatible with GNU Radio, MATLAB, Simulink, and other SDR frameworks. - **Onboard Processing:** Integrated ARM Cortex-A9 processor for custom applications and signal processing. Hackability ------------ - **Frequency Range and Bandwidth:** The default frequency range of 325 MHz to 3.8 GHz can be expanded to approximately 70 MHz to 6 GHz, and the bandwidth can be increased from 20 MHz to 56 MHz by modifying the device's firmware. - **2x2 MIMO:** On Rev C models, users can unlock 2x2 MIMO (Multiple Input Multiple Output) functionality by wiring UFL to SMA connectors to the device's PCB, effectively turning the device into a dual-channel SDR. Limitations ----------- - Bandwidth is limited to 20 MHz by default, but can be increased to 56 MHz with modifications, which may affect stability. - USB 2.0 connectivity might limit data transfer rates compared to USB 3.0 or Ethernet-based SDRs. Set up instructions (Linux, Radioconda) --------------------------- Step 1: Activate your Radioconda environment. .. code-block:: bash conda activate Step 2: Install system dependancies. .. code-block:: bash sudo apt-get update sudo apt-get install -y \ build-essential \ git \ libxml2-dev \ bison \ flex \ libcdk5-dev \ cmake \ libusb-1.0-0-dev \ libavahi-client-dev \ libavahi-common-dev \ libaio-dev Step 3: Install a udev rule by creating a link into your radioconda installation. .. code-block:: bash sudo ln -s $CONDA_PREFIX/lib/udev/rules.d/90-libiio.rules /etc/udev/rules.d/90-radioconda-libiio.rules sudo udevadm control --reload sudo udevadm trigger Once you can talk to the hardware, you may want to perform the post-install steps detailed on the PlutoSDR documentation below. Step 4 (Optional): Building libiio or libad9361-iio from source. Only needed if you want the very latest version of the libraries not provided in Radioconda: .. code-block:: bash # Clone and build libiio cd ~ git clone --branch v0.23 https://github.com/analogdevicesinc/libiio.git cd libiio mkdir -p build cd build cmake -DPYTHON_BINDINGS=ON .. make -j"$(nproc)" sudo make install sudo ldconfig # Clone and build libad9361-iio cd ~ git clone https://github.com/analogdevicesinc/libad9361-iio.git cd libad9361-iio mkdir -p build cd build cmake .. make -j"$(nproc)" sudo make install Further information ------------------- - `PlutoSDR Documentation `_ - `Radioconda Github Repository `