Bug #5693

Yaesu vx-6 clone download issue

Added by James Bydalek almost 2 years ago. Updated 10 days ago.

Status:Closed Start date:04/04/2018
Priority:Normal Due date:
Assignee:Jens Jensen % Done:

100%

Category:-
Target version:chirp-daily
Chirp Version:daily Platform:All
Model affected:Yaesu vx-6

Description

When attempting to download from my Yaesu VX-6 to CHIRP... I follow all instruction, and the progress bar gets all the way to the end, and then get the An error has occurred box with the message "Failed to communicate with the radio: Timed out reading from radio"

It does seem to get all the way to the end of the progress bar, but errors out with no data transferred. I tried it with older drivers with no luck. I also downloaded the latest version of CHIRP and it did not make a difference.

Associated revisions

Revision 2974:71ec31b629b0
Added by Jens Jensen almost 2 years ago

[vx-6] adjust memory size to fix #5693

History

Updated by James Bydalek almost 2 years ago

Please note that I did now go back to a January daily version and it worked (saw that suggestion in a issue reported just like mine)

Updated by Jonathan Morrison almost 2 years ago

I have this same issue on linux.

Updated by Casey Dunn almost 2 years ago

I am having this issue as well.

the log shows CHIRP proceeding through all the memory slots
[2018-04-19 09:19:47,786] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-04-19 09:19:48,041] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-04-19 09:19:48,297] chirp.ui.reporting - DEBUG: Reporting exception
[2018-04-19 09:19:48,297] chirp.ui.common - ERROR: -- Exception: --
[2018-04-19 09:19:48,298] chirp.ui.common - ERROR: Traceback (most recent call last):
  File "/Applications/chirp-daily-20180412.app/Contents/Resources/chirp/chirp/ui/clone.py", line 249, in run
    self.__radio.sync_in()
  File "/Applications/chirp-daily-20180412.app/Contents/Resources/chirp/chirp/drivers/yaesu_clone.py", line 245, in sync_in
    self._mmap = _clone_in(self)
  File "/Applications/chirp-daily-20180412.app/Contents/Resources/chirp/chirp/drivers/yaesu_clone.py", line 110, in _clone_in
    raise errors.RadioError("Failed to communicate with the radio: %s" % e)
RadioError: Failed to communicate with the radio: Timed out reading from radio


and then throwing an exception.
it looks like it isn't handling the last bit well.

Updated by Chris Rushton almost 2 years ago

Just tried a whole bunch of different versions since I got bit by this too, looks like it is working on daily-20180324 and stops working on daily-20180325, as daily-20180331, and daily-20180412 do not work.

Updated by Jens Jensen almost 2 years ago

also running into this issue on linux

some suspects:

changeset: 2967:1cfdf281afcd
user: Dan Smith <>
date: Sat Mar 24 10:23:30 2018 -0700
summary: Fix long lines in yaesu_clone.py

changeset: 2966:9e3b0ff76308
user: Nicolas Pike <>
date: Fri Mar 23 17:52:01 2018 +0000
summary: [FT-70] #5329 and issue #5647 Revise handling of empty chunks in yaesu_clone.py

Updated by Jens Jensen almost 2 years ago

ok yeah,
works with:

changeset: 2965:96bc56916c95
user: Jim Unroe <>
date: Tue Mar 20 21:38:07 2018 -0400
summary: [LT725UV] Add support for Baojie BJ-218 and clones.

breaks with:
changeset: 2966:9e3b0ff76308
user: Nicolas Pike <>
date: Fri Mar 23 17:52:01 2018 +0000
summary: [FT-70] #5329 and issue #5647 Revise handling of empty chunks in yaesu_clone.py

jens@spire:~/build/chirp.hg$ hg diff -r 96bc56916c95 -r 9e3b0ff76308
diff -r 96bc56916c95 -r 9e3b0ff76308 chirp/drivers/ft70.py
--- a/chirp/drivers/ft70.py    Tue Mar 20 21:38:07 2018 -0400
+++ b/chirp/drivers/ft70.py    Fri Mar 23 17:52:01 2018 +0000
@@ -466,14 +466,14 @@
 @directory.register
 class FT70Radio(yaesu_clone.YaesuCloneModeRadio):
     """Yaesu FT-70DE""" 
-    BAUD_RATE = 115200
+    BAUD_RATE = 38400
     VENDOR = "Yaesu" 
     MODEL = "FT-70D" 

     _model = "AH51G" 

-    _memsize = 65227  # 65227 read from dump ?
-    _block_lengths = [10, 65555]  # ????? Not sure why this works to match _memsize
+    _memsize = 65227  # 65227 read from dump
+    _block_lengths = [10, 65217]
     _block_size = 32
     _mem_params = (900,  # size of memories array
                    900,  # size of flags array
diff -r 96bc56916c95 -r 9e3b0ff76308 chirp/drivers/yaesu_clone.py
--- a/chirp/drivers/yaesu_clone.py    Tue Mar 20 21:38:07 2018 -0400
+++ b/chirp/drivers/yaesu_clone.py    Fri Mar 23 17:52:01 2018 +0000
@@ -43,14 +43,22 @@

 def _chunk_read(pipe, count, status_fn):
+    timer = time.time()
     block = 32
     data = "" 
-    for _i in range(0, count, block):
-        data += pipe.read(block)
-        if data:
+    while len(data) < count:
+        # Don't read past the end of our block if we're not on a 32-byte boundary
+        chunk_size = min(block, count - len(data))
+        chunk = pipe.read(chunk_size)
+        if chunk:
+            timer = time.time()
+            data += chunk
             if data[0] == chr(CMD_ACK):
                 data = data[1:]  # Chew an echo'd ack if using a 2-pin cable
-                # LOG.debug("Chewed an ack")
+        # LOG.debug("Chewed an ack")
+        if time.time() - timer > 2:
+            # It's been two seconds since we last saw data from the radio, so it's time to give up.
+            raise errors.RadioError("Timed out reading from radio")
         status = chirp_common.Status()
         status.msg = "Cloning from radio" 
         status.max = count

Updated by Dan Smith almost 2 years ago

Okay, the old code was definitely broken as it relied on timing (and getting lucky). It's possible that some of the drivers that depended on that code were stating different memory or block sizes than they should to work properly and need tweaking. I tested an older yaesu (FT-7800) before we committed it and it was okay.

Can you do some digging to try to see if we can roll forward? I would rather do that than roll back, if possible.

Updated by Jens Jensen almost 2 years ago

  • Status changed from New to In Progress

ok preliminary finding is that we maybe have an off-by-one issue.

[2018-05-04 19:49:40,069] chirp.drivers.yaesu_clone - DEBUG: Read 32479/32578
[2018-05-04 19:49:40,088] chirp.drivers.yaesu_clone - DEBUG: Read 32511/32578
[2018-05-04 19:49:40,159] chirp.drivers.yaesu_clone - DEBUG: Read 32543/32578
[2018-05-04 19:49:40,178] chirp.drivers.yaesu_clone - DEBUG: Read 32575/32578
[2018-05-04 19:49:40,428] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-05-04 19:49:40,679] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-05-04 19:49:40,930] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-05-04 19:49:41,182] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-05-04 19:49:41,435] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-05-04 19:49:41,688] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-05-04 19:49:41,939] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-05-04 19:49:42,190] chirp.drivers.yaesu_clone - DEBUG: Read 32577/32578
[2018-05-04 19:49:42,445] chirp.ui.reporting - DEBUG: Reporting exception
[2018-05-04 19:49:42,445] chirp.ui.common - ERROR: -- Exception: --
[2018-05-04 19:49:42,449] chirp.ui.common - ERROR: Traceback (most recent call last):
  File "/home/jens/build/chirp.hg/chirp/ui/clone.py", line 249, in run
    self.__radio.sync_in()
  File "/home/jens/build/chirp.hg/chirp/drivers/yaesu_clone.py", line 243, in sync_in
    self._mmap = _clone_in(self)
  File "/home/jens/build/chirp.hg/chirp/drivers/yaesu_clone.py", line 108, in _clone_in
    raise errors.RadioError("Failed to communicate with the radio: %s" % e)
RadioError: Failed to communicate with the radio: Timed out reading from radio

[2018-05-04 19:49:42,451] chirp.ui.common - ERROR: ----------------
[2018-05-04 19:49:42,451] chirp.ui.clone - ERROR: Clone failed: Failed to communicate with the radio: Timed out reading from radio

I'm not sure if we have the radio image size parameters wrong, or something else.
I'm heading out of town for a few days. I'll try to look at it next weekend, if someone else doesn't beat me to it.

Updated by Jens Jensen almost 2 years ago

  • Status changed from In Progress to Feedback
  • % Done changed from 0 to 90

Should be fixed in daily-20180512 can someone else confirm, and we'll close this out.

Updated by James Bydalek almost 2 years ago

I downloaded Daily-20180512 and verified it does now work on my Yaesu VX-6, Thanks!

Updated by Jonathan Morrison over 1 year ago

Jonathan Morrison wrote:

I have this same issue on linux.

Works now with today's daily build.

Updated by Jens Jensen over 1 year ago

  • Status changed from Feedback to Resolved
  • % Done changed from 90 to 100

Updated by Bernhard Hailer 10 days ago

  • Status changed from Resolved to Closed
  • Assignee set to Jens Jensen
  • Priority changed from Immediate to Normal
  • Target version set to chirp-daily
  • Platform changed from Windows to All

Also available in: Atom PDF