<div dir="ltr"><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Welcome to the engineering report for Phase 4 Ground!</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">This issue: Snaps, IP Multicast, Multicore, PlusUltra, The Trans-Ionospheric, Linux in the Ham Shack, Block Party, and Space Policy.</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">27 July 2018</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Ubuntu Snaps for SDR</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Snaps are containerized software packages for Ubuntu. They are designed to be simple to create, install, run, and update on all major Linux systems without modification. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Steve Conklin, our platform lead, believes that Ubuntu Snaps are a great solution for some of our SDR work. He will be looking to work with Phil Karn's SDR package. What needs to happen next is getting the Karn SDR package updated with any recent work, and getting it to reliably build. If you can help with this, then contact Steve Conklin (<a href="mailto:steve@conklinhouse.com">steve@conklinhouse.com</a>) and proceed. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">The current SDR code is here: <a href="https://github.com/phase4ground/ka9q-sdr">https://github.com/phase4ground/ka9q-sdr</a></span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">IP Multicast Engineering Adventures</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Phil Karn found what he thought were two annoying Linux kernel bugs last week. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">The first was indeed an ipv4 multicast routing bug. The second was in the ALSA sound driver, and turned out to be a hardware-specific driver setting problem.</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">First, the ipv4 bug. An arbitrary hard-coded limit of 10 pending entries in the multicast routing table caused multicast traffic to never start on a network with lots of multicast traffic (e.g., at University of California at San Diego UCSD) when the stream you want had low activity.</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Phil could usually (but not always) get audio to flow when the receiver was tuned to NOAA Weather Radio (continuous), but often not when tuned to APRS (intermittent). And he could never get decoded AX.25 frames (every 5-10 sec or so).</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">These things worked well in other networks, but not at UCSD.</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Phil filed a bug report with the Linux kernel developers who confirmed it was a problem and proposed a patch. Phil reported that it only took a few hours to get a response. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Open source for the win!</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Of course, as Phil notes, open source only works when enough people use a functionality or protocol to create enough test cases that cover enough of the potential search space to where you will get the weird results that turn out to be subtle bugs. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">When Phil dug into the sound driver bug, it turned out to be a glitch in the Intel HDA timing system in his particular Dell laptop. There's a lot of this glitchery in this particular chip, and there are pages and pages of notes on various driver options to set to work around it. He found a discussion of what sounded like his problem, tried the suggested options on the kernel module, and the problem cleared up.</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">The problem was that with the default settings, an interrupt didn't get registered in the Linux kernel. He doesn't understand why it worked at all, but it's working now, and seems limited to particular laptop hardware. The symptom was that callbacks from the portaudio library stop coming, and the thread that calls them is stuck in a poll() that never returned. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Multicore Programming Notes</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Threading is powerful but also full of pitfalls. Phil relies heavily on pthreads. With even embedded processors often having two to four cores, anything worth coding really needs to take multiple cores into account and use them as effectively as possible. However, not only do you have to be concerned about race conditions, but also memory fencing, store fending, and load fencing. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Race conditions are somewhat self-explanatory. One set of instructions starts before input data is available or calculated in time. That means stale or missing data is used instead of expected timely results. Race conditions can be managed in several ways, including the use of flags or semaphores or guaranteed delays. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Memory fencing is when you ensure that memory operations occur in the correct order. If you have a single linear set of operations, this is inherent in the code. If you have concurrent lines of code, then enforcing proper shared memory access (both loads and stores) becomes critical. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">PlusUltra!</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Ultra96 work is proceeding. This effort is focused on getting Charles Brain's LDPC decode into an FPGA (among other functions). The Ultra96 is the leading contender for a development platform.</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">We've build bootable SD cards for the Ultra96 in a variety of ways. Methods include the PetaLinux toolchain as well as utilities from Brennan Ashton (<a href="https://gitlab.com/btashton/ultra96-notes/tree/master">https://gitlab.com/btashton/ultra96-notes/tree/master</a>). </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Jan Schiefer has updated his instructions on building an SD card that includes GNU Radio for the Ultra96: <a href="https://github.com/phase4ground/PlusUltra">https://github.com/phase4ground/PlusUltra</a></span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">This rewires the console port to come out of the console connector, adds drivers for some popular Realtek-based USB Ethernet dongles (so you can use Ethernet, or even TFTP-boot!), and adds gnuradio (version 3.7.13.4), including UHD.</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Trans-Ionospheric Badge</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">100 production badges arrived today (Friday 27 July) and another 100 will arrive next week. These hackable conference badges are amateur radio themed and are planned to interact with Phase 4 Ground radios as a wearable extension of the user interface. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Proceeds directly benefit Phase 4 Ground radio development board efforts. Our major sales event for Trans-Ionospheric badges will be at DEFCON, which is coming right up. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">The good news here is that we have a cooperative vendor in the DEFCON vendor room that has agreed to sell the boards at his booth. We are greatly appreciative of this opportunity. It's a huge help to funding Phase 4 Ground and spreading the fun of </span></span><span start="248" class="gmail-_5zk7" style="background-color:rgba(88,144,255,0.15);border-bottom:1px solid rgba(88,144,255,0.3);font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">#badgelife</span></span></span><span style="font-family:inherit"><span style="font-family:inherit">. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Phase 4 Ground, Open Research Institute, and Ettus Research will be part of WiFi Village this year. Come visit us and have fun with SDRs and GNU Radio!</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Linux in the Ham Shack </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Tune in to the Linux in the Ham Shack podcast episode 238 to hear Michelle W5NYV and Steve Conklin interviewed about Phase 4 Ground, Ubuntu Hams, Open Research Institute, and a few other things. Thank you to everyone at Linux in the Ham Shack for the opportunity to spread the news about open source efforts in amateur radio! <a href="http://lhspodcast.info/">http://lhspodcast.info/</a> </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Block Party at GNU Radio Conference</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">The hardest part of Phase 4 Ground radios is on the receiver side. Having complete DVB-S2 and DVB-S2X receiver blocks in GNU Radio, preferably leveraging RFNoC, is a major (and ambitious) goal. We are making progress, but we have a lot to do. We have organized a summit at GNU Radio Conference in September 2018. It's called a Block Party, because we want to make some blocks, and because we want it to be fun. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">We will have a dedicated room for the week and volunteers ready to help advise. We are bringing as much lab equipment as we can, a white board, and plenty of enthusiasm. The goal is to produce blocks (or substantial progress on blocks) for GNU Radio. We'll have some swag and quite possibly some Trans-Ionospheric badges and other items available. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Space Policy Participation</span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Open Research Institute will be at Goddard Space Center to participate in the Interplanetary CubeSat Workshop in August. We'll also be at the Open Source CubeSat Workshop in Madrid, Spain in September. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">The goal of participating and presenting at events such as these is to advance open source hardware and software in the amateur radio satellite service. There is a lot of work to be done here and we have a lot to learn. Our views are distinct from, add to, and interact with, those of AMSAT, ARRL, and others. We advocate a strong, committed open source approach and are actively developing and refining our policy views in order to make open source work easy and accessible and effective for anyone wanting to contribute to the amateur radio satellite service. </span></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><br></span></div></div><div class="gmail-" style="font-family:system-ui,-apple-system,system-ui,".SFNSText-Regular",sans-serif;color:rgb(29,33,41);font-size:14px;white-space:pre-wrap;text-decoration-style:initial;text-decoration-color:initial"><div class="gmail-_1mf gmail-_1mj" style="white-space:pre-wrap;direction:ltr;text-align:left;font-family:inherit"><span style="font-family:inherit"><span style="font-family:inherit">Join our mailing list and find out more about Phase 4 Ground and other Open Research Institute projects at <a href="https://openresearch.institute/">https://openresearch.institute/</a></span></span></div></div><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div><br></div></div></div></div></div></div></div></div></div>
</div>