Fldigi

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Fldigi
DevelopersDave Freese (W1HKJ), et al.[1]
Initial release2007
Stable release
4.2.05 / 23 April 2024; 2 years ago (2024-04-23)[2]
Repositorysourceforge.net/p/fldigi/fldigi/ci/master/tree/
Written inFLTK, C, C++
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemWindows, macOS, Linux, Android, FreeBSD[3]
    PlatformIA-32, x64, IA-64, armel, armhf, mips, mipsel, PowerPC, s390, s390x, SPARC, Raspberry Pi
    SizeAbout 6.5 MB
    Available in10 languages
    List of languages
    English, Catalan, Dutch, French, German, Greek, Italian, Polish, Spanish, Russian
    TypeAmateur radio and DSP
    LicenseGPL version 3.0

    Fldigi (short for Fast light digital)[4] is a free and open-source program which allows an ordinary computer's sound card to be used as a simple two-way data modem. The software is mostly used by amateur radio operators who connect the microphone and headphone connections of an amateur radio SSB or FM transceiver to the computer's headphone and microphone connections, respectively.[5][6]

    This interconnection creates a "sound card defined radio" whose available bandwidth is limited by the sound card's sample rate and the external radio's bandwidth.

    Such communications are normally done on the shortwave amateur radio bands in modes such as PSK31, MFSK, RTTY, Olivia, and CW (Morse code). Increasingly, the software is also being used for data on VHF and UHF frequencies using faster modes such as 8-PSK.

    Using this software, it is possible for amateur radio operators to communicate worldwide while using only a few watts of RF power.

    Fldigi software is also used for amateur radio emergency communications when other communication systems fail due to natural disaster or power outage. Transfer of files, emails, and FEMA ICS forms are possible using inexpensive radio hardware.[7][8][9][10]

    Supported digital modes

    [edit | edit source]
    Mode name Speeds supported Custom modes
    Morse code CW 5–50 words-per-minute Yes
    PSK 31, 63, 63F, 125, 250, 500, 1000 No
    FSQ 2, 3, 4.5, 6 No
    IFKP[11] 0.5, 1.0, 2.0 No
    Contestia 4/125, 4/250, 8/250, 4/500, 8/500, 16/500, 8/1000, 16/1000, 32/1000, 64/1000 Yes
    DominoEX Micro, 4, 5, 8, 11, 16, 22, 44, 88 No
    Hellschreiber Feld Hell, Slow Hell, Feld Hell X5, Feld Hell X9, FSK Hell, FSK Hell-105, Hell 80 No
    MFSK 4, 8, 11, 16, 22, 31, 32, 64, 64L, 128, 128L No
    MT63 500S, 1000S, 2000S, 500L, 1000L, 2000L No
    Navtex Navtex No
    Olivia 4/250, 8/250, 4/500, 8/500, 16/500, 8/1000, 16/1000, 32/1000, 64/2000 Yes
    QPSK 31, 63, 125, 250, 500 No
    8PSK 125, 250, 500, 1000, 125FL, 250FL, 125F, 250F, 500F, 1000F, 1200F No
    PSKR 125R, 250R, 500R, 1000R No
    RTTY 45.45/170, 50/170, 75/170, 75/850 Yes
    SYNOP SYNOP No
    THOR Micro, 4, 5, 8, 11, 16, 22, 25x4, 50x1, 50x2 100 No
    SITORB SitorB No
    Throb / ThrobX 1, 2, 4   /   X1, X2, X4 No
    WEFAX IOC-576,[12] IOC288 No
    OFDM 500F, 750F, 3500 No

    Portability

    [edit | edit source]

    Operating systems

    [edit | edit source]

    Fldigi is based on the lightweight portable graphics library FLTK and the C/C++ language. Because of this, the software can run on many different operating systems such as:

    Additionally, Fldigi is designed to compile and run on any POSIX compliant operating system that uses an X11 compatible window system / graphical user interface.[17]

    Architectures

    [edit | edit source]

    The Fldigi software is written in highly portable C/C++ and can be used on many CPU architectures, including:

    Sound systems

    [edit | edit source]

    Multiple sound systems are supported by Fldigi, allowing the program to abstract the sound card hardware across differing hardware and operating systems.

    Features

    [edit | edit source]

    The Fldigi Suite

    [edit | edit source]

    The "Fldigi Suite" consists of the Fldigi modem and all extension programs released by the same development group. Most of these extensions add more capabilities to Fldigi such as verified file transfer and message passing. Interconnection between these programs and the Fldigi modem is made over TCP/IP port 7322.[22]

    Some of the Suite are however standalone programs used for utility or testing purposes only, with no connection to the Fldigi main modem.

    Flamp

    [edit | edit source]

    Flamp implements the Amateur Multicast Protocol by Dave Freese, W1HKJ[23] and is a tool for connectionless transferring of files to multiple users simultaneously without requiring any existing infrastructure. The program breaks a given file into multiple smaller pieces, checksums each piece, then transmits each piece one or more times. When all parts are correctly received the sent file is re-assembled and can be saved by receiving stations.[24] This program is useful for multicasting files over lossy connections such as those found on High frequency (HF) or during emergency communications.

    Flarq

    [edit | edit source]

    Flarq implements the ARQ specification developed by Paul Schmidt, K9PS[25] to transfer emails, text files, images, and binary files over radio. This protocol is unicast and connection-based. The software seamlessly integrates with existing email clients such as Microsoft Outlook, Mozilla Thunderbird, and Sylpheed.[26]

    Flmsg

    [edit | edit source]

    Flmsg allows users to send, receive, edit, and create pre-formatted forms. Such a system speeds the flow of information during emergency communications. The software has a number of forms built-in including FEMA ICS forms, MARS reports & messages, Hospital ICS forms, Red Cross messages, IARU and NTS messages.[27]

    Flwrap

    [edit | edit source]

    Flwrap is a tool for the sending of files using a simplified drag and drop interface. Data compression is available also, which reduces data transfer times.[28]

    FLNet

    [edit | edit source]

    FLNet assists net control operators in keeping track of multiple stations during digital amateur radio nets.[29]

    FLLog

    [edit | edit source]

    FLLog is a logging software which keeps track of conversations between amateur radio operators in a database format known as ADIF.[30]

    FLWkey

    [edit | edit source]

    FLWkey is a simple interface to control an external piece of hardware called a Winkeyer.[31] This is a Morse code keyer which is adjustable via computer commands over USB.[32]

    Flcluster

    [edit | edit source]

    This is a telnet client to remote DX cluster servers, which is a real-time reporting of stations heard transmitting, and their frequencies. It does not connect to Fldigi.[33]

    Flaa is a control program for use with the RigExpert AA-xxxx series of antenna analyzers, and does not connect to Fldigi.[34]

    Flrig

    [edit | edit source]

    FLRig is a component of the FLDigi suite of applications that enables computer aided control of various radios using a serial or USB connection.[35]

    Using FLRig in combination with FLDigi, events such as frequency, power level, receiver gain and audio gain may be adjusted from the computer automatically or by user intervention.

    Test tools

    [edit | edit source]

    The Fldigi development group also releases a number of open-source programs which assist in the testing, development, and comparison of different modes within Fldigi, such as LinSim, CompText, and CompTTY.

    To identify the mode being transmitted a signal called an RSID, or Reed-Solomon Identifier, can be transmitted before the data. Using this identifier the receiving software can automatically switch to the proper mode for decoding. The assigning of these identifiers to new modes is coordinated to ensure inter-operation between programs.[36] Currently 7 sound card-digital-modem programs support this standard:

    • PocketDigi
    • FDMDV
    • DM780
    • Multipsk
    • Fldigi
    • AndFlmsg
    • TIVAR

    RSID operates by sending a short burst of a specific modulation before the data signal, which can be used to automatically identify over 272 digital modes. This burst consists of a 10.766 baud 16-tone MFSK modulation where 15 tones/symbols are sent. The burst occupies 172 Hz of bandwidth and lasts for 1.4 seconds.[36]

    Software architecture

    [edit | edit source]

    For simple keyboard-to-keyboard communication Fldigi can be operated using just the main window. For more complex uses or file transfer external programs can be attached to the internal TCP/UDP ports 7322 (ARQ), 7342 (KISS), and 7362 (XML-RPC).

    The image below helps to illustrate the interconnections and signal-flow within the Fldigi architecture.

    Fldigi softmodem flowchart
    Fldigi softmodem flowchart

    Community-provided extensions

    [edit | edit source]

    Fldigi allows external programs to attach and send / receive data by connecting to port 7322/ARQ or 7342/KISS. When used this way, Fldigi and the computer's sound card are acting as a "softmodem" allowing text or data sent on one computer to be transferred using the wireless radio link in-between. Programs which have a history of use with Fldigi as the underlying modem include:

    • D-Rats - easy to use chatrooms, email, and file transfer over-radio.
    • PSKmail - send and receive on-internet e-mail over a remote radio connection.[37]
    • Fldigiattach - attach Fldigi as modem for Linux AX.25 and TCP/IP connections.
    • UIChat - Java-based amateur radio chat program.
    • LinkUP - Program for unattended operation and person to person chat.
    • Linux - Fldigi can be used in Linux as a KISS (TNC) modem for AX.25 and TCP/IP connections.

    Awards and recognitions

    [edit | edit source]
    • At the 2014 Dayton Hamvention the project lead, Dave Freese (W1HKJ), was recognized with the Technical Excellence Award "for his development and distribution of the Fast Light Digital Modem Application (fldigi) family of programs for use in amateur and emergency communications."[38]
    • Fldigi was selected as SourceForge's June 2017 Staff 'Project of the Month'[39]
    • Fldigi was one of SourceForge's 'Projects of the Week' for Oct 17, 2016[40]
    • Fldigi was selected as SourceForge's December 2017 Community Choice 'Project of the Month'[41]

    Notable users

    [edit | edit source]

    Disaster relief services

    [edit | edit source]

    The software is also utilized by some organizations for both routine and disaster/emergency relief services.

    Shortwave broadcasters

    [edit | edit source]

    Following the successful tests by the Voice of America's VOA Radiogram program, international and government shortwave broadcasters began testing and experimenting with digital data over shortwave broadcast channels using the Fldigi software.[50] These tests led to regular weekly digital broadcasts by the broadcasters listed below.

    The Fldigi suite of programs has become popular within the U.S. Army and U.S. Air Force Military Auxiliary Radio System.[56][57]

    Department of Homeland Security

    [edit | edit source]

    Fldigi is being used in-testing as part of the United States Department of Homeland Security Shares program, which utilizes "existing HF radio resources of government, critical infrastructure, and disaster response organizations to coordinate and transmit emergency messages"[58][59]

    PSK Mail

    [edit | edit source]

    Fldigi is used as the underlying modem for the PSKmail project.[37] PSK Mail allows users to retrieve and send normal emails over radio.

    AirChat

    [edit | edit source]

    In 2014, the group Anonymous released a communications tool named AirChat, which used Fldigi as the underlying modem. This provided a low speed yet reliable data connection using only moderate radio hardware. The AirChat software allows for anonymous transmissions of both encrypted and unencrypted messages over unencrypted channels.[60][61][62]

    Decodeable broadcasts

    [edit | edit source]

    The broadcasts listed below are transmitted on a regular schedule and can be decoded using Fldigi.

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Introduction arrl.org
    9. ^ a b NBEMS — a Digital Emcomm Tool w1hkj.com
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ Long Haul VLF/LF/HF Data Networks liltechdude.com
    21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    23. ^ FLAMP Amateur Multicast Protocol 3.0 w1hkj.com
    24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    26. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    27. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    29. ^ FLNet sourceforge.net
    30. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    31. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    33. ^ Flcluster sourceforge.net
    34. ^ Flaa sourceforge.net
    35. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    36. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    37. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    38. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    39. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    40. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    41. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    42. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    43. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    44. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    45. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    46. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    47. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    48. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    49. ^ Hawaii skywarn net activation skywarnforum.com [dead link]
    50. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    51. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    52. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    53. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    54. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    55. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    56. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    57. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    58. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    59. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    60. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    61. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    62. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    63. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    64. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    65. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]
    • Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).