Awesome
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
$ ssh root@pluto.local
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
- Include hacks for larger bandwidth and dual core
- Add retrogram-plutosdr
- Add GNU Radio
- Remove wifi and other firmware to save space
- Use xz compression to save space
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.