Page 3 of 3 FirstFirst 123
Results 41 to 58 of 58

Thread: Yaesu FTM-400D - Programming

  1. #41
    4x4 Ham Member Supporting Member N7IYT's Avatar
    Join Date
    Mar 2009
    Location
    Peoria, AZ
    Posts
    1,103
    Quote Originally Posted by KF5YKA View Post
    Hopefully UPS will be delivering mine tomorrow (though according to tracking it's been sitting in New Jersey since the 24th). If it shows up I'll probably try to spend some time on this project as well. The Idea of an XML schema would be nice, but I think first off, I'd put together a yaesu<-->CSV converter. That way, anyone could create a file with their spreadsheet or text editor then import it. XML would make a better interchange format, and might allow it to integrate with chirp. (Chirp uses python for scripting which should be easy to use, but I haven't looked to see if there is any way to use chirp for file based io instead or serial.)

    Quote Originally Posted by AC0VH View Post
    Doing a CSV/Yaesu converter is my approach. No reason at this point to reinvent the wheel, just use a spreadsheet to edit the memories and then read/write the SD card file.

    I got busy with a work project but should have next week or two to start hacking something (I am definitely not a software guru). FWIW what I'm working on is Mac OS X centric in Xcode at this point for convenience dinking with a GUI, but the underlying application is very generic (read: simplistic) command line driven.
    I like the way you guys are thinking on this project. I think the Binary<->CSV converter and SD card is the way to go. We would not even have to lug the laptop out to the vehicle, just pull the SD card, save the file to it, and then reload to the radio from the SD card.
    Offroad and on the air.

  2. #42
    4x4 Ham Member Supporting Member N1HX's Avatar
    Join Date
    Aug 2009
    Location
    Peoria, Arizona, United States
    Posts
    251
    Quote Originally Posted by N7IYT View Post
    I like the way you guys are thinking on this project. I think the Binary<->CSV converter and SD card is the way to go. We would not even have to lug the laptop out to the vehicle, just pull the SD card, save the file to it, and then reload to the radio from the SD card.
    I wonder if Yaesu realized this could and would be done when they designed the SD card into the 400. I am guessing this program will only be improved over time once the initial converter gets written. One reason to really like the 400.

  3. #43
    4x4 Ham Member
    Join Date
    Nov 2013
    Location
    Mesilla, NM
    Posts
    30
    In a lot of ways, the sd card approach is far more convenient if you are actually using the device mobile. Just shuttle the card from computer to car.

    I write lots of PHP every day, so I'd probably prototype in that cause it's easy for me, but that's not a great language for command line use, so I'd probably finish in python. I'm not much good with system level languages like c/c++/objective-c.

    Geof

  4. #44
    4x4 Ham Member Supporting Member
    Join Date
    Jul 2012
    Location
    Carson Valley, NV
    Posts
    91
    Success! (I think)

    I'm able to parse each of the test .dat files that were provided into xml... and then with a second program read the xml and inject the channel data into a .dat. Hex diffs of input and output .dat match (where it matters).

    Haven't yet tested any of the .dat's in my unit... I still don't have my auxiliary power sorted out in my FJC as I'm still short a part or two. If they don't show today, I'll rig up something temporary (but safe) to do some testing.

    The code is butt ugly... but I'll put it up on github in a bit. Folks are welcomed to submit patches to enhance it, such as adding CSV support. My code is procedural C++ (just using C as a better C).

  5. #45
    4x4 Ham Member Supporting Member N1HX's Avatar
    Join Date
    Aug 2009
    Location
    Peoria, Arizona, United States
    Posts
    251
    Quote Originally Posted by KZ7ZZZ View Post
    Success! (I think)

    I'm able to parse each of the test .dat files that were provided into xml... and then with a second program read the xml and inject the channel data into a .dat. Hex diffs of input and output .dat match (where it matters).

    Haven't yet tested any of the .dat's in my unit... I still don't have my auxiliary power sorted out in my FJC as I'm still short a part or two. If they don't show today, I'll rig up something temporary (but safe) to do some testing.

    The code is butt ugly... but I'll put it up on github in a bit. Folks are welcomed to submit patches to enhance it, such as adding CSV support. My code is procedural C++ (just using C as a better C).
    Great news! After you've had a chance to play around with your radio a bit, if you wish to save a mem file with data of your choice and upload it, I volunteer to load it into my 400. Thanks for you efforts!

  6. #46
    4x4 Ham Member Supporting Member
    Join Date
    Jul 2012
    Location
    Carson Valley, NV
    Posts
    91
    I've pushed my (ugly) "prototype" source code to https://github.com/kz7zzz/ftm-400d.git. Patches welcomed.

  7. #47
    4x4 Ham Member
    Join Date
    Nov 2013
    Location
    Mesilla, NM
    Posts
    30
    two questions:

    what compiler/version are you using?

    what version of libxml are you using?

    On my machine, I had to add a #include <strings.h> to get past some initial errors, and I'm still getting a bunch of "undefined reference" to a bunch of xml related functions.

    Geof

  8. #48
    4x4 Ham Member Supporting Member
    Join Date
    Jul 2012
    Location
    Carson Valley, NV
    Posts
    91
    Quote Originally Posted by KF5YKA View Post
    two questions:

    what compiler/version are you using?

    what version of libxml are you using?

    On my machine, I had to add a #include <strings.h> to get past some initial errors, and I'm still getting a bunch of "undefined reference" to a bunch of xml related functions.

    Geof
    % c++ --version
    Apple LLVM version 5.0 (clang-500.2.78) (based on LLVM 3.3svn)
    Target: x86_64-apple-darwin13.1.0
    Thread model: posix

    % xml2-config --version
    2.9.1

    The former is from XCode 5, the latter is from macports.

    As far as undefined references go, maybe your xlib2-config is not returning a proper set of dependent libs. On my install, it returns: -L/opt/local/lib -lxml2 -lz -lpthread -liconv -lm

    Next up on my TODO list code-wise is code cleanup and unit tests. Then I'm going to try to reverse-engineer the rest of the channel memory.

    I did manage to get my unit installed yesterday but then realized I suffered brain fart when ordering my memory card... got a regular SD card instead of micro-SD. Will pick up a micro-SD locally today.

  9. #49
    4x4 Ham Member
    Join Date
    Nov 2013
    Location
    Mesilla, NM
    Posts
    30
    I'm working on an ARM chromebook with a debian chroot. c++ is 4.8.1, xml2 is 2.9.1.

    xml2-config --libs returns just -lxml2

    Like I said before, I'm not particularly good with c/c++, but I'll dig a little deeper.

    EDIT:

    I'll add that this problem is only on ftm-import. I can 'make ftm-export' and 'make ftm-strings' just fine, and the errors are at linking stage, not compilation.

  10. #50
    4x4 Ham Member
    Join Date
    Nov 2013
    Location
    Mesilla, NM
    Posts
    30
    Ok, so after getting frustrated with C and python, I went back to my old standby: php.

    Mostly I've been working on a class definition where you can insert the 16 bytes, directly read from the dat file, and it automatically pulls the known data out of it, then passing 8 bytes from the name, and it will parse to a string in the object. Those parts are 80% working. The primary missing bits are CTCSS and DCS. The second half of the class definition will work the other way: as you pass in a string or setting values, it automatically updates the internal 8 and 16 byte representations. Once the class can convert both directions for all the important values, then the easy part is to create a couple big arrays of objects, read in a bunch of data from one file type and write out to the other file type.

    The attached php file loads a dat file, iterates through the data area, then tries to output what it thinks the data is. Mostly its just stretching the legs of the class to see if it works. You have to have php setup to run as a command (not just the web). On most linux systems it is a package called php5-cli. To try out use either:

    ./ftm400.php filename.dat

    or if your system doesn't run the interpreter automatically:

    php ftm400.php filename.dat

    or on windows it might look more like (not a windows person, so I don't really know for sure):

    php.exe ftm400.php filename.dat

    Geof

    ftm400.zip

  11. #51
    4x4 Ham Member Supporting Member
    Join Date
    Jul 2012
    Location
    Carson Valley, NV
    Posts
    91
    I pushed changes which should make things compile on Linux (and other platforms)....

  12. #52
    4x4 Ham Member
    Join Date
    Nov 2013
    Location
    Mesilla, NM
    Posts
    30
    Quote Originally Posted by KZ7ZZZ View Post
    I pushed changes which should make things compile on Linux (and other platforms)....
    Thanks. I'll try tonight.

    Geof

  13. #53
    4x4 Ham Member Supporting Member
    Join Date
    Jul 2012
    Location
    Carson Valley, NV
    Posts
    91
    Yesterday I experimented with character code points beyond those seen on the ftm-400d's keyboard... found 4 arrows (up, down, left, right) and bunch of glyphs from what I assume is used in Japanese market systems. I then jammed the radio, I assumed, due to invalid code points... at one point so bad that I couldn't get past the boot screen. Was thinking I'd have to call Yaesu for help... but then figured out the radio was still functioning as I was hearing APRS chirps. Got it unjammed by using the mic to put both transceivers in VFO mode (so the invalid code points would not be visible) and then restarting it. So I haven't attempted to look at some of the high code points, so idea if they are used or not.

    I'm going to add support for the arrows to my code as I think they would be handy for representing high and low power in select channel names (up arrow for high power, down arrow for low power, no arrow for medium power)... on my radios, I usually configure three adjacent channels for each simplex frequency I commonly use, e.g. APRS, so that I can change power output simply by changing which channel configuration is being used.

    Anyways, as the code sits now, it basically meets my needs... though there's still a few bits I haven't yet dealt with (such as non-standard offsets). Others are certainly welcomed to modify to their needs... patches welcomed. Please use github to submit them to me. https://github.com/kz7zzz/ftm-400d

    Edit:
    BTW, the code now support exporting/importing the home channel as well as the programmable scanner ranges.

    Edit:
    now with arrows

  14. #54
    4x4 Ham Member Supporting Member
    Join Date
    Jul 2012
    Location
    Carson Valley, NV
    Posts
    91
    The code now handles a few more things, include SQL modes and specified offsets (need not be 600Khz/5Mhz). I haven't played much with the more esoterically features (such as many of the SQL modes), but it now does more than I need it to handle my usage of this radio.

    For the next few weeks I'm going to be VERY busy at work so not expecting to do much here. But, as always, patches welcomed (use github to send me "pull requests").

    Enjoy! Kurt

    https://github.com/kz7zzz/ftm-400d

  15. #55
    New 4x4 Ham Member
    Join Date
    Mar 2014
    Location
    Stockholm
    Posts
    3
    Hi,

    Basically I registered here for this thread. I have a FTM-400DE and am working on making the open source project Chirp work with it. Chirp has the infrastructure, so all I need to do is add the specifics for this rig, and I can use the earlier findings from the FTM-350.

    You found some stuff that was new to me, which I will be able to use. Partly for your benefit I attached my latest memory dump analysis at http://chirp.danplanet.com/issues/1469 where the FTM-400D is discussed.

    73 de SA0CLI
    Johan Adler
    QTH Stockholm, Sweden

  16. #56
    4x4 Ham Member Supporting Member N1HX's Avatar
    Join Date
    Aug 2009
    Location
    Peoria, Arizona, United States
    Posts
    251
    Quote Originally Posted by SA0CLI View Post
    Hi,

    Basically I registered here for this thread. I have a FTM-400DE and am working on making the open source project Chirp work with it. Chirp has the infrastructure, so all I need to do is add the specifics for this rig, and I can use the earlier findings from the FTM-350.

    You found some stuff that was new to me, which I will be able to use. Partly for your benefit I attached my latest memory dump analysis at http://chirp.danplanet.com/issues/1469 where the FTM-400D is discussed.

    73 de SA0CLI
    Johan Adler
    QTH Stockholm, Sweden
    Please keep us updated with your progress Johan. Also, welcome to the forum.

    73s

  17. #57
    4x4 Ham Member Supporting Member
    Join Date
    Jul 2012
    Location
    Carson Valley, NV
    Posts
    91
    As I noted on the chirp dev list some time ago... anyone working on on FTM-400dr support for chirp are welcomed to borrow from my code....
    https://github.com/kz7zzz/ftm-400d.git

  18. #58
    4x4 Ham Member
    Join Date
    Jul 2008
    Location
    Mesa, AZ
    Posts
    5
    I can't seem to find the files that were uploaded the past with programming data.

    Like many people, I am looking for an easy way to copy a file to my SD card that has all the AZ repeaters and even some in perhaps CA and UT.

    Can anyone point me in the right direction? I have the RTSystems 400 software if that helps.

    Thanks!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •