116 lines
4.1 KiB
ReStructuredText
116 lines
4.1 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, Radioconda)
|
|
---------------------------------------
|
|
|
|
1. Activate your Radioconda environment:
|
|
|
|
.. code-block:: bash
|
|
|
|
conda activate <your-env-name>
|
|
|
|
2. Install system dependencies:
|
|
|
|
.. 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
|
|
|
|
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 <https://wiki.analog.com/university/tools/pluto>`_.
|
|
|
|
4. (Optional) Building ``libiio`` or ``libad9361-iio`` from source:
|
|
|
|
This step is only required if you want the latest version of these libraries not provided in Radioconda.
|
|
|
|
.. code-block:: bash
|
|
|
|
# Build libiio from source
|
|
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
|
|
|
|
.. code-block:: bash
|
|
|
|
# Build libad9361-iio from source
|
|
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 <https://wiki.analog.com/university/tools/pluto>`_
|
|
- `PlutoSDR Setup with Radioconda <https://github.com/radioconda/radioconda-installer?tab=readme-ov-file#iio-pluto-sdr>`_ |