<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I’m the guy who developed most of the Yaesu FT-2900 driver. An issue has recently been reported where the driver doesn’t work with one variant of the radio. Apparently the radio has had some solder bridges changed, to alter the configuration.</div><div class=""><br class=""></div><div class="">The way the cloning process for this radio works is that, on download, the radio sends a short IDBLOCK to the computer, which the computer looks at, compares with what it expects, and then discards (or reports an error). The radio then sends a series of regular-sized data blocks, and finally, it sends a checksum, which is checked and discarded. Only the standard data blocks are saved in the .img file. This is the strategy used in the FT-2800 driver, which I used as inspiration for the FT-2900 upload/download.</div><div class=""><br class=""></div><div class="">I can easily make the download routine more lenient, so that a mismatch in the IDBLOCK doesn’t prevent a download. But on upload, the radio insists on getting the correct IDBLOCK, and will abort the upload if the IDBLOCK isn’t exactly what it is expecting. And the only way I have of knowing which IDBLOCK to send is by having the user choose the correct model radio.</div><div class=""><br class=""></div><div class="">There was a similar issue reported long ago with the European versus US version of that radio (the Euro/USA modification can also be done by altering the solder bridges). It was addressed by registering a separate version of the radio, with an overridden variable containing the appropriate IDBLOCK.</div><div class=""><br class=""></div><div class="">I have developed a fix for this issue by registering yet another variant of the FT-2900 radio, similar to what was done with the Euro version. I got out my soldering iron, altered my own radio to duplicate the issue reported in issue #3387, and tested the altered driver, verified that it works, and then put my radio back to its original configuration. So this strategy works, but I wonder if there’s a better way to avoid cluttering up the list of supported radios too much.</div><div class=""><br class=""></div><div class="">For anyone interested in the gory details, this is the diff that seems to fix the problem.</div><div class=""><br class=""></div><div class=""><div class=""><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">--- a/chirp/drivers/ft2900.py<span class="Apple-tab-span" style="white-space: pre;">        </span>Mon Feb 22 09:52:12 2016 -0800</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+++ b/chirp/drivers/ft2900.py<span class="Apple-tab-span" style="white-space: pre;">        </span>Fri Feb 26 09:40:08 2016 -0800</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">@@ -658,3 +658,15 @@</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;"> MODEL = "FT-2900E/1900E"</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;"> VARIANT = "E"</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;"> IDBLOCK = "\x56\x43\x32\x33\x00\x02\x41\x02\x01\x01"</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+# the FT2900Mod is a version of the radio that has been modified to</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+# allow transmit on a greater range of frequencies. It is almost</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+# identical to the standard version, except for the model number and</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+# ID Block. We create and register a class for it, with only the </div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+# needed overrides</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+@directory.register</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+class FT2900ModRadio(FT2900Radio):</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+ """Yaesu FT-2900Mod"""</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+ MODEL = "FT-2900Mod/1900Mod"</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+ VARIANT = "Opened Xmit"</div><div class="" style="margin: 0px; font-size: 11px; font-family: Menlo;">+ IDBLOCK = "\x56\x43\x32\x33\x00\x02\xc7\x01\x01\x01"</div><div class=""><br class=""></div></div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">My purpose in sending this query to the list is to find out if anyone else has run across a similar problem and figured out a more technically elegant solution.</div><br class=""><div apple-content-edited="true" class="">
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Richard Cochran</div><div class=""><a href="mailto:ag6qr@sonic.net" class="">ag6qr@sonic.net</a></div><div class=""><br class=""></div></div></span><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br class=""></body></html>