The Lin-2-1000MP for Windows Page [circa early 2006]

This is a simple 'C' language add-on to Linrad for Windows to allow it to control the transmit frequency of a Yaesu FT-1000 MP Mk V. This page is dedicated to allowing Linrad for Windows to control the FT1000 MP. If you want to do this with Linrad for Linux, click here

Linrad is an extraordinary weak signal receiver by SM5BSZ. It currently lacks transmit capability, and manually tuning a separate transmitter as one changes the Linrad receive frequency quickly becomes tiresome. This is particularly so because changing frequency is so easy with Linrad; one just clicks with a mouse on the desired signal and it is centered in the receive passband. And with the Antennspecialisten hardware, changing band segments also just involves the click of a mouse. So having to tune and zero-beat a separate transmitter really slows things down. Lin-2-1000MP, a simple 'C' language add-on that I wrote and included in Leif's user_hwaredriver.c file, allows Linrad to control the frequency of the FT1000MP from within Linrad for Linux, via a Serial Port. I was not able to use this with Linrad for Windows, as I was not able to access the COM ports from Windows XP after compiling Linrad with my addon using the C compiler that Leif uses for Linrad. My 'brute force' solution is to have Linrad write the frequency information from Linrad to a file that a Visual Basic program 'lin2ft.exe' then reads. Lin2ft.exe then sends the frequency information over the COM port to the FT1000MP Mk V.

With this combination of software, Linrad sends its receive frequency information, packaged in the way the FT1000MP wants to see it, to the FT1000MP whenever "Q" is typed on the keyboard. There is a user window [box] I added to Linrad that adds an adjustable frequency offset to the routine. This is actually done using two parameters. Par1, the first parameter, is used to set the approximate transverter LO in MHz. Par2 is then used to fine tune the frequency offset by entering its value directly in Hz. On the Linrad screen in the user_box Par1 is the upper parameter and is labeled "LO(MHz)". It is in MHz and would be entered for example as 116.0 if the 144 MHz Linrad WSE box is used for receive and the FT1000MP is transmitting on 28 MHz and transverted up to 144 MHz. If you are using Linrad in the audio range with a direct conversion receiver, then you would just enter the NEGATIVE of the LO frequency in this box to have the proper frequency sent to the FT1000MP. Par2 [the bottom parameter, labeled "SH(Hz)"] is the frequency correction parameter that is used to adjust for the variable frequency offset between the Linrad WSE hardware and the FT1000MP/transverter combination that occurs over time due to component drift. Par2 is scaled so that 1,000 equals 1 kHz. So you can just enter the offset required in Hz. Typing the letter "Q" (for "QSY") on the Linrad computer keyboard causes the FT1000MP to be set to transmit [or receive] on the Linrad receive frequency. With a Linrad receive frequency in the 144 MHz band and par1 set to 116.0, the program sends a frequency instruction in the 28 MHz band to the FT1000MP, as appropriate for the transverter setup. For receiving in the HF bands with the Linrad WSE hardware and no transverter, par1 is of course set to zero.

The easiest way to use all of this is to just use the linrad.exe file and the lin2ft.exe file that I have included in the zip or tar files that can be downloaded from the links in the paragraph below. Simply put the linrad.exe file and its associated "help.lir" and "errors.lir" and "aa********" files in any directory on your Windows hard drive. Then create a directory called '/lin2ft/' in the root directory of your Windows hard drive and place the lin2ft.exe file there. This is where Linrad for Windows will write the 'ft1000file' that contains the frequency information to be sent to the FT1000MP. If you are controlling an FT1000MP from other instances of Linrad running on other computers on your local network, this is also where they will write the frequency information. To get this all to work, place the files on your hard drive as above. Run lin2ft.exe. Run linrad.exe. Set your LO and SH parameters properly in the user box in Linrad. Click on a signal from Linrad. Type "Q". The proper frequency will appear in the windows on Lin2FT and be sent via the COM port to the FT1000MP.

If you want to recompile Linrad for Windows yourself, it is not difficult. Leif has written Linrad so that the user program for changing the FT1000MP's frequency will be invoked if "Q" is typed, as noted above. Linrad for Windows will run user-defined code that is placed in a file called wusers_hwaredriver.c. You can create this file by copying wusers.c [or users.c if wusers.c doesn't exist on your computer] to wusers_hwaredriver.c and modifying this code as necessary for your purposes, or just using the wusers_hwaredriver.c file I have included in this zip file or this tar file. I have also included in these files the executable linrad.exe file, the lin2ft.exe file, some support files named errors.lir, help.lir, and "aa********" that are to be put into the Linrad for Windows working directory, and the Visual Basic source files for lin2ft in case you want to compile this yourself. The "aa" files just place the user_window at a convenient place on the Linrad for Windows screen and set the initial values for the user parameters initially, and store these parameters if they are changed so that they are there the next time you use Linrad. They are mode-specific, so you can have different offsets for different modes. This wusers_hardware.c file also contains the routines Leif wrote to control the WSE hardware. So Linrad for Windows should work fine whether or not you have the WSE hardware.

Of course, recompiling Linrad for Windows must be done in Linux. You can compile the lin2ft program yourself instead of using my lin2ft.exe file if you have Visual Basic 6.0.

You can also control the FT1000MP from instances of Linrad running on other networked computers. I will describe how I use this in some detail so that you can see its possibilities. For the June 2006 ARRL VHF contest I set up 4 instances of Linrad running simultaneously on an auxiliary computer so that I could at all times monitor the 50, 144, 222 and 432 MHz bands with Linrad, so that if there was a band opening for example on 50 MHz while I was on 144 MHz, I could see it quickly and QSY to the appropriate band. Some of the detail below is a repetition of detail given above, so that this section taken by itself provides complete set-up information.

During the contest, I discovered that it would be really nice if I could use the 'Qsy' function in the add-on I wrote to Linrad to 'Qsy' the FT1000MP to whatever frequency I was seeing on any one of the auxiliary Linrad bandscopes, rather than having to tune the 1000MP manually each time I wanted to 'hunt and pounce' in this manner. Translated, I mean it was VERY annoying to NOT have this function during the contest

It turns out that because of the 'brute force' method [described above] I am using to get data from Linrad to the FT1000, adding this is trivial, and with a keystroke the FT1000MP can be put on frequency in the blink of an eye from any of the auxiliary bandscopes as well as from the main instance of Linrad running on the main Linrad computer. I merely have each of the four Linrad bandscopes write to the common "frequency file" at /lin2ft/ft1000file which is located on the auxiliary computer that is running the bandscopes. This computer runs a Visual Basic program that, when this frequency file is changed as a result of typing "Q" from any of the 4 Linrad bandscopes, reads this file and writes the frequency information to another frequency file /lin2ft/ft1000file on the main Linrad computer that, when modified, causes a Visual Basic program on that computer to send the new frequency value to the FT1000MP via the COM port. This file on the main Linrad computer is also written to by the main Linrad instance running on this main Linrad computer. Thus typing "Q" from any one of the five instances of Linrad [one of the four bandscopes on the auxiliary computer or the main instance on the main computer] places the FT1000MP on the desired IF frequency in a fraction of a second. It takes much longer to describe than to actually do this.

The chain of events is as follows:

Linrad.exe runs in four separate instances on the auxiliary computer. Each instance has its own directory of arbitrary name.

\lin2ft\ft1000file exists on the auxiliary computer and is written to by any of the instances of Linrad for Windows running on the auxiliary computer. It stores the frequency being received by Linrad at the moment that "Q" was typed from within Linrad for Windows.

network-lin2ft.exe is a Visual Basic program that exists in an arbitrary directory on the auxiliary computer. It reads the file \lin2ft\ft1000file generated by Linrad.exe and when that file contains new frequency information it sends it to the file \lin2ft\ft1000file on the main Linrad bandscope computer.

\lin2ft\lin2ft.exe is a Visual Basic program that exists on the main Linrad bandscope computer that has the COM port that controls the FT1000MP frequency. It reads the file \lin2ft\ft1000file that exists on the main Linrad computer and when it detects a change in that file sends the new frequency information out the COM port to the FT1000MP, putting it on the correct frequency.

\lin2ft\ft1000file is as just described in the paragraph above.

The linrad.exe programs running each of the 4 auxiliary bandscopes on the auxiliary computer and running the main instance of Linrad on the main Linrad computer are identical, except that to minimize my confusion the Linrad screen is labeled with the band [50,144,222,432] for each of the auxiliary bandscopes so that in the heat of a contest when I am sleep deprived I don't have to remember that 50 comes before 144 comes before 222 comes before 432 and that the screen is read from left to right and top to bottom in order to figure out which band I am watching. Each instance of Linrad runs in its own directory so that each can have separate parameter settings.

The Visual Basic file lin2ft.exe that runs on the main computer must be contained in the directory [lin2ft] placed in the root directory on a hard drive on the main computer with the COM port that runs the FT1000MP. As noted above, this is the directory to which the instance of Linrad running on the main computer writes the frequency file [ft1000file], and to which the auxiliary bandscope computer programs write the same information [to the same file]. This drive must be designated as the "Z" network drive on the auxiliary computer.

I have uploaded a zip file that contains two directories; one called lin2ft that is to be placed on the main computer as noted above, and one called lin2comp2 that is to be placed on the auxiliary computer. A directory called [lin2ft] needs to be created in addition on the auxiliary computer. As noted above, the auxiliary Linrad bandscopes will write the file ft1000file to this directory, and network-lin2ft.exe will read this information and send it across the network to the other computer. The directories in the zip file contain the linrad.exe file that contains the addon to make all of this possible as well as the Visual Basic files appropriate to the specific directories, and necessary support files as well as an rtf file with this explanation and a jpg file of the four bandscopes running during the June ARRL contest. You should be able to extract the directories with the files they contain and put them in the appropriate locations as noted above and be off and running. This file also contains my wuser_hwaredriver.c file.

To use these files when you are using the SDR14 with Linrad you of course set the IF frequency to zero in the user-window I added to Linrad.

To use these files with the Softrock you set the IF in the user-window I added to Linrad to the negative of the IF frequency. For example, if your Softrock is centered at 28.110 then you enter "-28.110" into the user window. Linrad will then do the math and the appropriate frequency will be sent to the FT1000MP. This assumes that Linrad and your Softrock are setup so that that the frequency progresses in the proper direction as you click from left to right on the Linrad bandscope

This technique would ALSO work extremely well for use during an HF contest where you had a softrock set up to monitor each HF band. Hitting "Q" in the appropriate Linrad bandscope would immediately bring the FT1000 to that band and frequency and you could just 'play the bandscopes' hunting and pouncing among all the HF bands with no more effort tnan it it were all just one big band.

Copyright 1997-2007 COPYRIGHT Roger Rehr W3SZ. All Rights Reserved

Brought to you by the folks at W3SZ