PlutoSDR / ADRV9364 Firmware

April 26, 2024 ยท View on GitHub

Customized firmware for the PlutoSDR and ADRV9364-Z7020. Modified from stock firmware.

Instructions

  • Build
$ git submodule update --init --recursive
$ make patch
$ make defconfig
$ make
  • Upload firmware through MSD
$ make upload
  • Login
$ ssh root@pluto.local

Password: analog

  • Updating your local repository
 $ git pull
 $ git submodule update --init --recursive

Build Artifacts

  • Main targets

    FileComment
    pluto.frmMain PlutoSDR firmware file used with the USB Mass Storage Device
    pluto.dfuMain PlutoSDR firmware file used in DFU mode
    boot.frmFirst and Second Stage Bootloader (u-boot + fsbl + uEnv) used with the USB Mass Storage Device
    boot.dfuFirst and Second Stage Bootloader (u-boot + fsbl) used in DFU mode
    uboot-env.dfuu-boot default environment used in DFU mode

Customizations

Note that the firmware boots slower than the official firmware.

Frequency correction

# ad936x_ref_cal -e 860000000 /sys/bus/iio/devices/iio\:device1/

To read the xo correction value,

# cat /sys/bus/iio/devices/iio\:device1/xo_correction

Build SDK in Ubuntu Docker

Build Docker image:

$ make docker

Log in Docker image and build SDK:

$ make docker-run
[docker] $ make sdk

Install Xilinx Vivado

On ArchLinux,

$ sudo pacman -S ncurses5-compat-libs lib32-libpng12 xorg-xlsclients xorg-server-xvfb libxcrypt-compat

Set IP Address

For example,

# fw_setenv ipaddr 192.168.3.1
# fw_setenv ipaddr_host 192.168.3.10

Power off completely then power on.

Set sample rate

out_voltage_sampling_frequency as well as in_voltage_sampling_frequency are not entirely independent, by default the both need to match unless adi,fdd-rx-rate-2tx-enable is set.