Skip to content

ntut-rf/plutosdr-fw

Repository files navigation

PlutoSDR / ADRV9364 Firmware

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

Password: analog

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

Build Artifacts

  • Main targets

    File Comment
    pluto.frm Main PlutoSDR firmware file used with the USB Mass Storage Device
    pluto.dfu Main PlutoSDR firmware file used in DFU mode
    boot.frm First and Second Stage Bootloader (u-boot + fsbl + uEnv) used with the USB Mass Storage Device
    boot.dfu First and Second Stage Bootloader (u-boot + fsbl) used in DFU mode
    uboot-env.dfu u-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.

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.

Troubleshooting

  • Make sure the daughterboard is tightly connected to the breakout board

To do

  • Time sync
  • Separate toolchain
  • Update hdl
  • Package for hdl
  • Package for Pluto specific stuff
  • Fix for TX buffer clean
  • Network / Mass storage settings
  • Customize MOTD
  • LED for ADRV9364