[chirp_devel] [h777] Fix some settings not taking effect on Baofeng 888 and variants

Tony Fuller
Tue Aug 20 19:34:38 PDT 2019


Hi Dan,

I have another datapoint, external to CHIRP and Radioddity. miklor.com has 2 software versions listed that can program the BF-888 class radio. 
One version is listed as "BF-888S v1.05" and the other is listed as "ZT-V68 2007"

- The "v1.05" software writes the data blocks in the same order as CHIRP, also using only the "W" commands.
- The "ZT-V68" software, writes the data blocks in a different order than CHIRP (as reflected by my patch) and uses a "Y" command for those middle blocks.

I found through testing that:
- The "Y" command is not strictly necessary. 
- Using all "W" commands works, as long as the order (_ranges variable in h777.py) is updated (as seen in my patch).
- Using the "Y" commands with the original order (unmodified _ranges variable) does not work.

Additional comments are in line,

Tony

On Tue, 2019-08-20 at 18:01 -0700, Dan Smith via chirp_devel wrote:
> > There are plenty of issues related to settings not "sticking" or taking effect for Baofeng 888 and derivative radios. I experienced this personally on a Radioddity GA-2S.
> > 
> > Changes based on serial capture of Baofeng "V12" programming software. Many thanks to Dan Clemmensen's notes on easy Linux serial capture.
> 
> Hmm, I've set several of these on my BF-888 clones and not had a problem. As such I'm a little reluctant to apply this, being concerned that maybe we have a variant out there and that applying this
> to fix half of them will break the others.
Agreed. I would love to get more feedback. I've tested the changes on my older Baofeng 777S radios but my "collection" is quite small.
> 
> > diff --git a/chirp/drivers/h777.py b/chirp/drivers/h777.py
> > --- a/chirp/drivers/h777.py
> > +++ b/chirp/drivers/h777.py
> > @@ -166,7 +166,10 @@
> >  def _h777_write_block(radio, block_addr, block_size):
> >      serial = radio.pipe
> >  
> > -    cmd = struct.pack(">cHb", 'W', block_addr, BLOCK_SIZE)
> > +    if 0x02B0 <= block_addr <= 0x02C0:
> > +        cmd = struct.pack(">cHb", 'Y', block_addr, BLOCK_SIZE)
> > +    else:
> > +        cmd = struct.pack(">cHb", 'W', block_addr, BLOCK_SIZE)
> 
> Your assertion is that between these ranges we have to use a different command, but with the same sized block? I've seen cases where we use W for low blocks and then something else (like X) for
> upper blocks of a larger size. It seems really weird to have a hole in the middle of the range where we switch from W to Y and then back again...
> 
This is where your intuition is much much greater than mine. 
My goal was pretty narrow since my background is close to nil, only trying to match the serial output of CHIRP to the working software.
This is in fact what I observed:
57 02 B0 08 00 01 00 00 04 00 01 01 00 00 00 00
57 02 B8 08 00 01 FF FF FF FF FF FF 00 00 00 00

vs

59 02 B0 08 00 01 00 00 04 00 01 01 00 00 00 00
59 02 B8 08 00 01 FF FF FF FF FF FF 00 00 00 00
> > @@ -281,8 +284,8 @@
> >  
> >      _ranges = [
> >          (0x0000, 0x0110),
> > +        (0x0380, 0x03E0),
> >          (0x02B0, 0x02C0),
> > -        (0x0380, 0x03E0),
> 
> This also seems weird to me. It writes the low range, jumps to the upper, and then back to the middle? That seems quite illogical.
> 
Also agreed. Observation is documented in the issue I opened at https://chirp.danplanet.com/issues/6969
> I guess I need to test this with some of my examples here, but maybe you can provide some more discussion about 
> how you came across this, 
CHIRP was listed as "supported" by the manufacturer (Radioddity) but did not update some settings at all.
> what all you tested it with, and 
Newly purchased Radioddity GA-2S and a much older Baofeng 777S (https://chirp.danplanet.com/attachments/4983/old_baofeng_888.jpg)
> why you think it matters?
It's still an issue, someone posted yesterday about 888 settings not sticking. https://chirp.danplanet.com/issues/6997
> 

> --Dan
> _______________________________________________
> chirp_devel mailing list
> chirp_devel at intrepid.danplanet.com
> http://intrepid.danplanet.com/mailman/listinfo/chirp_devel
> Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers



More information about the chirp_devel mailing list