<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<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:11.0pt;
        font-family:"Calibri",sans-serif;}
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.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:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        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;}
--></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]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">I have also struggled with fldigi with similar issues to those reported by Phil; however one thing to consider is that the source code is available (if anyone wishes to dig into it to change its functionality; it looks to be in C++), and
 the author is open to contributions from others… so it probably could be made to do what we need.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">That said, I would prefer to integrate the underlying algorithm into the TangerineSDR Local Host C- code, where it would run fast.  My understanding is that Skylar is working on porting the algorithm to run in Python. There are bindings
 that will let you call C++ routines from Python, but I have not investigated their use. I will check with CWRU for a better understanding of Skylar’s approach, to see how it may help us.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">A sidebar on using fldigi for FMT… the fldigi freq analysis routine finds the frequency of the strongest signal in the passband. When I do FMT, I line up my GPSDO signal generator a few Hz away from the target signal, where I can observe
 (in SpectrumLab) how many FFT bins separate the target from the signal generator; then, by knowing the bin size (about 0.15 Hz) I can calculate the target frequency. In this case, fldigi doesn’t help because it sees the signal generator as the strongest signal
 and starts reporting that! Another approach is to zero-beat the target with the signal generator, but I have found it is mighty hard to do that accurately in the time you have, because then you also have to adjust the signal strength of the signal generator
 so it is close to the strength of the target. If you have 2 complete receiving chains you possibly could use fldigi to generate a doppler correction factor you could then apply (when shooting for the top accuracy of < 0.1 Hz error).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> TangerineSDR <tangerinesdr-bounces@lists.tapr.org>
<b>On Behalf Of </b>Dr. Nathaniel A. Frissell Ph.D. via TangerineSDR<br>
<b>Sent:</b> Tuesday, April 28, 2020 7:06 AM<br>
<b>To:</b> TAPR TangerineSDR Modular Software Defined Radio <tangerinesdr@lists.tapr.org><br>
<b>Cc:</b> Dr. Nathaniel A. Frissell Ph.D. <nathaniel.frissell@scranton.edu><br>
<b>Subject:</b> Re: [TangerineSDR] Notes from PSWS / TangerineSDR call of 04-27-2020<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Phil,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks for the comments. I think that is very good to consider. In light of review, I think it is a good idea to postpone FLDigi integration at this time. As Phil said, we should pull out the frequency estimation routine for separate testing
 and possible direct use. I believe Skylar Dannhoff is working on this. For the WWV monitoring program, we also do need to have the ability to save both the raw data and the derived frequency estimation data product.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">73 de Nathaniel W2NAF<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> TangerineSDR <<a href="mailto:tangerinesdr-bounces@lists.tapr.org">tangerinesdr-bounces@lists.tapr.org</a>>
<b>On Behalf Of </b>Phil Erickson via TangerineSDR<br>
<b>Sent:</b> Tuesday, April 28, 2020 7:12 AM<br>
<b>To:</b> TAPR TangerineSDR Modular Software Defined Radio <<a href="mailto:tangerinesdr@lists.tapr.org">tangerinesdr@lists.tapr.org</a>><br>
<b>Cc:</b> Phil Erickson <<a href="mailto:phil.erickson@gmail.com">phil.erickson@gmail.com</a>><br>
<b>Subject:</b> Re: [TangerineSDR] Notes from PSWS / TangerineSDR call of 04-27-2020<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">  Sorry that I haven't been able to make these discussions much lately.  COVID-19 has added a huge amount of work here.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">  I'm fairly concerned about using "fldigi".  In the recent Frequency Measurement Test a few days ago, I decided to use its frequency algorithm in the "ANALYZE" portion in order to track the unknown carrier that K5CM was putting out.  I
 had a bunch of data already recorded through things like Gnuradio stacks; for this discussion, let's assume I had I/Q data in some kind of format similar to what Tangerine would put out.  (It was DigitalRF to be specific.)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">  Frankly, it was a disaster.  The only way you can input data that I could find is through WAV files, so I had to convert all my data to that format.  When you start up the program, it immediately starts generating bogus data on nothing
 while you fumble around getting to the menu that plays back a WAV file.  When the WAV file ends (I chose non-loop for playback), you get another bunch of junk data while you are fumbling around with literally quitting the entire program as the only way I could
 figure out to stop the analysis.  While the WAV file is playing and the algorithm is analyzing, I found that there are occasionally jumps/glitches in the time stamp because the time stamp has nothing to do with the WAV file and everything to do with how your
 computer analysis burden is keeping up (or not) with realtime.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">  The resulting files needed a lot of hand editing afterward to remove junk before I could profitably do anything with them.  This took a lot of time.  I considered myself lucky that I had 2 minutes of data to look at for the tone analysis
 that were clear enough that I could spot them on a very simple uniform-X-axis vs frequency plot.  If I hadn't been able to see that, it would have been game over.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">  So I would definitely not use it again for any kind of serious analysis.  In fact, that is why we've separately requested that the statistical frequency measurement algorithm buried within "fldigi" be broken out into a separate Python
 routine. I believe CWRU is working on it.  I looked at the fldigi code at one point to see if I could do it, but it's an interconnected quasi-monolithic series of routines with unclear cross-connections and internal assumptions.  That was a research project
 that I ultimately passed on for lack of time.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">  Sorry to be negative, but this recent experience is I think quite relevant to Tom's (1) item.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">73<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Phil W1PJE<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">On Tue, Apr 28, 2020 at 12:27 AM Tom McDermott via TangerineSDR <<a href="mailto:tangerinesdr@lists.tapr.org">tangerinesdr@lists.tapr.org</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-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class="MsoNormal"><br>
Notes from PSWS / TangerineSDR call of 04-27-2020<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">1. Discussion of bundling / interfacing FLDIGI into the TangerineSDR software. Tangerine produces IQ data, while FLDIGI may need WAV data (does it accept other formats?). Having the ability to use the various FLDIGI capabilities would be
 nice to have.  There would be a need to reject the positive or negative frequency spectra to convert from complex to real, multiple approaches are available.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">2. Discussion of a lightning detector for the magnetometer board. Does it need an I2C interrupt?  Scotty mentioned that he may want to abandon the PMOD connector and turn the magnetometer board into a Raspberry-PI HAT. Dave discussed some
 potential issues with the I2C interface on this particular part, he is still trying to find some details on the issue.  Another question: what is the science need for lightning detection in terms of range and sensitivity? Gerry Creager might be a good person
 to ask about the science requirement.<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>
</div>
<p class="MsoNormal">-- <br>
TangerineSDR mailing list<br>
<a href="mailto:TangerineSDR@lists.tapr.org" target="_blank">TangerineSDR@lists.tapr.org</a><br>
<a href="http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org" target="_blank">http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">----<br>
Phil Erickson<br>
<a href="mailto:phil.erickson@gmail.com" target="_blank">phil.erickson@gmail.com</a><o:p></o:p></p>
</div>
</div>
</body>
</html>