• Analysis of the CAMRAS Venus radar experiment

    On March 22, CAMRAS performed a Venus radar experiment (or Earth-Venus-Earth bounce, as it is more commonly known in Amateur radio) in collaboration with Astropeiler Stockert, the Deep Space Exploration Society, and the Open Research Institute. The experiment was done in L-band, at 1299.5 MHz, using the 25 m Dwingeloo radiotelescope as transmitter and receiver and the Stockert 25 m telescope as a receiver. The experiment was done during the Venus conjunction, as this minimizes the distance between the Earth and Venus. The round-trip time to Venus was approximately 280 seconds. The radar waveform was a CW carrier with a duration of 278 seconds. It was transmitted a total of 4 times every 600 seconds. Thus each period was composed by:

    • 278 second transmission
    • ~2 second TX/RX guard time
    • 278 second echo reception
    • ~42 second wait

    More transmissions were planned, including some spread-spectrum signals designed by the Open Research Institute. However, the transmitter started failing and they had to stop.

    Update 2025-04-21: I have been informed that the spread-spectrum signal for this experiment was designed by CAMRAS. The waveform that the Open Research Institute is designing will potentially be used in future experiments.

    CAMRAS has published an analysis of the recorded IQ data, showing successful echo detections with Dwingeloo and Stockert. There is an example Jupyter notebook that shows how to Doppler correct the echo and detect it with an FFT. All the recorded IQ data has been published.

    In this post I will do my own analysis of the experiment. The goal is not to confirm the successful detection with an independent analysis, since I believe that the analysis published by CAMRAS is correct and leaves no doubt about this. It is to expand this analysis and to touch on other topics that this analysis has not covered:

    • Calculation of the Doppler. CAMRAS has published CSV files containing the expected Doppler at each receiver, but they have not published the code to calculate this. Here I will do all the relevant calculations with SPICE.
    • Doppler correction with the gr-satellites Doppler correction block, which performs linear interpolation of the Doppler frequency to calculate the frequency shift applied to each sample.
    • High-quality spectral analysis with a polyphase filterbank.
    • Try to estimate the Doppler spread and compare with some results in the literature.
  • Decoding BGM-1 GMSK telemetry

    In my previous post, I analyzed the Doppler of the Blue Ghost Mission 1 S-band telemetry signal during its lunar landing. The mission came to an end on March 16, as night fell on the landing site. During the 14 days that it has been operating on the lunar surface, BGM-1 has been transmitting low-rate GMSK telemetry on S-band at some times, and a high-rate signal on X-band at other times (this is said to be up to 10 Mbps DVB-S2), including some periods of no transmissions, presumably for thermal management.

    In this post I will show how to decode the GMSK S-band telemetry signal with GNU Radio. I will use the IQ recording done by CAMRAS with the Dwingeloo 25 m radiotelescope during the landing as an example, since this dataset is publicly available.

    The signal is 15360 baud GMSK, with the usual precoder that allows coherent demodulation as OQPSK (see Figure 2.4.17A-1 in the Radio Frequency and Modulation Systems CCSDS Blue Book). The coding is CCSDS concatenated coding with a Reed-Solomon interleaving depth of 4. The frame size is 892 bytes (4 times 223). The frames are CCSDS TM Space Data Link frames, but there is a bug in how the Reed-Solomon interleaving is implemented. The contents of the Space Data Link frames are encrypted, probably using CCSDS SDLS.

  • BGM-1 Doppler during the lunar landing

    On Sunday March 2, Firefly Aerospace’s Blue Ghost Mission 1 successfully landed on Mare Crisium, becoming the first NASA CLPS mission to perform a fully successful lunar landing. Congratulations to all the team at Firefly for this huge achievement.

    Both AMSAT-DL and CAMRAS covered this event live, by receiving the S-band beacon from the lander with the 20 m antenna in Bochum Observatory and the 25 m Dwingeloo radiotelescope respectively, and streaming the waterfall of the signal in YouTube.

    In this post I do a quick analysis of the Doppler of the signal received at Bochum and Dwingeloo. Part of the goal of this is to try to answer a question of Jonathan McDowell, who asked if it was possible to determine the exact second of the touchdown from this data. The answer is that this is probably not possible, since for a soft touchdown there is no significant acceleration at touchdown that can be identified in the Doppler curve.

    The raw IQ data recorded by AMSAT-DL is not publicly available. The data recorded by CAMRAS can be found here.

  • Coding NEON kernels for the Cortex-A53

    Some weeks ago, I presented at FOSDEM my work-in-progress high performance SDR runtime qsdr. I showed a hand-written NEON assembly implementation of a kernel that computes \(y[n] = ax[n] + b\), which I used as the basic math block for benchmarks on a Kria KV260 board (which has a quad-core ARM Cortex-A53 at 1.33 GHz). In that talk I glossed over the details of how I implemented this NEON kernel. There are enough tricks and considerations that I could make a full talk just out of explaining how to write this kernel. This will be the topic for this post.

  • Decoding HYDRA-T

    HYDRA-T is a PocketQube developed and operated by the Spanish start-up Hydra Space. It was launched on SpaceX’s Transporter 12 mission on January 12, and according to this news article (in Spanish), it is very similar to HADES-R, another PocketQube also launched in Transporter 12 and developed by Hydra Space and operated by AMSAT-EA, the Spanish amateur satellite society. While HADES-R is an amateur satellite that carries a transponder for amateur radio communications, HYDRA-T is a commercial satellite which according to the news article carries a payload from the 6G-XTREME CON-SAT project from Universidad Carlos III de Madrid related to 6G deployment.

    Some days ago, people in the LibreSpace forums started noticing that HYDRA-T was transmitting telemetry on 437.780 MHz, which is a frequency that belongs to the amateur satellite service 435 – 438 MHz band. This was acknowledged by Félix Páez EA4GQS, who is AMSAT-EA’s president and Hydra Space Software and Satellite Operations Manager. Félix expressed that HYDRA-T should not be transmitting in this frequency even if it has a license to do so.

    I could delve more and give my opinion about whether HYDRA-T can rightfully transmit on this frequency, specially given the fact that it is doing so under the Earth Exploration Satellite Service (active) allocation (see the frequency allocation tables from ITU, and the ITU Space Explorer entry for this satellite, which for some reason is listed there as HYDRA-A), which is a whole different usage from a telemetry downlink of a communications satellite. Maybe I will do this another time. In this short post I wanted to focus on the analysis of the short telemetry recording shared by Jan van Gils PE0SAT, and show the similarities between HYDRA-T and HADES-R, as well as previous satellites from AMSAT-EA, for which documentation of their telemetry format is publicly available.


10ghz artemis1 astronomy astrophotography ATA ccsds ce5 contests digital modes doppler dslwp dsp eshail2 fec freedv frequency gmat gnss gnuradio gomx hermeslite hf jt kits lilacsat limesdr linrad lte microwaves mods moonbounce noise ofdm orbital dynamics outernet polarization radar radioastronomy radiosonde rust satellites sdr signal generators tianwen vhf & uhf