Maia SDR is an open-source FPGA-based SDR project focusing on the ADALM Pluto.
It currently provides a firmware image for the Pluto with the following functionality:
- Web-based interface that can be accessed from a smartphone, PC or other device.
- Real-time waterfall display supporting up to 61.44 Msps (limit given by the AD936x RFIC of the Pluto).
- IQ recording in SigMF format, at up to 61.44 Msps and with a 400 MiB maximum data size (limit given by the Pluto RAM size). Recordings can be downloaded to a smartphone or other device.
See maia-sdr.org for more details.
Stable releases of firmware images for the ADALM Pluto can be found in the plutosdr-fw repository. See also the installation instructions.
Experimental ADALM Pluto firmware images are built automatically with Github's
actions system. The build corresponding to the current main
branch of maia-sdr
can be found in the plutosdr-fw-prerelease
tag. For
each pull request, a firmware image is built. The bot adds a comment to the pull
request with a link to the firmware when it is ready. Note that this process is
currently experimental and that the FPGA image is not built, because it is not
possible to run Vivado in a Github-hosted runner. The actions system will take
the latest XSA file published as an asset in a maia-sdr release. This may or may
not work with the current state of the main branch or a particular pull
request. The main goal of this system is to allow people to preview and test new
features before they make it into stable releases.
Support for Maia SDR is handled through Github issues and Github discussions.
The project is divided into the following components:
- maia-hdl. The FPGA design. It is written in Amaranth. It can be used to build the Vivado project and bitstream for Maia SDR or as a library in other projects.
- maia-httpd. The software application that runs on the Zynq ARM CPU. It is written in asynchronous Rust and spawns a web server.
- maia-kmod. A kernel module used to control some RAM buffers that are used to exchange data between the FPGA and CPU.
- maia-wasm. A web application that is the UI of Maia SDR. IT is written in Rust with WebAssembly and uses WebGL2 to render the waterfall.
maia-hdl is licensed under the MIT license. maia-httpd and maia-wasm are licensed under either of the Apache License, Version 2.0 or the MIT license at your option. maia-kmod is licensed under the GPL, version 2.