97 lines
3.4 KiB
ReStructuredText
97 lines
3.4 KiB
ReStructuredText
|
.. _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)
|
||
|
---------------------------
|
||
|
|
||
|
The PlutoSDR Python API can be installed via pip. To build and install the drivers from source, see the instructions below:
|
||
|
|
||
|
.. code-block:: bash
|
||
|
|
||
|
# Install required packages
|
||
|
sudo apt-get update
|
||
|
sudo apt-get install -y \
|
||
|
build-essential \
|
||
|
git \
|
||
|
libxml2-dev \
|
||
|
bison \
|
||
|
flex \
|
||
|
libcdk5-dev \
|
||
|
cmake \
|
||
|
python3-pip \
|
||
|
libusb-1.0-0-dev \
|
||
|
libavahi-client-dev \
|
||
|
libavahi-common-dev \
|
||
|
libaio-dev
|
||
|
|
||
|
# 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
|
||
|
|
||
|
# Install Python bindings
|
||
|
pip install pyadi-iio
|
||
|
|
||
|
Further information
|
||
|
-------------------
|
||
|
|
||
|
- `PlutoSDR Documentation <https://wiki.analog.com/university/tools/pluto>`_
|