Phase 4 Ground and GNU Radio
My daughter Geneva and I had a wonderful time at JAMSAT Symposium in March 2019! There was a wide variety of talks about so many different payloads, a very special banquet dinner, adventures in Kyoto and Osaka, visits to ham radio stores, getting to see a new ICOM radio up close, lots of Pokemon, a Fire Festival, and making so many new friends. We were welcomed and will never forget the hospitality. A big part of Symposium was the GNU Radio Workshop by Imamura-san. It was an honor to share how we on Phase 4 Ground use GNU Radio in our presentation on Sunday morning.
GNU Radio is a digital signal processing framework for software-defined radio. It’s the software that tells the hardware in your radio what to do. We need to be able to quickly and easily set up a software-defined radio to do whatever modulation and coding we want, and GNU Radio Companion can help us do this. GNU Radio Companion is a Graphical User Interface that allows us to drag and drop functions onto a canvas. We click block outputs to connect to block inputs. When we do this, it creates a directed graph that implements radio functions. The signals flow from beginning to end. Each block modifies the signal, as if it was part of a circuit. The flow graph looks something like a block diagram combined with a software flowchart. GNU Radio has software variables. It can adapt to signal conditions and user input.
The workshop was held after the last talk on Sunday. It was several hours of hands-on training. Participants brought their own computers, installed GNU Radio, and created useful radio flow graphs that worked with real hardware. Several experiments were done in order. Imamura-san kept everything organized through a set of projected slides that had clear instructions. Optimizations and customizations were made so that participants could see how they can use GNU Radio to achieve their goals. The hardware included RTL-SDRs and Plutos. Imamura-san also demonstrated a live video transmission from the podium.
GNU Radio comes with a very large number blocks included. When you install GNU Radio, these blocks come for free! The first type of block is a source block. This brings the digital samples, from the radio hardware attached to the computer, into the GNU Radio flow graph. The second type of block is a sink block, which consumes signals. Sink blocks include things like saving a signal to disk, an audio output, oscilloscopes, spectrum analyzers, time sequences, or video. In between the sources and the sinks are all the radio functions that we need to make our radios work. Filters, amplifiers, decoders, demodulators, counters, constellations, costas loops, synchronizers, and more! You can make your own custom blocks or modify an existing block.
If you install GNU Radio using PYBOMBs, then you can add additional blocks from outside GNU Radio very easily. PYBOMBS works on Linux.
One of the most useful GNU Radio Recipes for our community is gr-satellites, by Dr. Daniel Estévez. There are a lot of satellites supported in this module. For an introduction, please see the source code repository here: https://github.com/daniestevez/gr-satellites.
The introduction also covers how to submit telemetry to the projects that have requested this.
Other great open source satellite communications projects include Dan Cajacob’s base station network, Alexandru Csete’s gqrx and gpredict programs, Libre Space Foundation’s SatNOGs (satellite network on the ground) with RTL-SDR and GNU Radio, and PE4WJ Es’Hail2 (QO-100) uplink, beacon tracker and LNB drift correction flowgraphs.
Phase 4 Ground is a broadband digital microwave system for both terrestrial and space use. It complies with both ITAR and EAR open source and public domain carve-outs, so it’s open to participation worldwide. All engineering is published as it’s created. All are welcome to participate.
Phase 4 Ground is best suited for GEO and HEO satellite missions. The uplink is frequency division multiple access. We use a 5GHz uplink. The regenerative repeater payload receives the uplink signals, digitizes them, multiplexes them, and processes them into DVB-S2 and DVB-S2X frames. The downlink is 10GHz. DVB-S2 is Digital Video Broadcasting Satellite 2nd edition. The X stands for extensions down in to Very Low SNR modulation and codings. Very Low SNR is of interest to hams, so we include the extension to the main standard DVB-S2.
We use both pilots and short frame lengths in order to make the receiver implementation as easy as possible. Pilot tones are optional, and there are medium and long frames available in the standard.
There is a recommended order to receive DVB-S2/X frames. The first stage of the demodulator is symbol timing recovery. We have to figure out the best possible time to measure the received signal. We don’t know what the transmitter clock is doing! We will not be coordinated with it. We may even be off a bit in terms of the period of the clocks, or we might have jitter, or we might have drift. We have to analyze the received waveform and synchronize our receiver clock to the transmitter clock that is “hidden” in the received signal. Then, once we are synchronized, we sample that symbol and report the results. Doing this gives us a reliable value for the received symbol. Now that we have a series of received symbols, we have to figure out the start of the frame. This is done in DVB-S2 (and many other protocols) by sending a fixed well-known pattern at the start of every frame. For DVB-S2, this is called a Physical Layer Start of Frame sequence. It’s 26 symbols long. This is what we look for. Once we see it, we know where the start of the frame is! Frame synchronization can be done in several ways. There are two different methods described in the implementation guidelines for DVB-S2/X. One is relatively simple, using shift registers. The other is bit more complex, using state machines. There are advantages to using the state machine method, but it’s more complicated and expensive. The shift registers is simple and cheap, but gives up a bit of performance. This is the constant balance in digital communications. Performance comes at a cost!
Right after frame synchronization, we correct for carrier frequency error. First we do a coarse correction. This can be done with a delay-and-multiply frequency error detector. Then we do a fine correction. This can be done with something like a feed-forward estimation algorithm. Coarse correction is in the MHz, and fine correction is the hundreds of kHz.
Next, we do phase recovery. This is to fix any residual frequency offset from the coarse and fine frequency offsets. Phase 4 Ground will support all the modulation and codings of DVB-S2/X, but we expect lower order modulations to be more heavily used. This means that a pilot-assisted maximum-likelihood (ML) feed-forward estimator will be the most useful. If you compute the average phase of each pilot field, then you can subtract this out and improve the signal. Higher-order modulations will need another feedback loop.
Automatic gain control is next. AGC can be done in many ways. One way to do it depends on the pilot symbols in DVB-S2/X standard. These symbols are sent at regular intervals to provide a known easy-to-receive signal. We use these known pilot symbols in order to determine the amplitude multiplication factor for the rest of the signal. Pilot symbols are optional in the DVB standard, but Phase 4 Ground requires them. When the pilot symbols are on, the AGC is listening. When the pilot symbols are off, the AGC turns off, and the information from the AGC is used.
After AGC, the constellation is decoded. DVB-S2 has a lot of them! There are many techniques to get the bits from the constellations. GNU Radio has a very versatile and powerful constellation block.
Instead of the usual MPEG transport stream (DVB-S2 is for satellite TV, so the content is usually broadcast television signals), we use the more flexible Generic Stream Encapsulation standard from DVB.org. This means we have less overhead and complexity, and can handle any digital traffic that the amateur operator wants to transmit. It’s just a digital pipe.
Phase 4 Ground uses GNU Radio extensively in research and development as well as for archiving and publishing our work. GNU Radio is not just a tool to figure things out, but is also a way to define a reference design for the radio.
Because Phase 4 Ground is not a bent pipe, the payload is more complex. This complexity needs to be fully tested on the ground before risking large digital circuits in space.
All the uplink channels are received with a polyphase filter bank. The current polyphase filter bank implementation in GNU Radio needs some updates in order to achieve the speeds and performance that we want. This is an active area of research and development. There have been three efforts over the past three years by various groups that have attempted to update and improve the existing working polyphase filter bank in GNU Radio.
Ron Economos and Paul Williamson successfully implemented GSE in GNU Radio and in Wireshark. This made it possible to do transport layer testing. Ron Economos is the lead author of the DVB blocks in GNU Radio. Improvements to GSE continue today. The current focus is improving internetworking functions so that large amounts of data can be more easily handled. We intend to use multicast IP as much as possible, and making sure GSE integrates well with multicast IP is important.
The error correction in DVB-S2/X is state of the art. There are not many other error correcting codes that are better than Low Density Parity Check + BCH. This is a concatenated digital code specified by the DVB standard for S2 and T2 transmissions. We have two open source implementations of LDPC decode for DVB-S2/X. The first one is for graphical processing units and was written by Charles Brain. It was demonstrated at 2017 AMSAT-NA Symposium and at several events following. The second open source implementation is in C by Ahmet Inan and can be found here: https://github.com/xdsopl/LDPC
This version has been incorporated into GNU Radio by Ron Economos. This can be found here: https://github.com/drmpeg/gr-dvbs2rx
The next step for LDPC is to implement and publish an open source version for FPGA.
GNU Radio is very important for our voice codec work, uplink modulation experiments, and trying out authentication and authorization schemes. GNU Radio allows us to use a wide variety of off the shelf hardware to achieve things that were not possible only a few short years ago. The GNU Radio community has been welcoming, helpful, supportive, friendly, and a source of continually amazing software-defined radio advancements.
GNU Radio has an annual conference. In 2018, we held a week-long “Block Party” for DVB-S2/X. We had fun, set up multiple demos, explained DVB-S2/X, made the case for open source LDPC, and made progress on DVB-S2 correlates and GSE. Phase 4 Ground made significant progress due to the generous support of the conference organizers and the community.
Learn more about the conference here: https://www.gnuradio.org/grcon/grcon19/
Registration for 2019 is open. The conference will be held September 16-20, 2019 in Huntsville, AL, USA. There is a poster session, proceedings, talks, workshops, contests, and social activities. The theme for 2019 is Space Communications! There are special gifts for space themed content. If you have a GNU Radio project that you want to share, consider making a presentation at or sending a poster to GNU Radio Conference 2019.
One of the proposals coming out of JAMSAT 2019 was localization of GNU Radio Companion for the Japanese language. Work has begun. The first step is to make sure that all Japanese characters can be displayed in GNU Radio Companion. This means going through the codebase and removing anything that prevents Japanese characters from being freely displayed. GNU Radio project leadership is very supportive of the project. We will do our best on this! We will need help reviewing and perfecting the language support in GNU Radio Companion.
The collaboration between Phase 4 Ground and JAMSAT has been absolutely stellar and we all look forward to continued enjoyment and success. Next generation payloads will be more complicated with multiplexing and advanced digital techniques. We all need to be able to work together, internationally. Open source and public domain is the best way. Phase 4 Ground and Open Research Institute are entirely dedicated to making this happen. We will be keeping the momentum and progress going. ORI is proud to be an affiliate member of Open Source Initiative https://opensource.org/
Join the Phase 4 Ground team! Our mailing list can be found at our website https://openresearch.institute/ Write Michelle Thompson [email protected] to join our Slack account. This is where daily engineering discussions take place.