Previously I got the open source LTE stack srsRAN working with the low cost Analog ADALM-PLUTO.
At the time the additional functionality was added to their 0.37 release. They’ve recently release v0.38, so I figured I’d give it the same treatment.
It appears the main changes between v0.37 and v0.38 are:
- Linux kernel 5.10 -> 5.15
- Buildroot 2022.02.3 -> 2023.02.5
- Xilinx tools 2021.2 -> 2022.2
Analog have added some new logic within the FPGA design which appears to improve support AD636x RF transceiver’s Time Division Duplexing (TDD) mode.
As with my previous custom firmware, without timestamping enabled the firmware *should* behave identically to the official firmware. As such the new TDD module is included, however it currently conflicts with timestamping support.
The timestamping module and new TDD module share a common signal to the internal DMA controller. When timestamping is enabled it will make use of the shared line, in preference to the TDD controller. When disabled the TDD controller will make use of the line as in the official Analog firmware. Essentially this comes down to TDD + timestamping using the new module isn’t likely possible at present with the current timestamping arrangement at least.
If you’d prefer to build from source, the following notes are adapted from Analog’s wiki. They’ve made a few tweaks to their build process, as such the following is subtly different from the previous v0.37 release.
Building the ADALM-PLUTO’s firmware requires installation of Xilinx’s Vivado Design Suite 2022.2. After which the firmware may be cloned and build as follows:
git clone --branch v0.38_timestamp --recurse-submodules --shallow-submodules https://github.com/pgreenland/plutosdr-fw.git cd plutosdr-fw make
Once complete (it takes a while) build artefacts will be available in the
build directory. The two key images being
pluto.dfu the RAM bootable image and
pluto.frm the firmware update image.