P4XT (Phase One) Workshop Design Review

Learn about our work on the digital microwave broadband transponder for amateur radio.

https://www.youtube.com/watch?v=QXiWCgo10lg

All work is donated to the general public as open source.

This digital multiplexing transponder is a regenerative design, taking full advantage of a wide variety of cutting edge technology, intended for amateur radio use in space and terrestrial deployments.

This review focuses on decisions made for the prototype board set that implements the transmitter side of the payload.

Comment and critique welcome and encouraged.

March 2019 Report: JAMSAT Symposium, Phase 4 Ground, and GNU Radio Companion Localization!

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 w5nyv@arrl.net to join our Slack account. This is where daily engineering discussions take place.

More soon!
-W5NYV

Hardware Donation for Open Source Space Communications Work – LimeSDR Mini Kits Available

Thanks to the enormous generosity of MyriadRF, Phase 4 Ground has some hardware help!

Five LimeSDR Mini Kits have been given to Phase 4 Ground for open source satellite communications development work.

We want to get these into as many hardworking hands as possible! Write me today with your need and let’s get you up and running.

I recently set up a LimeSDR Mini with GNU Radio with one of our list members and it went very well. This is a wonderful SDR. The LimeSuite GUI allows prototyping with what feels like every register setting on the controller. Performance is very good.

For a talk about LimeSDR (and the extended frequency range chip) from Microwave Update 2018 from Mike Seguin N1JEZ, please see https://youtu.be/F76BzezuCmw

LDPC-BCH decode on the FPGA is a current area of great interest for us. LDPC-BCH is the forward error correction for DVB-S2/X. But, we are also interested in doing more with Polar codes. There is at least one open source satellite payload project that has specified Polar forward error correcting codes. There is very little open source work here, it’s cutting edge, and Polar codes are specified for use in 5G communications. Polar codes are the first family of error-correcting codes that achieve the Shannon capacity for a wide range of communication channels with efficient encoding and decoding.

The FPGA on the LimeSDR mini is the Intel MAX 10 (10M16SAU169C8G 169-UBGA). How far can we take it?

What else needs doing? How about a SatNOGS station with the LimeSDR mini? A proof of concept of Phase 4 Ground authentication and authorization scheme? Handling the Generic Stream Encapsulation streams properly from the downlink for amateur communications? Plenty to do! Dive in and we will help you.

Contact Michelle W5NYV w5nyv@arrl.net to sign on and get kitted up.

Open Source Low Density Parity Check Decoder for DVB-S2, DVB-S2X, DVB-T2 Working in GNU Radio

An open source Low Density Parity Check decode from Phase 4 Ground is working for DVB-S2, DVB-S2X, and DVB-T2 in GNU Radio, thanks to the efforts of Ahmet Inan, Ron Economos, and Charles Brain.

This is a big step forward for open source satellite communications.

Video report here:
https://youtu.be/fOYVOgybFKY

Out of Tree (OOT) GNU Radio module by Dr. MPEG here:
https://github.com/drmpeg/gr-dvbldpc

Decoder by Ahmet here:
https://github.com/xdsopl/LDPC