Is anybody working the Yaesu FT2D? It looks to be in the list of devices wanted and to have hardware, but I see no mention when I looked through the developer archives. And I’ve heard nothing back on the chirp users mailing list.
I’ve not found anybody (but maybe RTsystems and G4FHQ) who can do it reliably [or at all with a Macintosh] using the USB cable, but having a chirp version that can read and write the microSD card file (“BACKUP.dat”) would be a boon. The Yaesu-supplied software is painful to run, and even worse when I tried it under WINE on my macintosh. And I’d really, REALLY like a system that runs on Mac.
I’ve looked at the “Add a Radio” page (http://chirp.danplanet.com/projects/chirp/wiki/DevelopersAdd_a_Radio) and think I might be able to help with the memory dump and data structure identification. But I’d rather not start from scratch if others have already done it!
_________ Don’t be fooled by my email account name. It is NOT an amateur callsign.
On 2017-05-28 17:06, NNN Wx via chirp_devel wrote:
Is anybody working the Yaesu FT2D? It looks to be in the list of devices wanted and to have hardware, but I see no mention when I looked through the developer archives. And I’ve heard nothing back on the chirp users mailing list.
I’ve not found anybody (but maybe RTsystems and G4FHQ) who can do it reliably [or at all with a Macintosh] using the USB cable, but having a chirp version that can read and write the microSD card file (“BACKUP.dat”) would be a boon. The Yaesu-supplied software is painful to run, and even worse when I tried it under WINE on my macintosh. And I’d really, REALLY like a system that runs on Mac.
I’ve looked at the “Add a Radio” page (http://chirp.danplanet.com/projects/chirp/wiki/DevelopersAdd_a_Radio) and think I might be able to help with the memory dump and data structure identification. But I’d rather not start from scratch if others have already done it!
I'm pretty sure no one has done significant work on the FT2D.
I did do a lot of work on the FT1D and I'm assuming it's not that different. Unfortunately I don't have a FT2D to work with.
With the origiinal FT1D driver it was hundreds ( it not thousands ) of memory dumps to get the correct offsets for the settings.
Angus
Thanks for the prompt reply.
*sigh* OK. I’ll try to start. I’ve been reading the instructions. I’ve already dumped the microSD-based file (“BACKUP.DAT”) and have some inkling of at least the gross features of memory format.
The Yaesu-supplied ADMS-8 software can build files, so I don’t need to have the radio in the loop all the time. I suspect it possible to get a basic memory map within a shortish time. I’ll try to compare and contrast the FT1 based upon the template in the source code. I’m so new to the VHF world that I don’t understand most of the options that are accessible to the programmable capability, so it’ll probably only be a beginning.
Unfortunately for me, the FT2D data connection has been impossible to use. I believe that the FT2D uses a straight USB cable with an internal UART-to-USB connection, and no driver I’ve tried allows serial ports to connect to the radio. I conjecture that multiple serial ports* are multiplexed over the same USB) I am able to move the BACKUP.dat file between radio and computer by using the microSD card. So a sine qua non for me to use chirp for now is to be able to send the erstwhile serial data to and from a file. Having scanned the template, I’m guessing that do_upload(radio) and do_download(radio) will need to support file-based rather than serial I/O based. That may be A Big Deal for chirp.
* microphone/speaker/camera, memory programming, and software update all seem to be included. The FT2D has a separate microphone/speaker connector, but the USB connector takes priority: completing a USB connection stops the audio to internal or external speaker.
On May 28, 2017, at 18:20, Angus Ainslie angus@akkea.ca wrote: <snip>
I'm pretty sure no one has done significant work on the FT2D.
I did do a lot of work on the FT1D and I'm assuming it's not that different. Unfortunately I don't have a FT2D to work with.
With the origiinal FT1D driver it was hundreds ( it not thousands ) of memory dumps to get the correct offsets for the settings.
Angus
FWIW, if you do go down the route of a file based method, I suspect that you would be better off with an open/export option rather than trying to pretend that a file is a serial port in the upload/download functions (I would just have those function spit out a warning).
This would be a useful template for other radios as well. E.g. the KU-UV8D plus has an encrypted serial protocol that I have not yet been able to crack, but the data file itself is not encrypted.
________________________________ From: chirp_devel-bounces@intrepid.danplanet.com chirp_devel-bounces@intrepid.danplanet.com on behalf of NNN Wx via chirp_devel chirp_devel@intrepid.danplanet.com Sent: Sunday, May 28, 2017 7:26:43 PM To: Angus Ainslie Cc: chirp_devel@intrepid.danplanet.com Subject: Re: [chirp_devel] FT2D
Thanks for the prompt reply.
*sigh* OK. I’ll try to start. I’ve been reading the instructions. I’ve already dumped the microSD-based file (“BACKUP.DAT”) and have some inkling of at least the gross features of memory format.
The Yaesu-supplied ADMS-8 software can build files, so I don’t need to have the radio in the loop all the time. I suspect it possible to get a basic memory map within a shortish time. I’ll try to compare and contrast the FT1 based upon the template in the source code. I’m so new to the VHF world that I don’t understand most of the options that are accessible to the programmable capability, so it’ll probably only be a beginning.
Unfortunately for me, the FT2D data connection has been impossible to use. I believe that the FT2D uses a straight USB cable with an internal UART-to-USB connection, and no driver I’ve tried allows serial ports to connect to the radio. I conjecture that multiple serial ports* are multiplexed over the same USB) I am able to move the BACKUP.dat file between radio and computer by using the microSD card. So a sine qua non for me to use chirp for now is to be able to send the erstwhile serial data to and from a file. Having scanned the template, I’m guessing that do_upload(radio) and do_download(radio) will need to support file-based rather than serial I/O based. That may be A Big Deal for chirp.
* microphone/speaker/camera, memory programming, and software update all seem to be included. The FT2D has a separate microphone/speaker connector, but the USB connector takes priority: completing a USB connection stops the audio to internal or external speaker.
On May 28, 2017, at 18:20, Angus Ainslie <angus@akkea.camailto:angus@akkea.ca> wrote: <snip>
I'm pretty sure no one has done significant work on the FT2D.
I did do a lot of work on the FT1D and I'm assuming it's not that different. Unfortunately I don't have a FT2D to work with.
With the origiinal FT1D driver it was hundreds ( it not thousands ) of memory dumps to get the correct offsets for the settings.
Angus
In the FT2D, memory banks are allowed to select "preset memory channels". I cannot find reasonable versions of the frequencies anywhere in the .img file; they’re only documented in the user manual. So they seem to be only implicit in the memory mapping.
I’m hoping for some discussion as to how to handle a pointer to a preset channel in the Banks UI. Right now, one column shows memory locations (Loc) followed by check boxes for banks that contain that location. But these preset frequencies aren’t in memory locations (and aren’t changeable as far as I can tell) so they’re somewhat similar to the fixed frequencies that have been discussed recently.
Has anybody already worked on something like this?
It’s absolutely required that chirp not show an error and then refuse to changes banks when it sees a preset channel (it does that now; presets are indicated by high-value flag bits that exceed the valid range of locations.) It’s certainly true that FT2Ds can be programmed to point to these presets manually, so chirp had better take them and not break them.
It’d be VERY DESIRABLE to have the UI indicate that a bank has one or more preset frequencies in them (and probably show which preset is in which bank.)
It’s desirable to allow chirp to somehow define a preset frequency as a bank member. That’d allow chirp to program the radio.
If nobody has an already suitable idea, I’ll probably just try something and see how the testing and usage go. But I’d much rather use UI features that are already defined!
Declan Rieb WD5EQY
Adding to my fun, I’ve skimmed the FT1D user manual, and the FT1D has the same feature as the FT2D: The radio can put “preset frequencies” into memory banks. See p 52 “Registering Your Favorite Preset Receiver Memory Channels in Memory Bank”. If somebody with an FT1D could follow those directions and enter a preset into a memory bank, I’ll bet that chirp misbehaves in the same way after reading in the image from the radio, and one should be able to use chirp’s Browser to see the following values in “channel” (clearly, taken from my FT2D):
0x0000 is memory Location 1 0x0001 is memory Location 2 … [no surprises here]
0x1800 is channel 1 of the "WX Channel Frequency List” 0x1801 is channel 2 of the "WX Channel Frequency List” ... 0x2800 is channel 1 of the “International VHF Marine frequencies” 0x4000 is channel 1 of the “Worldwide short wave broadcast”
Such high values of “channel" cause chirp to emit an error when assigning memory locations to banks in the Banks tab of the UI, and those values will be encountered if they have been manually entered into the FT2D and then read into chirp (and, I presume from the FT-1D as well.) If the values occur, the bank with an offending location cannot be further set (or unset); the error always happens. Unaffected banks can still be manipulated correctly.
It looks to me as if a “channel” (one of 100) in the FT1D (and FT2D) memory map* for “bank_menbers” array should be interpreted as a structure of its own: 1 bit unknown (0xFFFF is designates an unused channel in FT2D; I’d guess 1=unused, 0=used may suffice) 1 bit for SW presets 1 bit for Int VHF presets 1 bit for WX presets 1 bit unknown (perhaps 1=FM, 0=AM?) 11 bits of channel number (allows up to 2047 memory locations; FT2D uses only 999 so there might be yet another bit of flags and one fewer for number.)
Heaven only knows if or how the radio would handle having multiple “presets" bits set in one channel. If chirp were to handle these bits, it’d probably be polite to include logic that prevents that from being saved (“toggle bits” as it were.)
So, I ask in decreasing order of importance: What’s the “correct” way to restructure the FT1D (and thus FT2D) memory model* to include 100 channels per bank as an array of u16 (present situation) but with an internal flag structure in each one? I’m not quite sure how chirp handles “channels” in its own virtual model; I presume it just use the u16 as two bytes without any modifications and it’d be up to the driver to interpret them. I have temporarily prevented the error from occurring by changing the FT1D.py to use “channel & 0x7FF” wherever “channel” is used in most places (but not while checking for 0xFFFF.) I’ve added no functionality for interpreting the flag bits, and I’ve not changed the memory model.
What’s the “correct” way to display such a structure in the Banks tab of the UI? At present, one cannot even use chirp to see that these fields are set. It might be useful to postpend lines to the columnar display when presets exist (e.g. "WX #1…. checkmark:, "int VHF #5… checkmarks”, “SW #25…. checkmarks”) I don’t think we have access to the actual frequencies involved so they cannot be displayed. ATM, FT2D and chirp always cause these high-flagged channels to exist at the END of the Banks listing.
What’s a “correct” way to SET or UNSET such a structure using the Banks UI? If they were displayed as above, the checkboxes would presumably be active just as they are in the rest of the UI. That’d make them easy to UNSET: just uncheck the corresponding box. I don’t have a good suggestion for SET; it’d be unwieldy to add ALL the possible presets as “high locations”, but more interactive options would require UI changes. Is this a place for “Special Channels” in the Memories tab?
* I have no Idea what the FTM-3200D or other radios subordinate to FT1D does with banks and preset frequencies; a change to the FT1D memory model might break the FTM-3200D. But if the FTM-3200D is working fine with the u16 channel and doesn’t have more than 2047 memories, it should be just fine.
Declan Rieb WD5EQY
On 2017-09-20 05:02, NNN Wx wrote:
Adding to my fun, I’ve skimmed the FT1D user manual, and the FT1D has the same feature as the FT2D: The radio can put “preset frequencies” into memory banks. See p 52 “Registering Your Favorite Preset Receiver Memory Channels in Memory Bank”. If somebody with an FT1D could follow those directions and enter a preset into a memory bank, I’ll bet that chirp misbehaves in the same way after reading in the image from the radio, and one should be able to use chirp’s Browser to see the following values in “channel” (clearly, taken from my FT2D):
Hi Declan,
Thanks for the thorough analysis on the preset frequencies. I still have my FT1D so I will try that when I have time. That likely won't be for at least a month.
Unfortunately I don't know enough to comment on the correct way to solve this with chirp.
Angus
[Was just cleaning out some old list mail and came across this.]
Thanks for working on this. FWIW, This feature of preset channels goes back to at least the VX-8 and probably earlier. A long, long time ago, The initial banks implementation in chirp crashed when loading my VX-8's image because it contained preset channels in one of the banks.
I did a little reverse engineering and what you discovered looks familiar. I have to see if I can find my notes. I eventually gave up because I realized it would need a decent bit of work to make chirp handle this especially in the UI for working on the banks.
(I was only scanning a handful of the Marine special/preset changes, so I just added those to the 900 regular memories and problem solved. I also eventually got Uniden scanner which pretty much ended any scanning/monitoring I was doing with the VX-8.)
--Rob
On 9/20/2017 7:02 AM, NNN Wx via chirp_devel wrote:
Adding to my fun, I’ve skimmed the FT1D user manual, and the FT1D has the same feature as the FT2D: The radio can put “preset frequencies” into memory banks. See p 52 “Registering Your Favorite Preset Receiver Memory Channels in Memory Bank”. If somebody with an FT1D could follow those directions and enter a preset into a memory bank, I’ll bet that chirp misbehaves in the same way after reading in the image from the radio, and one should be able to use chirp’s Browser to see the following values in “channel” (clearly, taken from my FT2D):
0x0000 is memory Location 1 0x0001 is memory Location 2 … [no surprises here]
0x1800 is channel 1 of the "WX Channel Frequency List” 0x1801 is channel 2 of the "WX Channel Frequency List” ... 0x2800 is channel 1 of the “International VHF Marine frequencies” 0x4000 is channel 1 of the “Worldwide short wave broadcast”
Such high values of “channel" cause chirp to emit an error when assigning memory locations to banks in the Banks tab of the UI, and those values _will_ be encountered if they have been manually entered into the FT2D and then read into chirp (and, I presume from the FT-1D as well.) If the values occur, the bank with an offending location cannot be further set (or unset); the error always happens. Unaffected banks can still be manipulated correctly.
It looks to me as if a “channel” (one of 100) in the FT1D (and FT2D) memory map* for “bank_menbers” array should be interpreted as a structure of its own: 1 bit unknown (0xFFFF is designates an unused channel in FT2D; I’d guess 1=unused, 0=used may suffice) 1 bit for SW presets 1 bit for Int VHF presets 1 bit for WX presets 1 bit unknown (perhaps 1=FM, 0=AM?) 11 bits of channel number (allows up to 2047 memory locations; FT2D uses only 999 so there might be yet another bit of flags and one fewer for number.)
Heaven only knows if or how the radio would handle having multiple “presets" bits set in one channel. If chirp were to handle these bits, it’d probably be polite to include logic that prevents that from being saved (“toggle bits” as it were.)
So, I ask in decreasing order of importance: What’s the “correct” way to restructure the FT1D (and thus FT2D) memory model* to include 100 channels per bank as an array of u16 (present situation) but with an internal flag structure in each one? I’m not quite sure how chirp handles “channels” in its own virtual model; I presume it just use the u16 as two bytes without any modifications and it’d be up to the driver to interpret them. I have _temporarily_ prevented the error from occurring by changing the FT1D.py to use “channel & 0x7FF” wherever “channel” is used in most places (but not while checking for 0xFFFF.) I’ve added no functionality for interpreting the flag bits, and I’ve not changed the memory model.
What’s the “correct” way to display such a structure in the Banks tab of the UI? At present, one cannot even use chirp to see that these fields are set. It might be useful to postpend lines to the columnar display when presets exist (e.g. "WX #1…. checkmark:, "int VHF #5… checkmarks”, “SW #25…. checkmarks”) I don’t think we have access to the actual frequencies involved so they cannot be displayed. ATM, FT2D and chirp always cause these high-flagged channels to exist at the END of the Banks listing.
What’s a “correct” way to SET or UNSET such a structure using the Banks UI? If they were displayed as above, the checkboxes would presumably be active just as they are in the rest of the UI. That’d make them easy to UNSET: just uncheck the corresponding box. I don’t have a good suggestion for SET; it’d be unwieldy to add ALL the possible presets as “high locations”, but more interactive options would require UI changes. Is this a place for “Special Channels” in the Memories tab?
- I have no Idea what the FTM-3200D or other radios subordinate to FT1D does with banks and preset frequencies; a change to the FT1D memory model might break the FTM-3200D. But if the FTM-3200D is working fine with the u16 channel and doesn’t have more than 2047 memories, it should be just fine.
Declan Rieb WD5EQY
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
I’ve heard nothing else about this problem from the list, so I really hope you’ve something to help in your notes!
It’s clear that the UI for banks will need to be changed and/or augmented, and that part of the code is exceptionally opaque to me ATM.
Had you any ideas for even displaying the presets in the bank map? I’m thinking that the “channels” column on the left get augmented with, say “WX #0”… “WX #11”… “IVHF #0” … “SW #0” … probably only as needed, with the same types of bank checkboxes on the right across the screen. The FT2D radio allows the presets to be interspersed with the memory entries and not necessarily collocated at the end of the bank, so the chirp memory model for the FT2D is already more restrictive than the radio (not necessarily bad, but that’s how we got into this mess in the first place: something doable with the radio breaks chirp.)
Unfortunately for the Yaesu FT2D and maybe the FT1D, the actual preset frequencies don’t seem to reside in programmable memory and thus are not in the radio image that chirp uses. Right now it seems one would have to transcribe the information for “preset channels” from the printed documentation (and heaven help chirpers if the manufacturer changes those listings somehow. chirp would then have to support “stepping” versions of the radio.) I can imagine that “immutable memory” could hold these presets but I don’t see any radios with such extensive data in that poorly-described memory store. I could imagine that the flag bits would just cause chirp and the UI to point to entries in “immutable memory” instead of the memory channels.
Declan Rieb WD5EQY wd5eqy@arrl.net
On Oct 6, 2017, at 15:16, Robert Terzi rct@r-t.org wrote:
[Was just cleaning out some old list mail and came across this.]
Thanks for working on this. FWIW, This feature of preset channels goes back to at least the VX-8 and probably earlier. A long, long time ago, The initial banks implementation in chirp crashed when loading my VX-8's image because it contained preset channels in one of the banks.
I did a little reverse engineering and what you discovered looks familiar. I have to see if I can find my notes. I eventually gave up because I realized it would need a decent bit of work to make chirp handle this especially in the UI for working on the banks.
(I was only scanning a handful of the Marine special/preset changes, so I just added those to the 900 regular memories and problem solved. I also eventually got Uniden scanner which pretty much ended any scanning/monitoring I was doing with the VX-8.)
—Rob
participants (4)
-
Angus Ainslie
-
Derek Chauran
-
NNN Wx
-
Robert Terzi