All checks were successful
Build Sphinx Docs Set / Build Docs (pull_request) Successful in 12s
Test with tox / Test with tox (3.12) (pull_request) Successful in 28s
Test with tox / Test with tox (3.11) (pull_request) Successful in 31s
Test with tox / Test with tox (3.10) (pull_request) Successful in 41s
Build Project / Build Project (3.10) (pull_request) Successful in 47s
Build Project / Build Project (3.12) (pull_request) Successful in 46s
Build Project / Build Project (3.11) (pull_request) Successful in 49s
115 lines
4.0 KiB
ReStructuredText
115 lines
4.0 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)
|
|
---------------------------
|
|
|
|
Step 1: Activate your Radioconda environment.
|
|
|
|
.. code-block:: bash
|
|
|
|
conda activate <your-env-name>
|
|
|
|
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 <https://wiki.analog.com/university/tools/pluto>`_
|
|
- `Radioconda Github Repository <https://github.com/radioconda/radioconda-installer?tab=readme-ov-file#iio-pluto-sdr>` |