<div dir="ltr">I have recently purchased a pair of UV-5X radios and I must say I am rather disappointed in the approach in CHIRP and the OEM for implementing the programmed channels in the UV-5X.  Baofeng/Pofung seems to be waking up to the idea that people want to be able to program channels above 30 with their own custom channels within the GMRS frequency set.  The approach being taken in the code is that 1-30 are locked to what have become the customary GMRS channels.  <div><br></div><div>I read in issue 9235 (<a href="https://chirp.danplanet.com/issues/9235">https://chirp.danplanet.com/issues/9235</a>) that the reason this is so is because it is a GMRS radio and that the TX channels are locked this way.  I think this is the wrong approach.  If you look at Part 95, GMRS is frequency limited and power and bandwidth regulated based on frequency but it is not regulated to what channel in a radio has a particular frequency.  I think the licensee would be better served if the channel&#39;s power limit, bandwidth limit, and TX frequency were driven by the RX frequency being set rather than the channel being written.  I have been able to program channels over 30 by hacking around the OEM programming software and editing the XML directly then loading it.  My radio has 1-30 as the &quot;standard channels&quot; with no CTCSS and then 31-52 as a repeat of the 1-22 with a CTCSS code for my radios in my family set.  I have no need of repeater channels 23-30 with custom tones but there are people who are looking for this.  </div><div><br></div><div>I think a different logic approach should be considered.  On memory write, the software would follow logic like this:</div><div><br></div><div><div style="line-height:18px;white-space:pre"><div style=""><font face="arial, sans-serif" style="background-color:rgb(255,255,255)" color="#000000">HIGH_POWER_SIMPLEX_FREQUENCIES = [462.5625, 462.5875, 462.6125, 462.6375, 462.6625,</font></div><div style=""><font face="arial, sans-serif" style="background-color:rgb(255,255,255)" color="#000000">               462.6875, 462.7125]</font></div><div style=""><font face="arial, sans-serif" style="background-color:rgb(255,255,255)" color="#000000">LOW_POWER_SIMPLEX_FREQUENCIES = [467.5625, 467.5875, 467.6125, 467.6375, 467.6625,</font></div><div style=""><font face="arial, sans-serif" style="background-color:rgb(255,255,255)" color="#000000">               467.6875, 467.7125]</font></div><div style=""><font face="arial, sans-serif" style="background-color:rgb(255,255,255)" color="#000000">HIGH_POWER_REPEATER_FREQUENCIES = [462.5500, 462.5750, 462.6000, 462.6250, 462.6500,</font></div><div style=""><font face="arial, sans-serif" style="background-color:rgb(255,255,255)" color="#000000">               462.6750, 462.7000, 462.7250]</font></div></div></div><div><br></div><div>if the radio is a GMRS radio</div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>if freq in repeater_frequency set</div></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>// high power repeater capable channels</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>// allow none/off/+ duplex</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>if duplex == &#39;-&#39; then log error and set to off</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px">if duplex == &#39;split&#39; then log error and set to off<br></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>if duplex == &#39;+&#39; then set offset to 50000</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>allow high and low power</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>allow wideband and narrowband TX</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>else if freq in low_power_simplex_frequency set</div></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>// low power simplex channels</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>// allow none/off duplex</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>if duplex == &#39;-&#39; then log error and set to off</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>if duplex == &#39;+&#39; then log error and set to off</div><div>if duplex == &#39;split&#39; then log error and set to off<br></div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px">allow only low power<br>allow only narrowband TX</blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>else if freq in high_power_simplex_frequency set</div></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>// high power simplex channels</div></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>// allow none/off duplex</div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>if duplex == &#39;-&#39; then log error and set to off</div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">if duplex == &#39;+&#39; then log error and set to off<br><div>if duplex == &#39;split&#39; then log error and set to off<br></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"></blockquote>allow high and low power<br><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"></blockquote>allow wideband and narrowband TX<br></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px">else<br></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px">duplex = off<br>offset = 0</blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px">end if</blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote></blockquote><div>end if</div><div><br></div><div>This set of rules follows the FCC regulations for GMRS in Part 95.  It would make the radios infinitely more flexible than with what is in there now.  This approach has the interests of the user at heart while maintaining compliance.  </div><div><br></div><div>I&#39;d like to get some feedback on this before I open an issue and attempt to implement this.  I think this would be a great issue to work on in CHIRP to get some exposure to this type of application.  I&#39;m a corporate application developer by trade so we don&#39;t see a whole lot of GTK+ front ends interfacing with python so it has my interest.  I also have the radio to test it on.</div><div><br></div><div>Thank you for any consideration.</div><div><br></div><div>Ian McBride</div></div>