I’ve been working on an improved firmware for the ANTSDR E200, focused on streaming IQ samples over the network using libiio. The project is now at the developer preview stage, with a complete microSD image build and initial hardware tests documented in the repository.
It’s an independent community project. You can find the code and documentation here: antsdr-e200-fw.
What has changed
The firmware brings together:
- ADI Linux 6.12.111 and Buildroot 2026.08, updating the kernel and userspace.
- A patched iiod 1.0, serving both native libiio 1.0 and legacy 0.26 clients.
- A Docker build that fetches pinned sources, runs checks and assembles a complete microSD image with a SHA256 checksum.
- Automated checks and a documented recovery procedure, alongside hardware test results.
The bootloader and FPGA still come from the official E200 v0.39 firmware. No Vivado installation is needed to build this image. The initial focus is single-channel RX over IIO; TX, dual RX and QSPI flashing are outside the preview’s scope.
What I’ve tested
On the test E200, single-channel I16/Q16 streaming sustained 24 MS/s for ten minutes with each client, with no detected DMA overflow after the first startup second. Both clients used 32 kernel buffers, with different request sizes:
| Client | Samples per request | Request size |
|---|---|---|
| Native libiio 1.0 | 262,144 | 1 MiB |
| Legacy libiio 0.26 | 2,097,152 | 8 MiB |
The legacy client overflowed with 1 MiB requests at that rate, so buffer settings matter. These tests establish transport throughput on one board; they do not measure RF sensitivity or prove sample-by-sample continuity.
Warm and physical cold boot, microSD write/readback, software rollback and client recovery also passed. Two clean project builds produced identical images using the same cached Docker builders on the same VM.
There is one practical issue to keep in mind: opening a new SSH session during capture caused native RX overflow. Connecting before capture passed a further ten-minute test with diagnostic commands over the existing connection. Other concurrent workloads still need testing.
The qualification record includes the exact image hash, test conditions and remaining checks.
Building and trying it
The build needs a Linux x86-64 machine with Docker, at least 8 GiB of RAM and 70 GiB of free disk space. Allow several hours for the first build:
| |
The output is build/image.raw; writing it to a microSD card is a separate step. Follow the build guide and SD boot and recovery instructions, and keep the original recovery card intact.
The preview uses development defaults: 192.168.1.10, SSH credentials root/analog and unauthenticated IIO. Run it on a trusted receiver LAN.
If you try it, I’d like to hear how it behaves with your setup. Include your client and library versions, sample rate, buffer sizes and any overflow observations in the project’s issue tracker.