Menu

Tree [eb5988] master /
 History

HTTPS access


File Date Author Commit
 build-aux 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 data 2016-06-30 Greg Beam Greg Beam [4efc8b] FMT Intermediate commit, breaks the build on nix
 doc 2016-07-06 Greg Beam Greg Beam [19a047] FMT - fix small typo in cat button, add full au...
 m4 2016-07-03 Greg Beam Greg Beam [491f05] Simplify python.m4, only check Future and Pmw P...
 manpages 2016-07-01 Greg Beam Greg Beam [07681d] FMT - Use Asciidoctor for Manpages, update Pyth...
 modfmt 2016-12-19 Greg Beam Greg Beam [1a8346] PyFMT - fix fmt.ini file generation format
 win32 2016-07-04 Greg Beam Greg Beam [2a7070] FMT have the Makfile copy rigctl files, default...
 .gitignore 2018-05-28 Bill Somerville Bill Somerville [eb5988] .gitignore created online with Bitbucket
 AUTHORS.rst 2016-06-28 Greg Beam Greg Beam [4c4fcf] Start restructuring FMT, much more to do, nothi...
 BUGS.rst 2016-06-28 Greg Beam Greg Beam [4c4fcf] Start restructuring FMT, much more to do, nothi...
 LICENSE.rst 2016-06-28 Greg Beam Greg Beam [4c4fcf] Start restructuring FMT, much more to do, nothi...
 Makefile.in 2016-07-06 Greg Beam Greg Beam [19a047] FMT - fix small typo in cat button, add full au...
 Makefile.jtsdk2 2016-07-04 Greg Beam Greg Beam [2a7070] FMT have the Makfile copy rigctl files, default...
 README.rst 2016-07-03 Greg Beam Greg Beam [29269d] FMT - fix path for user defined rigctl location
 THANKS.rst 2016-06-28 Greg Beam Greg Beam [4c4fcf] Start restructuring FMT, much more to do, nothi...
 aclocal.m4 2016-07-05 Greg Beam Greg Beam [3b8ad0] FMT - add test cat function, button and button ...
 acom1.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 acom2.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 audiodev.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 autogen.sh 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 configure 2016-07-05 Greg Beam Greg Beam [3b8ad0] FMT - add test cat function, button and button ...
 configure.ac 2016-07-03 Greg Beam Greg Beam [491f05] Simplify python.m4, only check Future and Pmw P...
 db.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 fcal.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 fftw3.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 fil1.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 fmeasure.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 fmtave.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 fmtest.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 fmtiq.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 four2a.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 padevsub.c 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 peakup.f90 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries
 pyfmt.in 2016-07-03 Greg Beam Greg Beam [a7c60e] FMT - add traps for clean and interupt exits
 requirments.txt 2016-06-28 Greg Beam Greg Beam [8e3d58] FMT params widget is funtional. Tested on Linux...
 sound.c 2016-06-29 Greg Beam Greg Beam [500741] FMT - now builds all four binaries

Read Me

PyFMT is a Python wrapper for the FMT Suite by Joe Taylor, (K1JT). The program suite was originally bundeled with the WSPR Package. Its primary use if for Rig Calibration and the ARRL Frequency Measurement Test

Development Status

All of the core elements are now functional. The pyfmt script provides the following:

  • Set station information, Call and Grid
  • Select Input Audio Device via PyAudio
  • Setup Rig Control via Hamlib Control Libraries
  • Configure COM Ports settings via PySerial
  • Write out pyfmt.ini and fmt.ini files
  • Widgets are drawn with a combination of tKinter and Pmw.

Individual Program Functions

Each of the utility programs and shell scritp files in the FMT package performs a single function ( excerpts from FMT User Guide ):

gocal Shell file, must be edited to your specific needs. Executes program fmtest for a number of specified frequency-calibration stations. Output will accumulate in file fmt.all.

fmtest Sets the dial frequency of a CAT-controlled radio and performs a sequence of measurements of the strongest resulting audio tone near a specified offset frequency. Input parameters are taken from the command line, and output goes to files fmt.out and fmt.all. The latter file is cumulative.

fmtave Averages data found in a specified file having the format of fmt.all. Output goes to file fmtave.out.

fcal Calculates a best-fit straight line for a data saved in fmtave.out. Results are saved in file fcal.out.

fmeasure Calculates the properly calibrated frequency of each test signal found in file fmtave.out. Results are saved in file fmeasure.out, and these are the numbers you should report if you are entering the Frequency Measuring Test.

General System Level Packages

The following packages are required at the system level:

System

  • asciidoctor
  • automake
  • autoconf
  • GCC
  • Gfortran
  • libfftw3-dev
  • portaudio19-dev
  • libhamlib-utils ( optional if building Hamlib3 locally )

Note

On some systems ( Ubuntu, Debian and Linux Mint ), it is required to install libjack-jackd2-dev before installing portaudio19-dev. The following proess has been reported to work by users of JTSDK for Nix:

sudo apt-get install libjack-jackd2-dev
sudo apt-get install portautio19-dev

There may be other system using the Jack subsystem. Care should be taken when installing manually. The Launchpad version of PyFMT ( when released ) will use a Pre-Depends section to deal with this situaiton.

Python2 Modules

The folloiwing packages are for system that have Python2 as the default Python installaiton. To test which version of Python you have, in a termainl, type:

python --version

If yout have 2.7.0 thru 2.7.x the following packages apply to that system

  • python-future
  • python-pmw
  • python-pyaudio
  • python-serial
  • python-tk

Python3 Systems

For systems with Python3 as their default, the following packages should be installed:

  • python3-pyaudio
  • python3-serial
  • python3-tk

Checkout and Compiling

Check out the code from the WSJT Sourceforge Project

* svn co https://svn.code.sf.net/p/wsjt/wsjt/branches/fmt
* cd ./fmt
* ./autogen.sh
* make
* sudo make install

Note

If your system does not have libhamlib-utiuls installed, you must pass a location of rigctl, otherwise, the configure script will present an error message. The example below shows this method when compiled with JTSDK for Nix.

./autogen.sh --with-rigctl="/home/<usr-name>/jtsdk/hamlib3/bin/rigctl"

The rigctl path must include the actual name of the file, for example, if your are using the binary built from JTSDK for Nix, your path would look similar to this:

# Always add the file name
# Always use single quotes, and **do not** use variables that expand, like $HOME or $USER
#
./autogen.sh --with-rigctl='/home/ki7mt/jtsdk/hamlib3/bin/rigctl'

Uninstall

To uninstall PyFMT, ferform the following tasks in a terminal

cd ./fmt               # location of the checkout
sudo make uninstall    # run the invocation
make distclean         # clean the source tree

Usage and Testing

There is an FMT USer Guide available from the WSJT main site. Additionally, within the install directory you will find the gocal file. Edit this as needed for your local stations.

Before running any of the FMT Tools, users should run pyfmt then select option (1) to configure Stations Parameters. there are two option you can pass to pyfmt

pyfmt -n NAME -p PATH

pyfmt -n NAME specifics the profile to use in setting up Station Parameters. for example, using pyfmt -n ts2000 would create an instance for the Kenwood TS-2000, with all files and ini files being located in:

/home/user-name/.local/share/ts2000

This configuratoin allows for running many different rig / port combinations, which allows running multiple radios at the same time. The contests of the folder, after a full run with PyFMT would look similar to:

├── fcal.out
├── fcal.plt
├── fmt.all
├── fmtave.out
├── fmt.ini
├── fmt.out
├── pyfmt.ini
├── gocal
├── hamlib_rig_numbers
└── pyfmtrc.nix

Note

If the the rig selection and comport settings are correct, you will be presented with an info box stating so. The pyfmt.ini and fmt.ini files are written after a successful CAT connection made by saving your paramerter.

After successful rig control setup, follow the FMT User Guide to perform the calibration test.