GNU Radio OOT Module for the amateur radio payload of DSLWP-A/B (formal name Longjiang-1/2, and Oscar number LO-93/94), a lunar microsatellite mission led by Harbin Institute of Technology.
DSLWP means Discovering the Sky at the Longest Wavelengths Pathfinder, as the main payload of the microsatellites are low frequency receivers for radio astronomy operating on 1~30 MHz band.
Papers about this project:
[1] Wei M, Hu C, Estévez D, et al. Design and flight results of the VHF/UHF communication system of Longjiang lunar microsatellites[J/OL]. Nature Communications, 2020, 11(1): 3425[2020-07-09]. https://doi.org/10.1038/s41467-020-17272-8.
[2] 韦明川,胡超然,阎敬业,等. 首颗自主地月转移微卫星“龙江二号”[J]. 宇航学报,2020,41(6):790-799. http://www.yhxb.org.cn/CN/10.3873/j.issn.1000-1328.2020.06.016.
$ mkdir build $ cd build $ cmake ../ $ make $ sudo make install $ sudo ldconfig
GRC hier blocks are included in the hier folder. To install, please open the .grc files, press the "Generate flow graph" botton and restart GRC.
Please edit the path in Program Tracking CC in all the demod GRCs to the correct program tracking file. Currently gr-dslwp/examples/ program_tracking_dslwp-a_20180520_window1.txt for the first launch window.
As the bandwidth of the downlink signal is quite small, please calibrate your receiver frequency within 500 Hz. Warming up your receiver for at least 15 minutes, then transmit with a precise frequency, and edit the value of f_offset in frontend GRCs in Hz.
6 different demod GRCs are provided for differnet frequencies and modes. After sepration, the following GRCs should be used:
- demod_dslwp_gmsk_a0_500bps_0.25_dpd.grc (Satellite A Radio 0, 500 bps GMSK with 1/4 Turbo code)
- demod_dslwp_gmsk_a1_250bps_0.5_coherent.grc (Satellite A Radio 1, 250 bps GMSK with 1/2 Turbo code and precoder)
- demod_dslwp_gmsk_b0_500bps_0.25_dpd.grc (Satellite B Radio 0, 500 bps GMSK with 1/4 Turbo code)
- demod_dslwp_gmsk_b1_250bps_0.5_coherent.grc (Satellite B Radio 1, 250 bps GMSK with 1/2 Turbo code and precoder) It is recommanded to generate the .py files first, then run them in different terminals to distinguish the messages from different channels.
A TLE was provided on http://lilacsat.hit.edu.cn/tle/dslwp.txt. It is not a precise way to describe a lunar transfer orbit, but can be used for antenna pointing during lunar transferring. After lunar injection, TLE is no longer useful.
Decoded telemetry will be displayed here, if uploaded with the proxy: http://lilacsat.hit.edu.cn/dashboard/pages_en/telemetry-a.html and http://lilacsat.hit.edu.cn/dashboard/pages_en/telemetry-b.html These pages will also be used as a proof of applying QSL cards and awards.
A TLE was provided on http://lilacsat.hit.edu.cn/tle/dslwp.txt. It is not a precise way to describe a lunar transfer orbit, but can be used for antenna pointing during lunar transferring. After lunar injection, TLE is no longer useful.
https://1drv.ms/u/s!Av6J6WjI3UbMhHWVF5N2PY_tgPRn
https://1drv.ms/u/s!Av6J6WjI3UbMhHm8gwMr4Z_keqWH
A GMSK demodulator under development, with OQPSK type PLL, sync word detection and Turbo codes. In the examples folder:
- test_turbo_gmsk_selfloop.grc for software simulation. Try differnet ebn0, ebn0_threshold, pll_loop_bw, etc. for evaluation.
- test_turbo_gmsk_tx.grc and test_turbo_gmsk_rx.grc can be used for a test with real channel with 2 USRPs.
Thanks to Gianluna for the turbo encoder / decoder: https://github.com/geeanlooca/deepspace-turbo