Bug #5693
closedYaesu vx-6 clone download issue
100%
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.
Updated by James Bydalek over 6 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 Casey Dunn over 6 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 over 6 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 over 6 years ago
also running into this issue on linux
some suspects:
changeset: 2967:1cfdf281afcd
user: Dan Smith dsmith@danplanet.com
date: Sat Mar 24 10:23:30 2018 -0700
summary: Fix long lines in yaesu_clone.py
changeset: 2966:9e3b0ff76308
user: Nicolas Pike nicolas.jon.pike@gmail.com
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 over 6 years ago
ok yeah,
works with:
changeset: 2965:96bc56916c95
user: Jim Unroe rock.unroe@gmail.com
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 nicolas.jon.pike@gmail.com
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 over 6 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 over 6 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 over 6 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 over 6 years ago
I downloaded Daily-20180512 and verified it does now work on my Yaesu VX-6, Thanks!
Updated by Jonathan Morrison over 6 years ago
Jonathan Morrison wrote:
I have this same issue on linux.
Works now with today's daily build.
Updated by Jens Jensen over 6 years ago
- Status changed from Feedback to Resolved
- % Done changed from 90 to 100
Updated by Bernhard Hailer over 4 years ago
- Status changed from Resolved to Closed
- Assignee set to Jens Jensen
- Priority changed from Immediate to Normal
- Target version set to chirp-legacy
- Platform changed from Windows to All