Daniel Estévez
banner
destevez.net
Daniel Estévez
@destevez.net
Everything space & RF. Amateur radio operator (EA4GPZ / M0HXM). PhD in Mathematics from Univ. Autónoma de Madrid. he/him
I have made a new release of the Maia SDR firmware. This is a maintenance release that updates dependencies and includes some USB Ethernet connectivity improvements to Android devices.
November 9, 2025 at 7:21 PM
New blog post: sigmf-toolkit. I present a new Python package I've made and showcase one of its tools, which adds to a SigMF file annotations for each packet in a PCAP file. This is a good way of doing protocol analysis and debugging across the physical and upper layers. destevez.net/2025/11/sigm...
November 2, 2025 at 2:14 PM
New blog post: Non-coherent m-FSK BER. Another short post in which I derive the following formula for the symbol error rate of non-coherent m-FSK and validate it using simulations. destevez.net/2025/10/non-...
October 25, 2025 at 9:28 AM
When setup timing is violated, typically the output delay becomes much larger than the nominal one, increasingly more as the data transition approaches the clock edge. This goes somewhat against the usual idea that setup violations mainly cause metastability.

Read more: destevez.net/2025/09/flip...
September 28, 2025 at 9:03 PM
Using ngspice, the timing properties of the flip-flop can be measured. Here is an output delay simulation, where the output for different process corners is shown in different colours.
September 28, 2025 at 9:03 PM
New blog post: Flip-flop timing experiments. I design an ASIC flip-flop using Magic and play around with some ngspice timing simulations of output delay, setup and hold. I have made my flip-flop (top) as small as possible, so it is half the area as the standard cell (bottom).
September 28, 2025 at 9:03 PM
New blog post: 10 GHz FMCW radar LO board. I've finished assembling and testing my ADF4158+HMC391 3.9-4.45 GHz LO board, for which I asked for reviews a few months ago. In the post I explain some aspects of the board design, and the software I've written and testing I've done.
September 4, 2025 at 9:42 AM
In this post I dive into the 13 spectral bands captured by Sentinel-2 and explain how they can be used to measure vegetation health and fire affectance. This image shows SWIR in red, highlighting burnt areas, NIR in green, highlighting vegetation, and visible green in blue.
August 19, 2025 at 10:41 AM
New blog post: Multispectral analysis of the Tres Cantos wildfire with Sentinel-2 data. This image shows vegetation surviving the fire in green, vegetation lost by the fire in magenta, and areas affected by the fire but with less vegetation loss (dry grass) in blue.
August 19, 2025 at 10:40 AM
There is now Sentinel-2 imagery for today that has no clouds and has data products that can be downloaded for free. This shows a comparison between 2025-08-10 and 2025-08-13.
August 13, 2025 at 8:17 PM
The above image was supposed to be an animated GIF comparing before and after the fire, but it looks like that doesn't work on Bluesky. Here are the two images.
August 13, 2025 at 10:02 AM
On Monday there was a large wildfire in Tres Cantos, Madrid, Spain, which is where I live (my family, friends and I are all okay). Today I have found some Airbus Space Pléiades Neo imagery that shows the extent of the fire more accurately than all other source I've seen.
August 13, 2025 at 10:00 AM
I've made new releases of gr-satellites: 5.8.0 (GNU Radio 3.10), 4.15.0 (GNU Radio 3.9), 3.22.0 (GNU Radio 3.8). This will be the last release supporting GNU Radio 3.9 and 3.8. Maintainance for these branches will stop now.
August 1, 2025 at 12:08 AM
New blog post: n78 band 5G NR recordings. I comment on some recordings I have made that are representative of the current state of 5G deployment on this band in Spain (100 MHz cells for Movistar and Orange, 90 MHz cell for Vodafone).
July 17, 2025 at 10:32 AM
Some months ago I shared my design of a PCB with an ADF4158 PLL/waveform synth and HMC319 VCO intended as an LO source for an FMCW radar in the 10 GHz band. I have finished soldering all the components, and the HMC319 appears to be working. The next step is the ADF4158 config.
July 13, 2025 at 11:33 AM
New blog post: Galileo OSNMA chain renewal. OSNMA is the Galileo open service navigation message authentication system, which authenticates cryptographically the navigation data broadcast by the satellites. Here I comment on a TESLA chain renewal test done on Tuesday.
July 12, 2025 at 3:49 PM
I compare the legacy loop filter in GNU Radio with a correct implementation of the loop filter, showing that when the bandwidths are adjusted for similar convergence time, the correct loop filter has less noise.

Read more: destevez.net/2025/07/abou...
July 2, 2025 at 10:58 AM
I calculate the discriminant gain and show how to design loop filter coefficients properly, pointing out what is wrong with the current GNU Radio implementation of the loop filter.
July 2, 2025 at 10:58 AM
Then I compare ways of realizing band-edge filters as an FIR filter, including an idea by fred harris, which is what GNU Radio uses, and a Remez design.
July 2, 2025 at 10:58 AM
New blog post: About FLLs with band-edge filters. This post is motivated by some bugs in the @gnuradio.org FLL that I've been working on fixing. I explain what band-edge filters are, and how they can be used in an FLL.
July 2, 2025 at 10:58 AM
New blog post: Z-Sat VHF transmissions. Recently Daniel Ekman has noticed that Z-Sat, a Japanese satellite launched in 2021 that has an amateur radio payload, is transmitting a digital signal continuously. Here I analyze a recording of this signal.
June 30, 2025 at 7:12 PM
Finally I spend some time discussing some of the parameters that appear in the SIB1, which can be parsed with Python or in Wireshark.

Read more: destevez.net/2025/06/5g-n...
June 13, 2025 at 7:59 AM
I have added support to generate alists for the 5G LDPC codes to my ldpc-toolbox. I use this and a simple sum-product algorithm implementation to decode the PDSCH. I show how the LLRs evolve during the decoding iterations and how all the punctured bits get recovered.
June 13, 2025 at 7:59 AM
New blog post: 5G NR PDSCH. In this post I show how to decode the 5G PDSCH (downlink data) by using the SIB1 from an srsRAN gNB recording as an example. I go into the details of how LDPC and the rest of rate matching and other encoding work.
June 13, 2025 at 7:59 AM
I explain some heuristics to find the appropriate DCI size. In particular, Polar decoding will likely fail if we assume a too small DCI size. By using this property and checking the CRC for a few DCI candidate sizes, we can find the correct size.
May 10, 2025 at 7:23 PM