<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">[Was just cleaning out some old list
      mail and came across this.]<br>
      <br>
      Thanks for working on this.   FWIW, This feature of preset
      channels goes back to at least the VX-8 and probably earlier.   A
      long, long time ago, The initial banks implementation in chirp
      crashed when loading my VX-8's image because it contained preset
      channels in one of the banks.  <br>
      <br>
      I did a little reverse engineering and what you discovered looks
      familiar.  I have to see if I can find my notes.  I eventually
      gave up because I realized it would need a decent bit of work to
      make chirp handle this especially in the UI for working on the
      banks.<br>
      <br>
      (I was only scanning a handful of the Marine special/preset
      changes, so I just added those to the 900 regular memories and
      problem solved.  I also eventually got Uniden scanner which pretty
      much ended any scanning/monitoring I was doing with the VX-8.)<br>
      <br>
      --Rob<br>
      <br>
      On 9/20/2017 7:02 AM, NNN Wx via chirp_devel wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:8F88BA0B-1A56-48C0-9CEC-57C75015CEDA@gmail.com">Adding
      to my fun, I’ve skimmed the FT1D user manual, and the FT1D has the
      same feature as the FT2D: The radio can put “preset frequencies”
      into memory banks. See p 52 “Registering Your Favorite Preset
      Receiver Memory Channels in Memory Bank”. If somebody with an FT1D
      could follow those directions and enter a preset into a memory
      bank, I’ll bet that chirp misbehaves in the same way after reading
      in the image from the radio, and one should be able to use chirp’s
      Browser to see the following values in “channel” (clearly, taken
      from my FT2D):<br class="">
      <span class=""><br class="">
      </span>
      <div class="">0x0000 is memory Location 1</div>
      <div class="">0x0001 is memory Location 2 … [no surprises here]</div>
      <div class=""><br class="">
      </div>
      <div class="">0x1800 is channel 1 of the "WX Channel Frequency
        List”</div>
      <div class="">0x1801 is channel 2 of the "WX Channel Frequency
        List” ...<br class="">
        0x2800 is channel 1 of the “International VHF Marine
        frequencies”<br class="">
        0x4000 is channel 1 of the “Worldwide short wave broadcast”</div>
      <div class=""><br class="">
      </div>
      <div class="">Such high values of “channel" cause chirp to emit an
        error when assigning memory locations to banks in the Banks tab
        of the UI, and those values <u class="">will</u> be encountered
        if they have been manually entered into the FT2D and then read
        into chirp (and, I presume from the FT-1D as well.) If the
        values occur, the bank with an offending location cannot be
        further set (or unset); the error always happens. Unaffected
        banks can still be manipulated correctly.<br class="">
        <div class=""><br class="">
        </div>
        <div class="">It looks to me as if a “channel” (one of 100) in
          the FT1D (and FT2D) memory map* for “bank_menbers” array
          should be interpreted as a structure of its own:</div>
        <div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>1
          bit unknown (0xFFFF is designates an unused channel in FT2D;
          I’d guess 1=unused, 0=used may suffice)</div>
        <div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>1
          bit for SW presets</div>
        <div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>1
          bit for Int VHF presets</div>
        <div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>1
          bit for WX presets</div>
        <div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>1
          bit unknown (perhaps 1=FM, 0=AM?)</div>
        <div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>11
          bits of channel number (allows up to 2047 memory locations;
          FT2D uses only 999 so there might be yet another bit of flags
          and one fewer for number.)</div>
        <div class=""><br class="">
        </div>
        <div class="">Heaven only knows if or how the radio would handle
          having multiple “presets" bits set in one channel. If chirp
          were to handle these bits, it’d probably be polite to include
          logic that prevents that from being saved (“toggle bits” as it
          were.)</div>
        <div class=""><br class="">
        </div>
      </div>
      <div class="">So, I ask in decreasing order of importance:</div>
      <div class="">What’s the “correct” way to restructure the FT1D
        (and thus FT2D) memory model* to include 100 channels per bank
        as an array of u16 (present situation) but with an internal flag
        structure in each one? I’m not quite sure how chirp handles
        “channels” in its own virtual model; I presume it just use the
        u16 as two bytes without any modifications and it’d be up to the
        driver to interpret them. I have <u class="">temporarily</u>
        prevented the error from occurring by changing the FT1D.py to
        use “channel &amp; 0x7FF” wherever “channel” is used in most
        places (but not while checking for 0xFFFF.) I’ve added no
        functionality for interpreting the flag bits, and I’ve not
        changed the memory model.</div>
      <div class=""><br class="">
      </div>
      <div class="">What’s the “correct” way to display such a structure
        in the Banks tab of the UI? At present, one cannot even use
        chirp to see that these fields are set. It might be useful to
        postpend lines to the columnar display when presets exist (e.g.
        "WX #1…. checkmark:, "int VHF #5… checkmarks”, “SW #25….
        checkmarks”) I don’t think we have access to the actual
        frequencies involved so they cannot be displayed. ATM, FT2D and
        chirp always cause these high-flagged channels to exist at the
        END of the Banks listing. </div>
      <div class=""><br class="">
      </div>
      <div class="">What’s a “correct” way to SET or UNSET such a
        structure using the Banks UI? If they were displayed as above,
        the checkboxes would presumably be active just as they are in
        the rest of the UI. That’d make them easy to UNSET: just uncheck
        the corresponding box. I don’t have a good suggestion for SET;
        it’d be unwieldy to add ALL the possible presets as “high
        locations”, but more interactive options would require UI
        changes. Is this a place for “Special Channels” in the Memories
        tab?</div>
      <div class=""><br class="">
      </div>
      <div class=""><br class="">
      </div>
      <div class="">* I have no Idea what the FTM-3200D or other radios
        subordinate to FT1D does with banks and preset frequencies; a
        change to the FT1D memory model might break the FTM-3200D. But
        if the FTM-3200D is working fine with the u16 channel and
        doesn’t have more than 2047 memories, it should be just fine.</div>
      <div class=""><br class="">
      </div>
      <div class="">Declan Rieb</div>
      <div class="">WD5EQY</div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
chirp_devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:chirp_devel@intrepid.danplanet.com">chirp_devel@intrepid.danplanet.com</a>
<a class="moz-txt-link-freetext" href="http://intrepid.danplanet.com/mailman/listinfo/chirp_devel">http://intrepid.danplanet.com/mailman/listinfo/chirp_devel</a>
Developer docs: <a class="moz-txt-link-freetext" href="http://chirp.danplanet.com/projects/chirp/wiki/Developers">http://chirp.danplanet.com/projects/chirp/wiki/Developers</a></pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>