Fldigi / Flarq



17 May 2013
fldigi - Digital modem program for Linux, Free-BSD, OS X, Windows XP, NT, W2K, Vista and Win7.
flarq - Automatic Repeat reQuest program.

Fldigi and Flarq are separate programs that are packaged together as source, binary, and installation files.

Build updated to fltk-1.3.0 library standards.  Can also be built using fltk-1.1.10

Download at: download page

Fldigi 3.21.72 / Flarq 4.3.4 release notes


Internationalization
  • Added French, Italian and Spanish translation files
    • update to es.po (Spanish translation)
  • es.po - update to Spanish translation files ** 1 December 2011
  • it.po - update to Italian translation files ** 5 December 2011
  • resized some controls to allow better internationalization
  • PO file update - Updated es.po and pl.po to 3.21.70

Macros
  •   <MODEM:
    •     Added conditional wait for modem switch before continuing to parse or
    •     execute remainder of macro definition.
  •   <RIGMODE:mode> mode must be valid entry in mode combo box
  •   <FILWID:width> width must be valid entry in bw combo box
  •   <QSY:FFF.F[:NNNN]>
    •     - FFF.F in kHz
    •     - NNNN in Hz
    •     - examples
      •       <QSY:7035>
      •       <QSY:14070:1500>
      •       <QSY:3580.3:1100>
      •       <QSY::2125>
  •   <FILE:name>
    •     * test for case where "name" no longer exists
  •   <RX/TX>
    •     Corrected # chars to delete from macro string during execution
  •   Load Macros
    •     Corrected macro button initialization after loading a new macro definition file
  •   Added RX frequency tag for search macros.
  •   Added CLEARLOG macro tag
    • Inserts a ^C into the transmit text.  ^C can also be entered manually.  Note that this is a two character sequence:
      carat C, and not a control-C symbolism.
  •   <LNW>
    •     Added new logging macro tag <LNW> (Log NoW), which places the code pair "^L" into the transmit stream.  QSO logging takes place when that pair occurs in the transmit sequence. This guarantees that the time of log will concur with the ^L occurance.
  • Changed tag parsing to always place <RX> (^r) as last control tag in the expanded text that is placed into the Tx buffer.
  •  REPEAT Macro
    • Added <REPEAT> macro tag - puts fldigi into infinite transmit repeat of all text and tags preceeding <REPEAT>.  Pressing ESC terminates the loop
  • <ID> video text mod
    •     * Expanded video ID text for Olivia, Contestia and RTTY
    •     * Amended macro editor <ID> explanation
    •     * Changed format of auto-generated video ID text.
    •     * Increased number of characters to 8 for both font sizes
    •     * Simplified video generation methods
    •     * Added limit switches on video width
    •       - 500 Hz for US HF compliance
    •       - Mode bandwidth, video constrained to mode in use bw
    •     * Added abbreviated video mode name strings
  • Added FEC indicator for DominoEX FEC modes
  • EXEC win32 macro tag
    • Added new tag <EXEC>...</EXEC> for win32 implementation
    • launches new application
    • does not expect any return values
  • K3 CW-QSY
    • Additions to allow qsy to function correctly when K3 is used in mode A1A.
    • This might also apply to other transceivers which display the CW transmit signal frequency on the front panel when in mode A1A.
  • <CLRTX> : clear the xmt text
  • <XIN> : add received exchange to xmt text
  • QSY macros
    • <QSYTO> move current cursor frequency to sweetspot
    • <QSYFM> restore previous location
    • Performs the same function as left and right click on the waterfall QSY button
    • QSYTO / QSYFM act on rf/audio frequency pairs on a first-in / last-out stack.
    • Macro tag is immediate execute.  Do not expect <QSYTO> ....... <QSYFM> to anything except move to sweetspot and immediately restore.
  • <DTMF: encode DTMF strings using 16 button keypad tones 0..9, *, #, A..D
    • <DTMF:[Wnnn:Lkkk:]:tonechars>
    • Wnnn - wait nnn milliseconds before first tone, default 0
    • Lkkk - each tone kkk milliseconds in duration, default 50
    • Use space, hypen and comma to insert silence periods into tone sequence
    • eg: <DTMF:W250:L75:123A 456B 789C *0#D,,,,>
  •   Inline macro tags
    • Created ability to delay execution of designated tags until the time of occurrence in the transmit character stream.  These include:
      • <DTMF    - dual tones
      • <!WPM    - CW words per minute
      • <!POST   - CW post delay
      • <!PRE    - CW pre delay
      • <!RISE   - CW rise/decay time
      • <!MODEM  - change to specified modem
      • <!GOHOME - move to mode sweet spot audio frequency
      • <!GOFREQ - move to a specific audio frequency
      • <!IDLE   - idle for specified number of seconds
      • <!WAIT   - wait for specified number of seconds
      • <!QSY    - move to specifed RF and Audio frequency
    • The <! tags use the same parameters as their non delayed counterparts
    • Added NULL modem, a device which does not receive but can enable transmit.
      • used as modem type before !QSY, !GOFREQ etc to suppress transmit of audio stream
      • used with <DTMF... to transmit DTMF tones and suppress any other modem audio stream
    • Changed end of transmission logic to MT63 modem to allow it to be specified in <!MODEM
    • Corrected string to numeric conversion
    • Added abort processing / queue reset
    • Modified macro parsing to allow multiple invocations of macro containing <! tags
    • Added ability to schedule a single macro execution at a specifice GMT date and time tag format <SKED:hhmm[:YYYYDDMM]> where the date defaults to current date.
  • Macro Editor
    • Changed to be resizable.  Edit and Browser controls change in size proportionally.
    • Added Tile object to resizable group.  Allows the text - picklist intersection to be dragged for resize.
  •  Timer delay - Moved timer restart from Tx string parser to tx_transmit loop
  • !Queue reset - Added queue_reset call to pCLRTX, execution of macro tag <CLRTX>.  Causes any pending ^! tags to be cleared.
  •     <EXEC>...</EXEC>  - Added limited tag expansion within <EXEC>...</EXEC> tag pair.  Following tags are expanded to their value.  All other's are suppressed.  Parser also suppresses nested <EXEC>...</EXEC> pairs.
    <CALL>  <FREQ>  <LOC>  <MODE>  <NAME>  <QTH>  <RST>
    <MYCALL>  <MYLOC>  <MYNAME>  <MYQTH>  <MYRST>
    <QSOTIME>  <INFO1>  <INFO2> 
    <LDT>  <ILDT>  <ZDT>  <IZDT>  <LT>  <ZT>  <LD>  <ZD>  <VER>
  •     RTTY bandwidth - Added bandwidth specifier to set modem RTTY tag
    • <MODEM:RTTY:shift:baud:bits:bandwidth>
    • Specifiers may be unspecified, i.e.
    • <MODEM:RTTY:170>
    • <MODEM:RTTY:170:45>
    • <MODEM:RTTY:170::5><MODEM:RTTY:170:::100>
    • <MODEM:RTTY:170:45:5:90>
  •     REV macro tag - Added <REV:on | off | t> (on, off, toggle)
  •     Exec macro -  On Linux and OS X
    • modified child process environment variable PATH to include the scripts directory as the first in the PATH string required for xdg-open to find executable in the scripts directory
  • eQSL - Added EQSL macro tag - sends current log data to eQSL on line
    • CALL, BAND, MODE, QSO_DATE, QSO_TIME_ON, RST_SENT
    • optional message, <EQSL:message to send>
  • eQSL update
    • Added embedded tags to optional message
      • {CALL} other operators callsign
      • {NAME} other operators name
      • {MODE} full mode / submode
    • Added switch to enable sending eQSL when either
      • log button is pressed
      • <LOG> or <LNW> is encountered in macro
      • logic to disallow duplicating eQSL submission
  •   HamQTH app ident - removed version number from FLDIGI application identification at request of Petr, OK2CQR
  • Merge Logs
    • Added duplicate checking to log merger
    • Save duplicates to an ADIF file and display results of merger on the Rx panel.
    • Save merged records to a merged rec file
    • Altered read adif to accommodate LoTW peculiarities
  • eQSL QTH nickname
    • Changed location of <APP_EQSL_QTH_NICKNAME:%d>%s to come after <EOH>
  • ADIF i/o tweaks
    • Changes to improve file i/o performance
    • Removed <ADIF_VER: check to allow importing from non compliant ADIF files.
  • Call lookup - Added ability to lookup calls with multiple slash and to recognize leading slashed preamble
    • KH6/W1HKJ/M
    • W1HKJ/6
    • M2/W1HKJ
  • Merge dups - Corrected logic for instance when merge source file has duplicate records
  • Logbook dirty boolean - Added code to clear dirty boolean when log first loaded; prevents nagging to save a clean logbook
  • WX macro tag - queries www.weather.gov for current observation at designated METAR rss-xml feed
  • Macro filename - Added code to recognize "\" in starting filename on windows
  • WX Celsius - added missing conversion from Fahrenheit to Celsius; allow English and/or Metric units in report
  • Weather tag - Added <WX:XXXX> tag where XXXX is METAR station id. No change to <WX> tag.  Both use the WX configuration for report format.
  • eQSL - Added user selectable date-time ON or OFF for eQSL logging
  • International Weather reporting
    • Changed url query to provide international coverage
    • Added option to display full METAR report
    • Added ability to display noun name of reporting METAR station
  • Save macros bug fix for Windows
  • EXEC macro
    • Corrected <TX> disabling when executing <EXEC>...</EXEC>
    • Modified code to allow multiple <EXEC>...</EXEC> calls with a single macro text
    • Removed ability to recurse the <EXEC>...</EXEC> macro tag
  •     Control-Z fault - Restored control-Z fix
  • ANTENNA macro tag - inserts the value entered on the User UI configuration dialog
  • RsID Multiple
    • Added Macro <NRSID:nn> where
    • nn < 0 will cause |n| RsID bursts and exit from Tx
    • nn > 0 will cause |n| RxID bursts and Tx continue
    • nn == 0 will cause a single RxID burst and Tx continue
    • multiple RsID bursts are separated by an interval of 200 milliseconds
  • REPEAT Macro - Corrected macro execution for UTF-8 implementation.  Cleaned up macro methods - removed commented out code
  • Macros LOG LNW EXEC
    • Added :[notes] string to LOG and LNW macro tags
          <LOG:append this text>
          <LNW:append this text>
      the specified text will be appended to the notes field as the string "\nappend this text" before saving the log data <LOG> and <LNW> behave as before.
    • Added post execute expansion of returned macro text.  Restores ability to include macro tags such as <MYCALL> in the returned text.  The macro tag will then be expanded before transmission.
  • Insert QRG text into Rx stream: <QRG:text to insert>
  • SAVE macro tag - saves current macros under current macro filename
  • Added export strings - FLDIGI_LOG_FILE - current logbook file name; FLDIGI_MACRO_FILE - current macro file name
  • <PAUSE> tag - returns to receive, but does not clear Tx buffer
  • <TXATTEN:nn.n> <!TXATTEN:nn.n> tag to control transmit attenuator control from within a macro.
  • <COMMENT:text> macro tag; a do nothing that disappears from the transmitted text
  • High Speed Playback
    • high speed playback of wav file for use during modem deveopment and testing.
    • on/off/toggle control is provided using hidden macro tag <HS:on|off|t(oggle)>
    • Start wav playback at normal speed and allow decoding to begin.  Then change to high speed mode.
    • Maximum playback speed is achieved when the audio input is selected as file only.  CPU usage can reach 100%, but decoding is not effected adversely.
    • Waterfall & scope are disabled during high speed playback.  Rx text display remains active.
    • Added ability to playback sound file as single pass or continuous loop.  If in single pass then high speed is toggled off at end of file.
  • QSO NBR/NXT macro tag - Added <QSONBR>, <NXTNBR> macro tags to respectively add current # QSO records, next QSO record number to transmit string.
  • BAND Macro tag - Added BAND macro tag


Transceiver Control
  • RigCAT INIT/CLOSE - This modification submitted by Arvo Jarve, ES1JA, <arvo@softshark.ee>
    • Added CLOSE port rigcat command
    • Added user control to enable/disable restortation of serial port status bits when closing port - use <RESTORE>bool_value</RESTORE> in xml definition file.
  • Hang on start - Erroneously created / deleted new thread for instance when rig_cat not being used for rig control.
  • rigMEM - removed rigMEM support code, KC505 transceiver control converted to use xmlrpc control.
  • Rigsupport - Removed Fl::lock/unlock calls from source


User Interface

  • Added resizable signal browser to main dialog.  Separate dialog and main signal browser mirror each others activity.  Added RTTY signal browsing.
  • Added user selection to decode audio stream history when clicking an active channel in the signal browser
  • Moved qso_opPICK above frequency display.  Adjusted size and position of other rig controls to provide maximum control widths.
  • Removed white space surrounding macro buttons
    • Increased height of buttons 2 pixels
    • Removed white space surrounding audio mixer sliders
    • Removed DOWN_BOX attributes from groups, replaced with
    • BOX attributes for individual controls
  • Macro Bar positions
    • Added user selectable macro bar positions and ability to view12 or 24 macros at a time
  • Adjusted the viewable configuration tabs for the waterfall-only to allow hiding the following tabs:
    •  UserInterface
    •  Contest
    •  WF_UI
    •  RxText
    • Misc
    • QRZ
  • Fix to waterfall-only save preferences fault
  • Panel Widget
    • Added new widget class, Panel, to replace Fl_Tile and it's derivatives.  Panel resizes it's children using a ratiometric algorithm.
    • Enclosed embedded viewer, Rx text, and Tx text widgets within the bounds of a Panel widget.
    • Removed separate control for horizontal sizing of embedded viewer.
  • Convenience features
    • Added enable/disable psk browsing for very slow cpu's
    •  control on psk config tab
    •  default to enable ON
  • Check for updates - Changed re parser expression to follow recent change in w1hkj web site organization
  • Config defaults - Changed true/false default for some  configuration items
  • No rig mode selection - Restored functionality of transceiver mode selector when no transceiver is being controlled.
  • Corrected misspelled tooltips
  • Added Tx attenuator control to Audio configuration tab
    • Added main dialog short cut keys for tx attenuator control
              alt -   ==> decrease by 0.1 dB
              alt = ==> increase by 0.1 dB
  • Modified two-tone generator in Olivia / Contestia to avoid remultiplication by txlevel
  •   Log Menu Items
    • Moved menu items in list to prevent careless selection of "New"
    • Added confirmation dialog to create a new logbook
  • Control-Z bug fix
    • Fix for seg fault when pressing ctrl-Z immediately after double Escape
  • Version lookup - Changed PACKAGE_DL definition in configure.ac pointed to wrong url
  • RSID limit fault - Set upper and lower bounds to RSID limited search
  • Resize fault - Fixed resize fault - required changing min height of hidden resizable control in main text panel.
  • Auto-send - Added command-line parameter --auto-dir for specifying absolute pathname to autosend directory.
  • Tx Attenuator Control - Moved tx attenuator control to main panel
  • UI changes - Added check box / configuration item for presetting RST-in to 599 when clearing the log entries
  • Added Contestia 64/1000 to main menu system
  • Right Channel audio
    • Write silence stream to right channel if not enabled
    • Added separate tab for right channel configuration items
    • Replicated right channel control items on the new tab.  Original controls on PTT, CW and RTTY tabs or the replicants may be toggled to control right channel operation
    • Added check button to enable reversal of left-right audio channels
  • WARN status colors - Added user selectable colors for level indicator (diamond below wf)
    • Low    - nominal BLACK, signal < 0.05
    • Normal - nominal GREEN, 0.05 <= signal < 0.9
    • High   - nominal YELLOW, 0.9 <= 0.9 < 0.98
    • Over   - nominal RED, signal >= 0.98
    • signal is the peak audio value % of maximium for the sound card in use.  Note that this level is for the composite of all signals within the passband and not just for signal being decoded.
  • Cyrillic-UTF8 chars
  • Added support for displaying, transmitting & receiving UTF-8 character.
    • Modes which support UTF-8 characters:
      • PSK31, PSK63, PSK125, PSK250, PSK500
      • Olivia - must enable 8 bit extended characters
      • MT63 - must enable 8 bit extended characters
      • MFSK - all baudrates supported
  • Modified "clear_sent" method in FTextRXTX to correct behavior when TX buffer contains UTF-8 characters
  • Weather report
    • Added return http document error tests
    • Removed "Weather:\n" prefix from returned data string
    • Corrected English / Metric conversions
    • Added wind in Meters/Sec to MPH KPH conversion
    • Added condition parsing from raw data strin
    • Added web lookup for METAR station of interest
  • Added Waterfall settable transceiver notch (only for xcvrs with CAT notch / flrig operating)
  • Added notch indicator configurable color
  • Added configuration toggle to allow checking for updates when program starts
  • Clear sent text - add UTF8 code to only clear to ^r in Tx buffer, allows user to enter text with multiple ^r entries in a single text buffer
  • Rigio thread - Fixed random hang trying to close rigio thread
  • Auto file directory
    • Added test for trailing path separator on command line directory parameters.
    • Added relative pathname capability to command line directory parameters
    • Added alternate path test for the file wrap_auto_file
  • FreqControl paste - added control-V handler for FreqControl widget
  • Base directory - Added command line switch to alter parent home directory (folder).
  • Main Panel Controls Colors-Fonts - Add user configuration items to allow customizing fonts and colors for all widgets on main display
  • Polish translation - Added Polish translation file submitted by Roman, SP4JEU
  • Wavefile playback - Corrected fault when trying to playback a stereo wavefile.
  • Tango icon pixmaps update to version 0.8.90 (public domain) - Replace the Tango Icon Library pixmaps (previously licensed as CC-BY-SA-2.5) with new pixmaps generated from tango-icon-theme-0.8.90, which has since been re-licensed as Public Domain.
  • Added configurable logbook controls; font / font-size, font color, background color.  Improved the table widget used in the logbook dialog browser.
  • Added configure item in UI general to open confirmation dialog when user exits program
  • Fix RPC log TimeOn value,  without this, timeon == timeoff.  patch corrects data transfer to CQRlog.
  • Add new shortcuts in TX widget.  SC means Shift-Control.
    • SC-c for <CALL>
    • SC-n for <NAME>
    • SC-r for <RST>
    • SC-l for <MYLOC>
    • SC-h for <MYQTH>
    • SC-a for <ANTENNA>
  • Updated combo box widget class
  • ASCII tables - Added ASCII3 table
    • ASCII - used for RTTY
    • ASCII2 - used for ARQ / PSKMAIL
    • ASCII3 - used for all other text
  • UTF-8 char echo - fix echoing of UTF-8 characters in the Rx panel
  • Hamlib sideband menu - Toggle initialize button when sideband menu selector changes
  • flarq bug fix - unreliable socket connection to fldigi
  • fldigi - additional UTF-8 wide character modifications
  • PSK/RTTY browser - fix erroneous character display when selected font is either missing or has corrupt bold font structure
  • Update recognition of FLAMP data stream.
  • Escape aborts clean start - Modified default key handler to prevent "escaping" out of main dialog when no other key has been pressed.
  • Thumbdrive
    • discover application executable location
    • if the directory in which "fldigi" / "fldigi.exe" resides contains a file named NBEMS.DIR then base all NBEMS file locations to that drive-folder
    • this allows a fully portble NBEMS installation to a thumbdrive (or other portable drive)
    • it also allows a very easy way to install multiple NBEMS suites for different target uses on a single hard drive
  • UTF-8 overhaul
    • Refactor get_tx_char()
    • Reset to stock version, call byte_at().  The class Fl_Text_Buffer_mod (borrowed from FLTK) contained a modified version of the method char_at() that effectively made it behave as     byte_at(). Silently modifying a library-provided method not only disables the access to a certain functionality of the library, but can also cause other unforeseen consequences. The method was thus reverted to the stock version and the code that previously called the modified version was changed to call byte_at() instead.
    • Remove unneeded code in FTextTX::nextChar()
    • Libtiniconv -Added libtiniconv (charset conversion library).  Library Version 1.0.1 fetched from http://tiniconv.sf.net
      • A small fix made to change a misspelled macro name.  Build system adapted to fit into the fldigi build model.
    • Added CharsetDistiller class
      • Sanitize input data and convert it into UTF-8
      • CharsetDistiller receives input data one byte at a time and converts this data stream from a particular character set into UTF-8. Invalid input data is treated as if it was encoded in CP1252. Character set conversion is performed as soon as possible, i.e., when enough input is received to constitute a valid character in the input character set, this character is immediatly converted into UTF-8 and made available at the output.
      • Make put_rx_char_flmain() use charsetDistiller
      • Make put_echo_char() use CharsetDistilled
      • Make pskBrowser use CharsetDistiller
    • Added OutputEncoder class
      • Used for encoding transmitted data - OutputEncoder accepts UTF-8 strings at input, converts them to the selected encoding and outputs them one byte at a time.
      • TX character set conversion using OutputEncoder
    • Fix backspace for >2byte UTF-8 characters
    • Global setting for RX/TX charset
    • Cleanup modem UTF-8 code - PSK, Olivia, MT63 and MFSK modems:
      • Everything that deals with output character set conversion and data sequencing is now done using OutputEncoder, so the modems can become completely agnostic about the character set used. As far as they are concerned, everything is just byte-sized data.
    • Added an array of character set names and identifiers
    • Cleanup of unneeded UTF-8 handling code in add_rxtx_char() and family
    • Character set selection menu - Add menu button to select the active TX/RX charset to the colors-fonts configure dialog.  The setting defaults to UTF-8 (selected at program          startup).  The selection is saved to the program defaults configuration file when "Config/Save" is executed.
  • Allow xmit of EOT character
    • Still retains use of " ^r " in the user window
    • Covers special-case for FLARQ usage where ETX should stop the modem
    • EOT character can  now be transmitted from Tx window instead of switching to Rx mode
    • Substitute symbolic names for negative return values of get_tx_char()
  • Default char set - Changed to ASCII;   Suppress control code visibility for ASCII char set
  •   Control-V/Z - disabled Control-Z use in Tx panel.  Added Tx text capture to clipboard when ESC pressed which allows subsequent Control-V paste of text back to the Tx panel
  • Pause-break - Fixed code affected by UTF-8 changes
  • WF-only-escape - Disabled default behavior of Escape key when operating in waterfall only mode
  • File Selector - Corrected error in return value to FSEL::select (fltk-1.3.x) when Cancel pressed in native file selector box.  This coding error had the potential to cause an error for           every instance where the native file selector was invoked.
  • Contest fields - increased size of contest fields
  • Status / Tx Level Controls - increased horizontal dimension to 120 pixels
  • WF only ESC abort - Capture Escape to prevent program shutdown when Escape pressed when --wo dialog has focus.
    • Rx - escape ignored
    • Tx - transmit aborted, return to Rx
    • Tune - tune aborted, return to Rx
  • WF only null pointer fix -in waterfall only mode, bypass text logging of rx stream
  • Spotting - Added user configurable spotting using signal browser.  Spotting can be disabled if viewer is not visible; reduces CPU load if selected
  • ADIF case - Changed import parser to treat fields specifiers as case insensitive.
  • TX lower case - User configurable transmit all text in lower case.
  • WX parser - Update station name parser iaw new METAR format.
  • Signal Browser - Corrected alternate line background. Changed due to fltk-1.3.2 changes.  Added user configurable line colors
  • Dbl Click for Xchg In - Added double click recognition for appending to exchange in when logbook displays contest fields.  Shift-left-click performs the same function as double-left-click
  • Status Reports - Reduced size of status reports when changing Bandwidth, Squelch, Search Range, AFC etc.
  • About update - Updated list of principal developers
  • Signal Browser Colors - Added color initialization when instantiating mainViewer
  • Wavefile generate - Fixed menu item toggle when File i/o only selected on sound card configuration dialog
  • Tabs Colors - Added ID / QRZ tabs to color schema
  • Double Click bug fix - Double click text selection for transfer to QSO record fields
  • Colors/Fonts Dialog
    • deprecate colors/fonts dialogs
    • added functionality to configdialog on separate UI tab

Modems
  • MT63
    • Modified mt63 base and supporting digital signal processing (dsp) code to remove the fixed signal position restriction.
    • User can select either fixed 500 Hz lower tone signal format or to move the signal bandpass throughout the audio spectrum using the normal waterfall point and click
    • Changed upper waterfall cursor/bandwidth markers to lie within the bounds of the MT63 signal.  MT63 is different than other multi-tone signals in the placement of the tones within the bandwidth boundary.
    • Moved upper tone of two-tone pre-cursor up one tone space to correspond with the waterfall bandwidth markers.
  • WEFAX MODEM addition
    • Send and receive in IOC-288 and IOC-576 wefax modes.
  • PSK browser mod
    • Detector mod to limit channel range for wide bandwidth PSK modes, PSK125 and wider
  • PSK Browser-WF data
    • Changed WF FFT circular buffer to improve browser detector
    • Changed PSK channel timeout processing to reduce random channel noise.
    • Added false signal detection
  • Carrier Squelch
    • Added pre-signal transmit tone which allows triggering carrier detect / amplifier enable.  Used primarily for VHF/UHF power bricks.
    • Reduced pre and post RsID silence periods to 1 RsID symbol length (~0.0988 sec).
  • RsID code additions
    • CONTESTIA 4-125
    • CONTESTIA 4-1000
    • CONTESTIA 4-2000
    • CONTESTIA 8-2000
    • CONTESTIA 16-2000
    • CONTESTIA 32-2000
    • CONTESTIA 128-2000
    • CONTESTIA 64-500
    • CONTESTIA 64-1000
    • CONTESTIA 64-2000
    • OLIVIA 4-125
    • OLIVIA 4-1000
    • OLIVIA 4-2000
    • OLIVIA 8-2000
    • OLIVIA 32-2000
    • OLIVIA 16-2000
    • OLIVIA 64-2000
  • CW Morse Prosigns
    • Modified prosign / character translation
    • Simplified morse table structure
    • Print translated prosign character when transmitted
    • Allow user selection of ')' or <AR> prosign both have same Morse representation
    • Added style override for both put_rx_char and put_echo_char functions.  Allows prosigns to be display using CTRL style.
    • Modified xml generator for fldigi_def.xml to suppress xml key characters in the xml documentation block
  • Added 4/500 and 64/2000 to menu choices for Olivia tone/bw
  • RTTY MARK coloring - Added configurable item to modify color of RTTY mark waterfall track line
  • RTTY MARK frequency - User configurable option to log RTTY using MARK frequency
  • DTMF decode which can be used in parallel with all modems.  Decoded tone data shown in Rx pane
  • WWV xmt mode
    • Added sound card time tick transmit
  •   RTTY baudrate select
    • Corrected Macro selection of RTTY:45.45
    • Changed status display to show 45.45 vice 45.5
  • CW/RTTY init fault
    • Modified transmit code for rtty preamble
    • Added missing stopflag initialization in CW and RTTY modem class
  • CW QSK
    • Discard all pre/post timing if QSK on right channel is disabled
  • WEFAX
    • Added wefax::adjust_metric method.
    • modem::display_metric now sets the member modem::m
  • MFSK soft decode - Corrected viterbi puncture value to 128 which represents neither a 0 nor a 1
  • RSID defaults - Changed RSID new installation defaults per request from NBEMS trainers.
  • Wefax enhancements.
    • Adjustable carrier frequency. Can adjust the carrier frequency from the GUI.
    • All messages are now internationalised.
    • Images absence/presence better detected also with line-to-line statistic correlation.
  • WEFAX error logging fix - Fixed format compiler warnings and errors.
  • WEFAX update
    • When changing wefax slant, prompts to save configuration on exit.
    • Changed wefaxNNN to wefaxNNN_modem
    • Changed sample rate initialization
    • Fixed prototype for wefax::getfile
    • Fixed logging of fax images.
  • MFSK pic dnd - Fix drag-n-drop of file onto MFSK transmit pic dialog
  • QSK test - Added test for CW mode && QSK_adjust to inhibit display of Tx characters in Rx Panel.
  • CW improvements
    • Cooperative programming effort, Dave, W1HKJ and Mauri, AG1LE
    • Added matched filter implementation using FFT convolution filter
    • Added Self Organizing Map decoding.
    • Added adjustable upper/lower detection levels
    • Added level indicators on CW digiscope
    • Combined new fft-convolution filter, SOM decoder & FIR filter
    • Added configure controls for filter selection
    • Modified CW digiscope display to show 9 dot intervals independent of WPM setting
    • Increased CW_FIR length to 512
  • WEFAX
    • Ported from branch 3.22.0
    • The tx and rx windows can be displayed separately as now, or embedded in the main window.
    • Added wefax tab in configuration menu.
    • Max rows number, and adif log flag now stored in configuration.
    • Destination directory can be set in configuration menu with Fl_File_Chooser.
    • Added option for opening tx window from main menu (Like the rx window).
    • Shift can ba changed, default 800. Can be set to 850 Hz for Deutsche Wetterdienst.
    • Wefax adif log flag now in configuration (And is memorized).
    • When clicking on a received file, the image is displayed in the tx window.
    • Internationalization.
    • Transmit image can be zoomed. Default zoom 50% like rx image.
    • Suppressed duplicate info messages.
    • The generated image is now really back and white.
    • Display speedup.
    • Fax can be saved in monochrome, takes less disk space.
    • New option to reduce noise on images.
    • Changed RX interface: Non-stop reception is now easier.
    • Image RX starts ten lines earlier when high correlation detected.
    • Display speed-up when zoomed.
    • Cleaner indexing of correlation buffer
    • Automatic Frequency Control.
    • LPM default value for Wefax288.
    • Set compression flag for PNG images.
    • Refined AFC (Stable frquency once an image is loaded).
    • Adjusted widgets size.
    • Lowered max image height.
    • Added image binarization.
    • Changed default image mode to monochrome.
    • Smoother slant correction
    • Adjustment to constant frequency detection (Hamburg).
    • Changed max image size.
    • Added variable threshold for binary image.
    • Added erosion/dilatation for fax enhancement (Experimental, disabled).
    • More information when cannot load playback WAV file.
    • Speedup waterfall display.
    • Changed wefax AFC logic for setting frequency (Median/average).
    • Fixed filenames list which was not scrollable.
    • Save more information in images metadata.
    • Change selected band for AFC detection.
    • Changed level for APT start/stop detection. Now checks several lines.
    • Added strformat for C-style string formatting.
    • Better AFC.
    • Default max image size is increased.
    • More information saved with fax images.
    • More filtering of empty blank images based on correlation etc...
    • Change to use phasing information to stop images.
    • Phase inversion flag is now constant.
    • Detection of apt start on four successive lines instead of three only.
    • Detection of apt stop on three successive lines instead of two only.
    • Removed apt stop frequency detection (Too many false stops).
    • Fixed bad proportion of sent faxes (They were vertically stretched).
  • NAVTEX/SITORB - new Rx modems
  • CW Farnsworth
    • Changed method of generating Farnsworth code
    • Added Farnsworth specifier to WPM macro tag;  <WPM:WW:FF> WW = WPM, FF = Farnsworth WPM
  • ASCII RTTY bug fix - corrected missing echo of transmit text in receive panel
  • RTTY squelch / metric.  Improved method of computing signal metric for squelch use.  Operates correctly with very narrow band transceiver filters.
  • Restored ability to send rsid at end of transmission
  • RTTY CR-CR-LF - Added code to suppress print of double carriage returns
  • MT63 Long - Changed configuration item for MT63 long interleave to 1 (vice 64)
  • Added new modem types (see fldigi_changes.txt)
  • Thor reset - added new thor modem types to function resetTHOR
  • CW modem
    • Noise suppression - Corrected decoder reset when noise detected
    • Filter coefficients - removed integer dependency
  • RTTY FSK modem - This patch contributed to by W1HKJ, Dave Freese <w1hkj@w1hkj.com>, and DO2SMF, Stefan Fendt <smfendt@gmail.com>
    • Waveshaped FSK modem for classic RTTY using raised cosine matched filters
    • Selectable Kahn or ATC demodulator
    • RTTY scope based on separate mark / space filter outputs
    • Corrected s/n estimator
    • Change RTTY browser to new demodulator
    • Fixed missing browser highlight for callsign detection
    • Bypass Viewer signal processing if viewer(s) are not visible - significantly reduces % CPU use
    • Separated psk-rtty range/value pairs for viewer squelch control.
  • Olivia FEC reset - Added user control to enable/disable automatic reset of FEC integration depth when BW / Tones are changed either by user or via RsID reception.
  • PSK viewer - Suppress psk viewer decoding if neither viewer is visible.
  • RTTY bug fix - Missing initialization for Cmovavg bit filter pointer
  • RTTY filters - added Modified Lanzcos RTTY Rx filter
  • RTTY config tab - Cosmetic corrections
  • RTTY stop bits - remove forced return to 1.5 stop bits for Baudot
  • Analysis - Added timeout value to extinguish status message
  • RTTY filters
    • Removed deprecated Hilbert transform
    • Corrected inverse FFT computation to provide unity gain h(t) -> H(w) -> h(t)
    • Added design output statements to fftfilt.cxx - normally disabled
    • Removed deprecated lpfilt, bitfilt, bp_filt_lo, bp_filt_hi
    • Improved X-scope update rate
    • Removed unused methods and members
  • RTTY tx symbol shaper
    • Correction to the placement of the additional zeros.
  • RTTY config tab
    • reorganized RTTY configuration tab
  • RTTY tx code
    • Added [] to array deletion statement
  • RTTY no LF
    • Display rx stream when a CR and no subsequent LF is received
  • Contestia/Olivia
    • Quick change / custom dialog
    • Corrected Contestia callback in confdialog.fl
    • Corrected resetOLIVIA function
  • RTTY update
    • Removed code used for filter tests
    • Added CWI suppression, select decoding of - Mark-Space - Mark only - Space only
  • MT63 mode selection - Changed to specifed short/long MT63 mode selection
    ie:  MT63-500S / MT63-500L
         MT63-1000S / MT63-1000L
         MT63-2000S / MT63-2000S
    Interleave no longer a configuration item, but fixed by mode selection
    S - short, 32 bit
    L - long, 64 bit
  • Contestia/Olivia
    - Quick change / custom dialog
    - Corrected Contestia callback in confdialog.fl
    - Corrected resetOLIVIA function
  • RsID Timeout - Modified rsid detection time out for secondary rsid sequence
    • removes reliance on OS timing
    • time out now dependent on sound card sampling only

NBEMS specific changes
  • Abort ARQ
    • Added call to Abort_ARQ when double ESC pressed (panic)
    • Added supporting code in modem class.
  • FLMSG open NBEMS/WRAP/recv folder
    • Added code to allow reception of an flmsg wrapped file to open the default file explorer to the folder containing the new file.
  • TX file insertion
    • For both file insert and drag-n-drop insert into the Tx widget
    • Change all occurrences of ^ to ^^.
    • Effect is to treat all dnd text as plain text without special fldigi control sequences.
  • FLMSG open data file in browser
    • Added code which causes fldigi to open flmsg with data file such that the data is unwrapped and displayed in the default html browser.
    • Used in this way, flmsg performs the yeoman duty of unwrap, identification, file saving and launching the browser.  It never opens on the desktop
    • Added ability to open both flmsg and default browser with successfull data stream decode
  • NBEMS-FLMSG Directories
    • Allow user specification of FLMSG directory as a command line argument --flmsg-dir "full-pathname-directory"
    • Defaults - Linux / OS-X $HOME/.nbems
    • XP C:\Documents and Settings\<user>\NBEMS.files
    • Vista/Win7 C:\Users\<user>\NBEMS.files
  • ARQ Parse Mode
    • Removed REQ_SYNC calls from push2talk invocation
    • Added bounds tests on PTTTUNE:nnnn <modem> parameter PTTTUNE enables CAT ptt, but does not inject an audio signal
    • Added XMTTUNE:nnnn parameter to enable CAT ptt and inject a 100% modulation audio sine wave
  • Socket send on Linux - Modified socket send routine to test for kernel send socket failure
  • Extract timeout - Removed 16384 size limitation on WRAP file extract processing.  Added 10 second timeout.  Extract process reset after a 10 second period of no incoming text.
  • WRAP binary files - Add character handling in Rx for both received and transmit echo characters when sending binary data.
  • flmsg/flamp stream processing - added parsing of cmd line parameters when opening flmsg upon completion of wrap file extraction.  Added parsing of flamp text streams.  Modified socket arq to separate socket i/o from both signal processing and main thread.
  • DominoEX varicode - Corrected table entries for { } characters.
  • ARQ rx/tx
    • Added tx code to correct transfers of 8 bit ARQ data.  Needed to circumvent recent UTF-8 char support when transferring data files.
    • Added status bar notification when AMP extraction is being processed.
    • Removed timeout on "Extracting FLAMP" and "Extracting FLMSG" status messages.
  • NBEMS.DIR -  Modify test for NBEMS.DIR file presence to show more info in event log. Be careful when creating the NBEMS.DIR file on Windows.  Windows has a habit of adding it's own concept of what the file name extension should be.  For example:
       XP named the file NBEMS.DIR.txt when a blank file was created using the file explorer metaphor.  NBEMS apps could not find the file and the ".txt" extension is hidden from the users view in the file explorer.
  • ARQ Socket
    • Fix for ARQ socket crash due to thread conflicts
    • Added additional mutex to protect transmit queue
    • Added additional lock/unlock mutex blocks
    • Added code to put socket close() within a try {} catch {} block
  • Get RX buffer - increased get_rx_data buffer size to 4096. short buffer size caused loss of ARQ data
  • Add function modem->rx_flush() to flush receiver buffer to the receive window on RSID modem reset/change.
  • Repetitive conditional statements removed by reordering code flow rsid::apply(). This also fixes reported bug by garylinnrobinson "RxID bug fix that affects Olivia, Contestia, MFSK, RTTY"
  • Add widget and control to retain frequency lock during a modem reset/change.
  • Add widget and control to disable/enable frequency change during a RSID request while allowing modem change.
  • Add widget and control to disable/enable Contestia FEC Block reset on modem change/reset.
  • Moved data flush function above RSID message output
  • Double Click bug fix - Double click text selection for transfer to QSO record fields
  • Tabs Colors - Added ID / QRZ tabs to color schema
  • ARQ server - Changed ARQ server / client management.  Old implementation would cause Tx audio stream to be interrupted by client services.
  • PSKMAIL - Test changes to avoid pskmail lockup for certain control code sequences.
  • PSKMAIL - write s2n / rsid encapsulated within required mutex to correct misalignment of ARQ strings.



Logbook / Logging
  • Logbook sort order (date/time) initialized based on last use
  • Added GRIDSQUARE to csv and text output reports.
  • RX-TX log file
    • Added Frequency : Mode to Rx/Tx lines in the file [fldigi folder]/fldigi.log where [fldigi folder] is OS and installation dependent
  • IPC Date report
    • Changed IPC log date to DATE-OFF format dd Mmm yyyy
  • ADIF format fault
    • Corrected formatting fault of ADIF output.  Fault caused when field data string exceeded 100 characters.  Fault prevalent on Windows platform by virtue of temporary ADIF file used to populate external log files.
  • CONTESTIA
    • Shortened ADIF reporting name to CONTESTI.
  • IARU Maidenhead
    • Changes to documentation, alerts, and hints to reduce  misunderstanding regarding terms IARU locator and Maidenhead locator.
  • Added enable/disable RST out default to 599 control on UI/General [logging] tab
    • changed contest 599 defaults to work only with contest logging panel(s)
  • clear QSO logging widgets on program start
  • Added code to convert uppercase operator name to camel case for all lookups.
  • Changed structure of logbook menu items
  • DATE_TIME sorting
    • Added user selection for date/time ON or OFF sorting
  • Cabrillo & ADIF exports follow the ON / OFF selection
  • Logbook browser follows ON / OFF selection
    • Added user selection to force DATE/TIME ON == DATE/TIME OFF
  • QSO_DB sort order
    • Corrected bug in date-time sorting of the logbook database.
    • Sort is now by DATE and TIME vice DATE and TIME_OFF
  • Added http://callook.info lookup to QRZ queries
  • QSO_DATE_OFF field implementation
    • Implementation of QSO_DATE_OFF field in the logbook according to ADIF 2.2.3 and up specification.
  • Time Macros
    • Corrected <QSOTIME> to update with logging field
    • Added:
    • <LT> local time as HHMM
    • <ZT> zulu time as HHMMZ
    • <LD> local date as YYYY-MM-DD
    • <ZD> zulu date as YYYY-MM-DD Z
  • Logbook Field Sizes
    • Removed size restrictions on qso_db record fields
  • Log Sort
    • Changed logbook sort to DATE-ON / TIME-ON comparison
    • Changed logbook browser to show DATE-ON / TIME-ON vice DATE / TIME-OFF
  • PH Cabrillo report
    • Added SSB to USB, LSB, PH log entries which generate the PH Cabrillo report category.
  • Removed PSK restriction to spotting / notifier events
  • Added QSO_DATE_OFF to the file record
  • Logbook client for fllog server
    • Added xmlrpc logbook client
    • Added configuration tab for logbook server connection
    • Added retention of address/port in fldigi_def.xml file
    • Added ability to reconnect to the server when addr/port changed
  •   Log Server lookup
    • Added cty.dat search when connect to log server
    • cty.dat must be installed in the current fldigi files directory
  • Added www.hamqth.com callsign lookup
  • HamQTH query
    • Added error statements to notes
      • Failure to obtain certificate
      • Callsign not found
    • Corrected parsing of QTH and QSL_VIA
  • QRZ on-line lookup - Changed on line lookup URL format to comply with changes to QRZ.com
  • Use Logbook record - Added Dial button in logbook editor to set frequency / mode / operator to the the current record.  Allows easy retrieval of logged data to either continue a QSO or set one up based on a log entry.
  • Log r/w improvements
    • Created separate thread for writing database.  User with over 35,000 records was experiencing UI interruption of several seconds on Windows XP system.
    • Removed compatibility code from log r/w.  Logs prior to 3.1 will read but some fields will be ignored.
    • Added new method "newrec" to CQsoDb class.
    • Modified logbook read and write behavior to eliminate duplication and employ faster string lookup algorithm in matching ADIF tags to internal database entries.
  • Restore Log Sort - After adding a record
  • Ignore slash postamble callsign internet lookup.
  • Log Export by date - Added ability to export logbook for a date range
  • Added hamQTH.com web based lookup
  • Added ability to simultaneously use both web and xml based call lookups
  • Callsign query - Changed NOTES field behavior to append to current contents vice replacing field contents from on-line query report.
  • Merge record logic error - Corrected logic error in merge logbook function
  • HamQTH
    • Test for expired session_id
    • Request new session_id if expired
  • Log Entries
    • Changed position and size of fields to make better use of the space in logging panel
    • Country & Notes resize with horizontal resize of main dialog
    • No labels on these two fields - tooltips identify use
    • Added button shape to the "On" label for Time On
  • Logbook Update - Time ON/OFF
    • Added seconds to logged time
    • Update older records to use seconds, default 0
    • Add seconds to time sort
  • QRZ query notes-  removed '\n' character if field returns empty
  • Merge log records - Correction to merge logic for HHMMSS in TIME_ON, TIME_OFF.  Fix for possible seg fault during record merging
  • Log file update - Write UTF-8 to log file
  • TLF arq - Restored use of gmfsk_autosend file for TLF. Change requested by new TLF maintainer, Tom Beierlein, DL1JBE
  • Logbook Dialogs - Changed modality of Export and Cabrillo dialogs to fix issue on OS X with hidden calendar pop up.
  • Dup Cty lookup - Enabled concurrent duplicate check and cty lookup for country / azimuth.
  • QRZ query - Added LOG_DEBUG statement to allow user to review query and response strings sent / received from QRZ, Hamcall, HamQTH etc.  Improved fields parsing for QRZ and HamQTH data response
  • eQSL url - Added suppression of CR/LF, control characters and characters > 0x7e from the eQSL url string.



Windows Specific Changes
  • Changed interface method to connect to DigiTalk autostart no longer initiated unless so configured
  • Changed Connect button on Misc tab to provide for both connect and disconnect
  • Added new macro tags to allow DigiTalk connect / disconnect using function keys
  • <TALK:on|off|t> start, stop, toggle the connection to the DigiTalk socket server
  • Suppress WARNING messages when using a Virtual Serial Port VSP's will occassionally fail to respond within the timeouts set for a h/w port.
  • ADIF/EQSL thread shutdown
    • removed ADIF_close and EQSL_close execution from program shutdown process.  Caused shutdown hangup on some Windows systems.
    • added deletion of temporary log database class on exiting write routine.
  •     Win7 Open Logbook - Changes to accommodate Win7 random failure to read logbook on program  startup.
  • Path separator - Removed special handling of path separator for WIN32 implementation.  Effected ability to properly save logbook etc.
  • Capture Alt-F4 - Capture the Alt-F4 key combination in main dialog handler.  Windows does not provide shutdown signal to application when Alt-F4 is pressed.

OS X Specific Changes
  • OSX Lion shutdown
    • close all dialogs except main dialog on close
    • add configuration items
    • SaveConfig : save fldigi_def.xml on exit (if changed)
    • SaveMacros : save macro mdf file on exit (if changed)
    • Normal shut down with prompts if File/Exit menu item selected
    • Shut down without prompts for saved config, macros or log entry if window decoration "X" is used to exit program.
    • cmd-Q exit event allows normal program shut down
  • native-file-chooser - Update to Native File Chooser widget.  Passes corrected parameters ... OS X very pedantic on parameter format
  • Logbook Call width - Base Freq / Call control width on width of string "WW/WW8WWW/WW." vice "99.99999"99.

BUILD Issues
  • Added mode_info table restrictions which caused segmentation fault on builds created using 4.6.x gcc compilers
  • Corrected op-mode menu hide/show logic
  • XMLRPC linking error
    • Removed -lpthread from xmlrpc.m4 generation of XMLRPC_LIBS - newer gcc linker faults if -lpthread is out of order
  • Compile warnings - Changed code to correct for some warning messages on newer gcc compilers
  • Main thread hang - Mai thread would deadlock during initial read of logbook.  This was reported and duplicated on Linux and OS X systems.  Added timeout call to execute initialization routines that might modify any UI element after Fl::run() is executed
  • Fixed OS X "Native File Chooser" crashes
  • Debug changes
    • removed popup dialog messes on first encounter of ERROR / WARN message
    • fl_message dialog could be hidden behind other open dialogs such as signal browser, logbook or main dialog.  Result was apparent loss of focus for main dialog on Windows OS.
    • moved debug::stop() to clean_exit function to prevent leaving zombie debug window visible when closing down application
  • Fix TX text clear after macro
    • When built with FLTK1.1, FTextTX::clear_sent() fails to clear the TX text after transmitting it, so it gets transmitted again every time TX is initiated.  (When macro keys are used, it appears as though fldigi gets "stuck" on the first macro sent).
    • The bug occurs because FTextTX::clear_sent() should consider txpos, not utf8_txpos, for FLTK1.1 builds, as this patch implements.
  • Open BSD fixes - Changes to allow correct build on Open BSD
  • Fix crash if no OSS mixer support
  • DistCheck cleanup - added uninstall NAVTEX_Stations.csv to src/Makefile.am
  • Added code to allow source reversion to use Fltk-1.1.10 lib
  • Libtiniconv - Removed Makefile.am, Added README.FLDIGI, Added COPYING, AUTHORS, README, README.FLDIGI to list of files included in distribution tarball.
  • ARQ server - Changed to multiple client model
  • NetBSD compile error - xmlrpc lib build; the original sed script eats space chars around '-lpthread', causing g++ (4.7): unrecognized option '-pthread-lrt'.
  • Compiler Warnings - Fixes to quiet compiler warnings
  • Free BSD mods - Changes required by recent Free BSD library mods
  • flstring - removed flstring.h flstring.c from source -  contained in fltk-1.3.1 ...
  • Serial by-id - Added ability to find serial ports by device id;  /dev/serial/by-id/ and the traditional /dev/tty...
  • CRC16 and ANSII char set - corrected CRC16 computation to allow for characters larger than 0x7F.
  • Fix glob_t usage - Only declare glob_t variable on systems which use it, otherwise build fails on systems (kfreebsd) which don't supply (or try to use) glob_t.
  • Compiler warning fix - gcc 4.5.2 compiler warning for parenthesis ambiguity
  • Fltk backward compatibility - Code changes to maintain backward compatibility to fltk versions prior to 1.3.2.  Revised fltk.m4 to test for MAJOR, MINOR & PATCH levels
  • xmlrpc-c removal - Replaced xmlrpc-c by embedded xmlprcpp
  • Fltk backward compatibility - Code changes to maintain backward compatibility to fltk versions prior to 1.3.2; revised fltk.m4 to test for MAJOR, MINOR & PATCH levels
  • Compiler warning fix - gcc 4.5.2 compiler warning for parenthesis ambiguity
  • Fix glob_t usage - Only declare glob_t variable on systems which use it, otherwise build fails on systems (kfreebsd) which don't supply (or try to use) glob_t.


Screen shots (click thumbnail for a full size image):


Ubuntu

Vista

XP

Puppy

OS X


W1HKJ Home Page