Sign in

Daniel Estévez

@destevez.net
692 followers 67 following 367 posts

Everything space & RF. Amateur radio operator (EA4GPZ / M0HXM). PhD in Mathematics from Univ. Autónoma de Madrid. he/him

PostsRepliesMedia
Daniel Estévez @destevez.net · 11/09/2026
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.
A waterfall of the signal of the spacecraft.
1124
Daniel Estévez @destevez.net · 06/09/2026
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.
120
Daniel Estévez @destevez.net · 27/08/2026
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.
132
Daniel Estévez @destevez.net · 20/08/2026
As we're seeing more and more issues and PRs that use LLMs in some way, the gr-satellites project is considering adopting an AI policy to have clearer guidelines of what to expect and how to proceed. If you have strong thoughts, join the discussion in github.com/daniestevez/...
github.com
Request: Add an AI policy, maybe · Issue #849 · daniestevez/gr-satellites
Per the discussion in #846, it'd be helpful to have an AI usage policy for contributions in this repository.
130
Daniel Estévez @destevez.net · 07/08/2026
New blog post: Tianwen-1 safe mode telemetry. Peter from @amsat-dl.org noticed that a few days ago Tianwen-1 was transmitting in safe mode. Here I analyze the telemetry signal, which is only 32 baud (16 bits per second). destevez.net/2026/08/tian...
A screenshot of a GNU Radio GUI that shows the spectrum of the signal and a time domain plot of the demodulated symbols.
0101
Daniel Estévez @destevez.net · 30/07/2026
This Sentinel-2 infrared image from yesterday shows the extent of the Madrid wildfires, which are now stable and do not show any smoke in satellite imagery. The false colour map shows two shortwave infrared bands (B12 and B11) in red and blue, and near infrared (B8) in green.
A false colour satellite image that shows the western half of Spain and all of Portugal. The tweets describe how the false colour map works and what fires can be seen. Besides that, it is noticeable the higher amount of vegetation in the north and northwest part of the Iberian peninsula, and also in a few small regions in the interior.
111
Daniel Estévez @destevez.net · 17/07/2026
Muon Space is looking for an FPGA engineer for RF signal processing. Join a team of FPGA engineers and RF DSP engineers including myself to build state of the art RF instruments. Ability to access ITAR/EAR information required. DM me if you are interested or have questions.
122
Daniel Estévez @destevez.net · 09/07/2026
New blog post: @openresearch.institute.web.brid.gy's Lunar descent CTF. This is my solution to a CTF that simulates the Ka-band radio altimeter of Chandrayaan-3. The goal is to understand and fix a bug in the measurement processing logic.
100
Daniel Estévez @destevez.net · 15/06/2026
New blog post: Tianwen-2 low data rate telemetry. This is a short post where I analyze a recording of low rate (4 kbaud) telemetry done on June 8 during Tianwen-2's arrival to asteroid Kamo'oalewa. destevez.net/2026/06/tian...
A screenshot of a GNU Radio GUI showing the spectrum and constellation of the signal.
0134
Daniel Estévez @destevez.net · 11/06/2026
New blog post: PLL coefficients for rate-only feedback. A couple years ago I wrote a post that extends a paper of Stephens and Thomas where they model PLLs in discrete time rather than transforming a continuous-time design.
101
Reposted by Daniel Estévez
AMSAT-DL @amsat-dl.org · 10/06/2026
Tianwen-2 at #Asteroid (469219) Kamoʻoalewa now transmitting at High Data Rate!! Receiving with the 20m #Bochum antenna on X-Band.
02410
Reposted by Daniel Estévez
Radiotelescoop Dwingeloo @radiotelescoop.bsky.social · 08/06/2026
We think a Tianwen-2 manoever happened early 7 June, as expected. With the Bochum telescope (@amsat-dl.org) and the Dwingeloo telescope, we observe that a) Tianwen-2 is close to the asteroid on the sky and b) the change in the line-of-sight velocity (Doppler) now almost matches that of the asteroid.
Sky plot showing the location where the Dwingeloo telescope measured the Tianwen-2 spacecraft, with a 0.1 degree field of view. On 7 June, the spacecraft is apparently within 0.1 degree of the asteroid.Frequency residual w.r.t. Kamo'oalewa, with an estimated base freq of 8428.201 MHz. On 4-6 June the residual is between 13800 and 14300 Hz, increasing. From 7 June, the line is almost flat, changing only a few Hz in hours. This shows the change in line-of-sight velocity is now close to that of Kamo'oalewa.
01710
Reposted by Daniel Estévez
AMSAT-DL @amsat-dl.org · 07/06/2026
Just a quick update on Tianwen-2. We saw several events before LOS- At 23:06:10 UTC the data rate was reduced, probably in preparation for some trajectory maneuvers.
192
Daniel Estévez @destevez.net · 28/05/2026
New blog post: An update about Tianwen-2 telemetry. This is a quick update about Tianwen-2 telemetry decoding. First, I've figured out the format of the timestamps included in AOS frames. I explain what was confusing me yesterday.
A plot of space packet APIDs received over time by Bochum
140
Daniel Estévez @destevez.net · 27/05/2026
New blog post: Decoding Tianwen-2. I analyze the telemetry decoded from recent @radiotelescoop.bsky.social recordings of Tianwen-2. Compared to Tianwen-1, there is not much in the telemetry. There are not that many fields and most are mainly static. Read more: destevez.net/2026/05/deco...
A screenshot of a GNU Radio flowgraph GUI demodulating the signal from Tianwen-2, which has rather high SNR.A raster map of one of the decoded Space Packet APIDs. We can see a few fields changing values, but most of the contents are fairly static.
0112
Daniel Estévez @destevez.net · 13/05/2026
More fun with the Ryzen AI NPU. I'm working on a more complex algorithm, and I'm seeing memory stalls that make me lose one cycle in each iteration. It turns out that the data memory of compute tiles is organized as 8x 256-bit wide 8 KiB memory banks.
A trace shown in the Perfetto UI that shows that the processor performs 8 cycles of vector instructions and then stalls waiting for memory for one cycle.A figure from the AIE-MLv2 documentation that shows the memory module organized as 8 banks.
110
Daniel Estévez @destevez.net · 08/05/2026
New blog post: Getting peak TOPS on a Ryzen AI 7 350 NPU. This is an introduction to low-level programming on AMD NPUs using mlir-aie. I build an example that demonstrates 56 TOPS, very close to the max theoretical performance. These NPUs are identical to Xilinx AIE-MLv2 engines.
110
Daniel Estévez @destevez.net · 27/04/2026
aspe:keyoxide.org:MPXJS6MJRS3LENLWBNOOAMHOMY
100
Reposted by Daniel Estévez
AMSAT-DL @amsat-dl.org · 26/04/2026
Intruder Satellites on lower end of the 430 MHz UHF Amateur Radio band?
forum.amsat-dl.org
LORA Satellites on 430 MHz - AMSAT-DL Forum
Hello, Unidentified Russian satellites launched a few days ago alongside the Russian COSMOS-2600 military satellite: LoRa modulation at 430.630 MHz, 430.750 MHz and 430.910 MHz. Apparently quite st...
2135
Daniel Estévez @destevez.net · 25/04/2026
New blog post: NB-IoT downlink. This is another post in my series about V16 car warning beacons. Here I explain mostly everything about the LTE NB-IoT downlink. It's perhaps the longest post I've ever written. If you want to know more about NB-IoT this is the place to go.
An inspectrum waterfall that shows an NB-IoT uplink carrier and an NB-IoT downlink carrier aligned in time. The uplink carrier is sending NPRACH and then an NPUSCH containing an RRC connection request. The downlink has signals from many cells, and it is replying to the NPRACH, although it is barely visible.
180
Reposted by Daniel Estévez
AMSAT-DL @amsat-dl.org · 20/03/2026
Lot's of activity with Tianwen-1 today, including high data rate !
0124
Daniel Estévez @destevez.net · 18/03/2026
Yesterday @amsat-dl.org received and decoded again telemetry from Tianwen-1. I have done an updated plot of the orbital parameters with the new state vector telemetry. This shows that there have been no manoeuvres during the 3 months in which we haven't seen any signals.
A plot of the orbital parameters for Tianwen-1 for the last 4 years.
151
Reposted by Daniel Estévez
AMSAT-DL @amsat-dl.org · 17/03/2026
Tiannwen-1 is back !!!! 🎉📡〰️🛰️
084
Daniel Estévez @destevez.net · 12/03/2026
Following up on yesterday's announcement by @amsat-dl.org about the lack of signals received from Tianwen-1 since 2025-12-23, I have published a short post that contains the orbital state based on telemetry received up to 2025-12-22.
A series of plots showing the evolution of orbital parameters over time. The data up to 2025-12-22 is based on decoded telemetry. The data afterwards is propagated.
253
Reposted by Daniel Estévez
AMSAT-DL @amsat-dl.org · 11/03/2026
On 2025 December 23 we received what appears to be the last clear signal and telemetry from China’s Tianwen-1 Mars mission using the 20 m radio telescope Bochum. Since then, now almost 3 months ago, there has apparently been radio silence.
132
Daniel Estévez @destevez.net · 13/02/2026
New blog post: ESCAPADE telemetry. In November I posted about decoding the telemetry of this Mars twin orbiter mission. PistonMiner did additional reverse-engineering, and I wanted to revisit this and dig deeper in the telemetry.
231
Reposted by Daniel Estévez
AMSAT-DL @amsat-dl.org · 01/02/2026
VOYAGER-1 live on the YouTube stream from Bochum.
1224
Daniel Estévez @destevez.net · 21/01/2026
New blog post: Tooling for CSP. CSP is the cubesat space protocol. It is a network protocol used in cubesat buses, RF communications, and groundstations. Here I showcase some tooling to perform CSP network performance analysis and debugging that I have open sourced.
A screenshot of a terminal where we can see csp-iperf running and showing TX and RX rates and packet counts, round trip time measurements, and number of lost packets.
160
Daniel Estévez @destevez.net · 09/01/2026
New blog post: V16 beacon full uplink conversation. A follow up about my decoding of NB-IoT-connected car beacon warning lights (which is a thing starting this year in Spain). This time I have made a longer recording starting before the beacon is powered on.
A waterfall of the uplink transmissions of a beacon when it first begin transmitting. This is the message exchange that is needed to register the beacon in the cell network.
141
Daniel Estévez @destevez.net · 29/12/2025
New blog post: Decoding a V16 beacon. Starting in 2026, the V16 beacon mandatorily replaces the emergency triangles in road vehicles in Spain. This beacon has a strobe light and an NB-IoT connection to the cell network that it uses to send a message containing its GNSS location.
A waterfall of the uplink of a V16 beacon. We can see an m-FSK signal that is the NPRACH, and then some single-tone and multi-tone NPUSCH transmissions.
183
Daniel Estévez @destevez.net · 19/12/2025
New blog post: Notes on debugging Rust microcontroller stack usage. This is story about low-level debugging of a RISC-V baremetal application that was running out of stack depending on the compiler options.
1112
Daniel Estévez @destevez.net · 14/12/2025
I've released gr-satellites v5.9.0. gr-satellites is a collection of GNU Radio decoders for amateur satellites. This release adds support for recently launched satellites, as well as new blocks that can be used to put together an AX100-compatible modem with CSMA.
050
Daniel Estévez @destevez.net · 10/12/2025
New blog post: First analysis of the Lunar GNSS Receiver Experiment data. I have developed a high-sensitivity GPS acquisition algorithm in CUDA and ran it on the experiment datasets. 1 to 3 satellites are detected in 60% of the recordings.
An image showing the cross ambiguity function of a GPS signal. The correlation peak has high SNR and is clearly visible.
1103
Daniel Estévez @destevez.net · 29/11/2025
I've added SatYAML (configuration) files to gr-satellites for 24 satellites launched during 2025 that transmit on amateur radio spectrum. I'd like to request help from the community to keep gr-satellites updated with new launches, as it is hard for me to keep track of everything.
191
Daniel Estévez @destevez.net · 19/11/2025
New blog post: Decoding ESCAPADE. Here I decode a recording of the ESCAPADE spacecraft that I did with an Allen Telescope Array antenna the day after they were launched. The modulation is PCM/PSK/PM with rate=1/2 Turbo code. The telemetry uses CCSDS TM frames and Space Packets.
A waterfall of the ESCAPADE-Gold telemetry signal. It shows that there are significant changes in power over time. There is a gap caused by a problem with the recording. The signal resumes at a slower data rate after the gap.
1174
Daniel Estévez @destevez.net · 09/11/2025
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.
The release changelog.

Update Maia SDR to v0.12.0. Updates dependencies.

Update IQEngine to latest main.

Add IPv6 link-local address fe80::1/64 to simplify connecting to the Pluto by ssh before the IPv4 network is configured (for instance this can be used in Android devices that use an address of the form 10.xxx.yyy.zzz/24, which is not covered by the ipaddrmulti feature)

Include IP from fw_printenv ipaddr in the Subject Alternative Names of the maia-httpd SSL certificate.
110
Daniel Estévez @destevez.net · 02/11/2025
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...
A screenshot of Inspectrum that shows a waterfall containing multiple packets. Each packet is bounded with an annotation. There are also annotations for reply packets, which are not visible in the waterfall. The mouse is hovered over one packet, and the tooltip shows a dump of an IPv4 ping packet generated with Scapy.
061
Daniel Estévez @destevez.net · 25/10/2025
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-...
A formula of the symbol error rate for m-FSK. It is a summation with m - 1 terms that contains a binomial coefficient and an exponential term that depends on the Es/N0.A plot showing the BER versus Eb/N0 of m-FSK for m=2,4,8,16,32. The results using the closed-form formula and simulations are compared.
071
Daniel Estévez @destevez.net · 24/10/2025
New blog post: Non coherent FSK BER. A short note on how to compute the well known formula for the bit error rate of FSK, because I can never quickly find a source which contains this derivation. destevez.net/2025/10/non-...
destevez.net
Non-coherent FSK BER – Daniel Estévez
071
Daniel Estévez @destevez.net · 16/10/2025
New blog post: 10 years of blogging. Today it's 10 years since I wrote the first post in my blog. To celebrate I've made a summary of what I have been posting during these years. It can serve as a good index for people who are not too familiar with the blog's contents. destevez.net/2025/10/10-y...
destevez.net
10 years of blogging – Daniel Estévez
1171
Reposted by Daniel Estévez
hforsten @hforsten.com · 07/10/2025
New blog post: Synthetic aperture radar autofocus and calibration.
hforsten.com
Synthetic aperture radar autofocus and calibration
3D trajectory position error estimation autofocus, antenna pattern normalization, and polarimetric calibration for drone mounted SAR radar.
1258
Daniel Estévez @destevez.net · 08/10/2025
Would you like to work in RF signal processing at Muon Space for SIGINT and RF science missions with a team of great engineers including myself? If you are eligible to work on ITAR/EAR and interested in helping us grow our cloud-based and onboard processing, my DMs are open.
job-boards.greenhouse.io
RF Digital Signal Processing Specialist - Geospatial Intelligence
Mountain View, CA or Remote
091
Reposted by Daniel Estévez
hforsten @hforsten.com · 04/10/2025
Synthetic aperture radar vs Gopro.
3303
Daniel Estévez @destevez.net · 28/09/2025
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).
Two ASIC cells. The one on the top, which is the flip-flop I have designed is half as tall as the one on the bottom, which is the equivalent cell from the standard library. My flip-flop is also slightly narrower. There is a large difference between the transistor size in both cells, and also the amount of room available to route all the signals. The standard cell can route everything in one metal layer, while my flip-flop needs three metal layers.
171
Daniel Estévez @destevez.net · 04/09/2025
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.
A photo of an assembled PCB. It is a small board with an SMA connector, a few surface mount chips, a pin header, and tiny 0402 passives.
190
Daniel Estévez @destevez.net · 19/08/2025
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.
A false colour image that shows vegetation surviving the fire in green, vegetation lost by the fire in magenta and burnt areas of low vegetation in blue. In green we can see the parks in Tres Cantos, and the creeks and forests highlighted. In magenta we see a large part of the Monte de Viñuelas woodland, which has been burnt severely, as well as some creeks badly affected by the fire. In blue there are areas of dry grass pastures that have burnt, mostly outside of Monte de Viñuelas and northeast of Tres Cantos. There are spotty blue-green areas in the eastern part of Monte de Viñuelas, showing partial fire affectation with trees surviving.
161
Daniel Estévez @destevez.net · 13/08/2025
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.
An animated GIF that toggles between two satellite images of the same area. One was taken on a cloudless day some days before the fire. The other one is from the day after the fire. There are some clouds, but most of the burnt area can be seen through a break in the clouds.
3113
Daniel Estévez @destevez.net · 01/08/2025
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.
The changelog of the release:

Added

    Added callsign to deframer options
    Basic support for SigMF input
    CSP Address Filter block
    CSP ZMQ blocks
    Frame counter block
    Mobitex-NX deframer
    Support for JINJUSAT-1B
    Support for Hex20 Nila
    Support for NUSHSAT-1
    Support for TEVEL2 satellites
    Telemetry decoder for TUBiX20 (TUBIN)
    Time-dependent delay block
    Time synchronization tag to Doppler correction block
    U482C encoder block
    Uplink argument to tle_to_doppler_file.py example

Fixed

    Callsign '-' handling in Check AX.25 Address
    Packet size bug in AX100 deframer
    pybind11 bug in swap_header
    Timezone handling in PDU to KISS

Changed

    Added callsign in SatYAML to BEESAT-1,-9, TUBIN, NanoFF-A,-B, and TechnoSat
    Improved version printout in gr_satellites CLI app
    Updated AX.25 packet radio examples
    Use GNU Radio crc_check in GNU Radio >= 3.10
0143
Daniel Estévez @destevez.net · 17/07/2025
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).
An inspectrum waterfall that shows a 100 MHz 5G cell that is rather busy. We can see 7 SSB repetitions, and mostly empty uplink slots, since this is a TDD band.
1101
Reposted by Daniel Estévez
hforsten @hforsten.com · 13/07/2025
Wrote code for SAR image antenna pattern normalization and polarimetric calibration (channel imbalance and crosstalk). Image looks very nice now.
Uncalibrated SAR imageSame image after antenna pattern normalization and polarimetric calibration.
3283