Daniel Estévez (@ea4gpz) header
Daniel Estévez (@ea4gpz) profile picture

Everything space & RF. Amateur radio operator (EA4GPZ / M0HXM). PhD in Mathematics from @Matematicas_UAM. he/him

Tres Cantos, España
Joined October 2016
Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)Photo by Daniel Estévez (@ea4gpz)
New blog post: A high sensitivity ADS-B receiver. I present a new ADS-B receiver written in Rust that outperforms existing open source receivers such as readsb: ~3x more messages in typical real world terrestrial scenarios and ~2000x more in simulated LEO scenarios.
9
48
2
340
11,876
Additionally, I explain how I have used AI extensively during this project, not to write code, but to help me by reviewing my code, debugging failed unit tests, proposing new unit tests and doing online searches. The goal in using AI here is to write code better, not faster.
4
1
26
1,190
The ESP32 ruining as an 80 Maps IQ radio was great to see, but this is amazing.
Turned a WiFi 7 router into a 320Msps SDR. Custom firmware on its MediaTek MT7996 streams raw 14-bit IQ from 2.4/5/6GHz over 10GbE without dropping samples. It's not a snapshot mode, the waterfall is just one thing reading the stream. github.com/h0m3us3r/w1700k-s…
8
19
290
15,074
New blog post: Decoding the Roman Space Telescope. On August 31 I observed the Roman telescope S-band telemetry with the Allen Telescope Array some time after launch. This post is a summary of the observation, including the telemetry decode and a preliminary analysis.
2
12
54
3,035
In this recording, Roman is transmitting 19.5 kbaud PCM/PSK/PM with a subcarrier of 1.7 MHz, using CCSDS concatenated coding with 8 interleaved RS codewords, and AOS frames. I have managed to interpret the Space Packet timestamps and find some ASCII strings.
1
18
664
New blog post: On matched filtering in the presence of carrier frequency offset. In this short maths note I explain how to tweak a matched filter to improve the SNR when there is carrier frequency offset.
1
3
30
2,208
I close with some remarks about usage in practice. When the frequency grid spacing is narrower than the inverse of the number of samples, the conventional matched filter performs quite well and the DPSS-windowing improvement is small. For larger spacings it provides a minor gain.
1
8
384
New blog post: X-engine correlator on a Ryzen NPU. A few months ago I posted about the basics of NPUs in Ryzen AI chips. I wanted to tackle a real-world problem to get more experience, so I've implemented an X-engine correlator like the ones used in radio astronomy.
2
3
29
1,794
Next I consider the data flow through the whole NPU array. This leads to a design of the Ethernet packets that the X-engine ingests. There is a tradeoff between having the data in the order that the X-engine prefers and having it in an order that is easy to generate in the PFBs.
1
3
322
Finally I go into the technical details of how to implement all this with the mlir-aie framework, and the challenges to program the DMA engines in the way we want. I close with some benchmarking results. Read more: destevez.net/2026/08/x-engin…
6
314