<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Bill,<br>
    <br>
    My only concern with the term "server" is that we may have several
    functional pieces that fit that definition, like when the
    TangerineSDR (including the SBC) acts like a server to users that
    want to connect to get RX data streams in a non-SWPC use case.  So
    as long as we can be unambiguous in the use, I am OK with the term.
    <br>
    <br>
    I will want to define the DE-to-SBC protocol in terms of Server and
    Client functions, and it will have nothing to do with the Central
    Server concept.<br>
    <br>
    When referring to the DE, can you please define it as the
    "TangerineSDR Data Engine (DE)" the first time, as a definition?<br>
    <br>
    73,<br>
    Scotty WA2DFI<br>
    <br>
    <div class="moz-cite-prefix">On 2019-05-13 14:56, Engelke, Bill
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:0d4b660e79084308bbf51dd99ba8ba61@ua.edu">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:117187428;
        mso-list-type:hybrid;
        mso-list-template-ids:2068853702 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Hello
            Scotty:<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><span
              style="mso-list:Ignore">1.<span style="font:7.0pt
                "Times New Roman"">      
              </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">On
            terminology, how about this…. In the SBC documentation, I
            need some way refer to the Data Engine.  The first couple of
            versions of the SBC Functional Spec call it the Tangerine;
            but now I understand that you mean for the Tangerine to
            include the SBC.  I can update the SBC spec to refer to the
            Data Engine (instead of calling it the Tangerine).<o:p></o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><span
              style="mso-list:Ignore">2.<span style="font:7.0pt
                "Times New Roman"">      
              </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">I
            have already started a Parking Lot document on the Google
            Drive. See
            <a
href="https://drive.google.com/drive/folders/1FYlmw3pINacZMEnYCFQg2sNzPeM-NElK"
              moz-do-not-send="true">
https://drive.google.com/drive/folders/1FYlmw3pINacZMEnYCFQg2sNzPeM-NElK</a>
            We can copy this stuff to github at some point if needed.<o:p></o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><span
              style="mso-list:Ignore">3.<span style="font:7.0pt
                "Times New Roman"">      
              </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">On
            the “server” – I mention the DE-to-server data path
            primarily because Tom wants to account for organizations
            like MIT Haystack which will have virtually unlimited
            bandwidth to an enormous server.  Most users will not have
            that, and the Central Control system / Database will not be
            sized to allow uploading at full speed (25 Megabytes/sec).
            In > 90% of cases, the data will have to go from DE to
            SBC and then be throttled and or preprocessed/compressed to
            be uploaded to the Central System.<o:p></o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><span
              style="mso-list:Ignore">4.<span style="font:7.0pt
                "Times New Roman"">      
              </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">GNURadio: 
            I have installed it on an Oxdroid XU4 and it works quite
            well handling data at 100  ksps (IQ, single slice) from Red
            Pitaya.  The Odroid N2 seems to be about 15% faster
            according to benchmarks. I am going to further characterize
            what it can do. GNURadio has been used successfully in the
            SatNOGS project. Remember that it does not have to run in
            real time to pre-process data (for an FFT, for example) for
            upload.<o:p></o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><span
              style="mso-list:Ignore">5.<span style="font:7.0pt
                "Times New Roman"">      
              </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Compression:
            Phil Erickson is strongly urging us to consider storing (and
            maybe also transporting) data in HDF5 format.  I have worked
            with that in the past  and today ran some tests to see what
            kind of compression we can get. It compresses wav files down
            to about 40% of their initial size (I understand we need to
            verify that this is lossless).<o:p></o:p></span></p>
        <p class="MsoListParagraph"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoListParagraph"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoListParagraph"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">More
            to come tomorrow.  I will also go more closely thru your
            comments and make sure to address everything in some way. 
            Are you going to be at the TAPR/AMSAT dinner at Dayton?  
            -73- Bill<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">
                TangerineSDR <a class="moz-txt-link-rfc2396E" href="mailto:tangerinesdr-bounces@lists.tapr.org"><tangerinesdr-bounces@lists.tapr.org></a>
                <b>On Behalf Of </b>Scotty Cowling via TangerineSDR<br>
                <b>Sent:</b> Monday, May 13, 2019 3:30 PM<br>
                <b>To:</b> Tom McDermott <a class="moz-txt-link-rfc2396E" href="mailto:tom.n5eg@gmail.com"><tom.n5eg@gmail.com></a>;
                Engelke, Bill <a class="moz-txt-link-rfc2396E" href="mailto:bill.engelke@ua.edu"><bill.engelke@ua.edu></a><br>
                <b>Cc:</b> Scotty Cowling <a class="moz-txt-link-rfc2396E" href="mailto:scotty@tonks.com"><scotty@tonks.com></a>;
                Nathaniel A. Frissell
                <a class="moz-txt-link-rfc2396E" href="mailto:nathaniel.a.frissell@njit.edu"><nathaniel.a.frissell@njit.edu></a>;
                <a class="moz-txt-link-abbreviated" href="mailto:tangerinesdr@lists.tapr.org">tangerinesdr@lists.tapr.org</a><br>
                <b>Subject:</b> Re: [TangerineSDR] Local Host Functional
                Specification, Version 0.1<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal" style="margin-bottom:12.0pt">Hi Bill,<br>
          <br>
          It is good to see specifications take shape!  TAPR has a
          Github account, will this be sufficient for the "parking lot"?<br>
          <br>
          Comments on the spec.<br>
          <br>
          First, my concept of the TangerineSDR *includes* the SBC. Here
          is the block diagram from the hardware spec:<br>
          <br>
          <img style="width:9.2708in;height:4.0833in" id="_x0000_i1025"
            src="cid:part2.188C6533.E64736B1@tonks.com" class=""
            width="890" height="392" border="0"><br>
          Without confusing things too much, can we make this
          distinction? So really, if we take a TangerineSDR and program
          the SBC with the PSWS Local Host software, we will transform
          the TangerineSDR into a PSWS. (Likely we would also have to
          re-program the FPGA with new firmware, and ensure that the
          TangerineSDR had the correct hardware sub-modules (CKM, RFM,
          DE, Sensor shield.)<br>
          <br>
          The part that you refer to as the "Tangerine" is really the
          TangerineSDR DE and associated components (CKM, RFM, Sensor
          Shield).<br>
          <br>
          You do mention connecting the TangerineSDR DE directly to a
          server. I want to make sure that our terms are consistently
          correct (blame my OCD). In the TangerineSDR world, it is a
          server, a connection between the RF world and our network. The
          combination of direct UDP data to/from the DE and/or UDP/TCP
          C&C plus data to/from the SBC makes up the TangerineSDR
          "Server" function. TangerineSDR talks to "clients",
          processors, consumers (RX) or producers (TX) of data.<br>
          <br>
          So in the case where the SBC is the consumer and pre-processor
          of data, the SBC part of my definition of TangerineSDR becomes
          a client to the DE. It then becomes a "server" to what you
          refer to as the Server, which I presume is the Central Server
          of All PSWS Big Data. The Central Server then becomes a
          "server" to Scientific clients that which to obtain and study
          the data collected from all the thousands of PSWS.<br>
          <br>
          So what is the best nomenclature to use? Perhaps we should
          define a PSWS Central Server to be "SWServer" or "SWSS". And
          then call out the specific pieces of the hardware by their
          names, since we are really defining them in terms of function
          in your spec. So please use "TangerineSDR DE" and either
          "TangerineSDR SBC" or maybe just "SBC", which is clear enough.
          To me, TangerineSDR by itself means the whole CKM, RFM, DE and
          SBC.<br>
          <br>
          Again, my goal is for "TangerineSDR" to be configurable as
          "PSWS", "P4G", "STEM SDR", etc. All of these will include some
          form of SBC.<br>
          <br>
          The confusion is probably my fault for putting the DE hardware
          spec cart before the TangerineSDR system spec horse.<br>
          <br>
          On GNURadio, I doubt that you will find that any affordable
          SBC will provide GNURadio with adequate run-time resources.
          Have you loaded loaded and run it on a RPi? My opinion is that
          it is a great R&D tool, but it is nowhere stable enough to
          include in any release of automated PSWS software. I can't
          even imagine a thousand copies of GNURadio on PSWS all around
          the world. It would simply not work. I am willing to be proven
          wrong, but we will need a lot more testing to prove stability
          before then.<br>
          <br>
          On system updates, I plan to have the ability for the LCC to
          supporting updates to the DE firmware from the SBC. In my
          case, I was thinking manual update by connecting the SBC to a
          web page and letting the user pick an update from a list. The
          Remote C&C could implement an external prcedure to
          virtualize a firmware update to the DE via the LCC interface.
          It could even be made automatic or a push update from the
          SWSS, with proper authentication.<br>
          <br>
          73,<br>
          Scotty WA2DFI<br>
          <br>
          <o:p></o:p></p>
        <div>
          <p class="MsoNormal">On 2019-05-12 06:52, Tom McDermott wrote:<o:p></o:p></p>
        </div>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <div>
            <div>
              <div>
                <p class="MsoNormal">Hi Bill - thanks for generating the
                  spec.  It's good to see various pieces of the project
                  starting<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal">to get documentation. It's a nice
                  document.  Can I borrow the nice HAMSCI and TAPR
                  logos?<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal">Here are some comments on the spec
                  - it may be too early to address most of them (perhaps<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal">put them in the parking lot and get
                  back to them later?).<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal">1.User Interface.  Would it be
                  useful to have an optional status / eye-candy display<br>
                  of space weather, propagation, or measurements?   This
                  might be a selling<br>
                  point for people to acquire a PSWS. Would it need to
                  download something<br>
                  from the central server to do this?<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal">2. Does the system need a way to do
                  unattended recovery / restart?  Once the<br>
                  system has been configured for unattended operation
                  and measurement, should<br>
                  the system have a GUI settable configuration to enable
                  the ability to auto<br>
                  discover radios, program them to the current
                  observational needs (frequency, band,<br>
                  etc.), and establish server reporting?  Essentially,
                  get back to what it was doing<br>
                  before power failed, or the node was rebooted, etc.<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal">3. One of the key issues will be
                  the time required to upload data to the central<br>
                  server. For example:  a dual-receiver 8-band 192 ks/s
                  15-minute observation would<br>
                  be about 20 GB of data. Assuming a 1 Mbit/s upload
                  speed it would take about 2 days<br>
                  to upload (assuming near 100% efficiency).  During
                  that upload the 24-hour buffer<br>
                  would be over-written.  <o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal">4. Could the data to be uploaded to
                  the server be compressed effectively?  Lossless<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal">compression might not achieve much
                  reduction in data size.  Lossy compression might<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal">obscure science data. Can the SBC
                  compress data while doing other tasks (concern<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal">about CPU performance).<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal">5. Should Gnuradio support be
                  optional?  It is a lot of overhead, there may be<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal">lower-resource approaches to data
                  processing.  Does Gnuradio have reliability<br>
                  issues for long-running / continuous tasks?<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal">-- Tom, N5EG<o:p></o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
              <div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
            </div>
          </div>
          <p class="MsoNormal"><o:p> </o:p></p>
          <div>
            <div>
              <p class="MsoNormal">On Sat, May 11, 2019 at 12:46 PM
                Engelke, Bill <<a href="mailto:bill.engelke@ua.edu"
                  moz-do-not-send="true">bill.engelke@ua.edu</a>>
                wrote:<o:p></o:p></p>
            </div>
            <blockquote style="border:none;border-left:solid #CCCCCC
              1.0pt;padding:0in 0in 0in
              6.0pt;margin-left:4.8pt;margin-right:0in">
              <div>
                <div>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">See
                    attached, first draft of Functional Spec for the
                    Local Host (SBC).   Hope to discuss at Dayton.<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">-73-
                    Bill AB4EJ<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">W.
                    D. Engelke (Bill), Asst. Research Engr.<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Center
                    for Advanced Public Safety<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Cyber
                    Hall<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The
                    University of Alabama<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Tuscaloosa,
                    AL 35487<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Desk:
                    (205) 348-7244<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Mobile:
                    (205) 764-3099<o:p></o:p></p>
                  <p class="MsoNormal"
                    style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                </div>
              </div>
            </blockquote>
          </div>
        </blockquote>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
    </blockquote>
    <br>
  </body>
</html>