All,

CHIRP checks the radio and image to make sure they are the from the same firmware. For example

Image is '  Ver  BFB231   '
Radio is '  Ver  BFB231   '

CHIRP also verifies that "Ver  BFB" is in the radio_verison

Here's the problem with a few Baofeng UV-5R radios with BFB297 firmware. There are apparently 2 versions with BFB297 floating around.

1. Image is '  Ver  BFB297   '  (works OK)
2. Image is 'BFB299 BFB297   '  (upload failure)

The upload failure is caused by the 'Ver  BFB' check failure. There is no 'Ver  "

A possible solution is to narrow the requirements of the check

-     if "Ver  BFB" not in radio_version:
+    if "BFB" not in radio_version:

There would still be an issue of one type of BFB297 radio not being able to load the 'aux block' of the other type. I believe that is could be overcome by limiting the part of the string that is matched

-    image_version = _firmware_version_from_image(radio)
-    radio_version = _get_radio_firmware_version(radio)
+    image_version = _firmware_version_from_image(radio)[7:]
+    radio_version = _get_radio_firmware_version(radio)[7:]

Which should make the comparison like this

Image is 'BFB297   '
Radio is 'BFB297   '

Is it safe to swap the 'aux blocks' of this two similar firmware versions? I don't know. Maybe. Every other part of the 'aux block' is identical between the two images. But that is at the 'factory' delivered state.

Anyone else have any thoughts about this issue?

Jim