This repository contains the modified ADALM Pluto firmware for the Maia SDR project. See analogdevicesinc/plutosdr-fw for the default ADI firmware.
Firmware License : and many others.
This repository contains Maia SDR firmware images for the ADI Pluto and the Pluto+.
See the installation instructions for how to install the firmware and for other supported devices.
Support is handled through Github issues or dicussions. Issues dealing with the ADALM Pluto firmware itself (building the firmware, flashing the firmware, etc.) should go as issues in the plutosdr-fw repository. Issues having to do with Maia SDR (software or FPGA bugs, features requests, etc.) should go as issues in the maia-sdr repository. There are also Github discussions in the maia-sdr repository for any topics which are not issues (general questions, comments, etc.).
Using the ghcr.io/maia-sdr/maia-sdr-devel
Docker image from
maia-sdr-docker is recommended to build
the firmware. To build the FPGA bitstream, Vivado 2023.2 is required.
Once the environment variables and PATH
have been set as indicated in the
Docker container README,
the firmware can be built using
make
It is also possible to build using docker compose
by running
DOCKER_USER="$(id -u):$(id -g)" TARGET=pluto docker compose run --rm build
Disclaimer: The Maia SDR project acknowledges that the name Pluto+ is
unfortunate, because this hardware device is unrelated to Analog Devices
ADALM products. However, this device is not known by any other name, so us
referring to it in another way would have been very confusing. Therefore,
within Maia SDR, the firmware build for the Pluto+ is refered to as Pluto+ or
plutoplus
.
Here are some notes about the Pluto+ Maia SDR firmware.
The Pluto+ is largerly compatible with the ADALM-Pluto in terms of firmware. It uses a different Zynq 7010 package and FPGA pinout, but its pinout ensures that all the signals go to the same FPGA wirebonding pads (even though the BGA pins are called differently and placed differently in the package). This means that a regular ADALM-Pluto firmware mostly works on the Pluto+, though Ethernet and the SD card will not work because the ADALM-Pluto does not have this hardware. There is one pinout difference between the ADALM-Pluto and the Pluto+: the USB PHY reset (URST) on the ADALM-Pluto is connected to MIO52. On the Pluto+ it is usually connected to MIO46, because MIO52 is required for the Ethernet MDIO. However, the Pluto+ has a jumper to allow connecting the USB PHY reset to MIO52 instead when a firmware for the ADALM-Pluto (which does not support Ethernet) is used (see the plutoplus README). When using the Pluto+ Maia SDR firmware, it is required to connect the jumper to MIO46.
There is usually no point in using the ADALM-Pluto Maia SDR firmware in a Pluto+. Generally, the Pluto+ Maia SDR firmware should be used, as it supports Ethernet and the SD card.
In order to distinguish it from the ADALM-Pluto firmware, the files for the
Pluto+ Maia SDR firmware are called plutoplus
instead of plutosdr
or
pluto
. When using the USB storage firmware update method, the file that is
copied to the USB storage device must be called pluto.frm
. The file
plutoplus.frm
must be renamed to pluto.frm
.
The
ipaddrmulti
feature can conflict with the IP address assignment for the Pluto+ Ethernet. It
is probably better to disable ipaddrmulti
in the Pluto+.
The Pluto+ firmware can be built with
TARGET=plutoplus make