<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>