Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/KM4YRI/pyFldigi

Python library to control FLDIGI via XML-RPC
https://github.com/KM4YRI/pyFldigi

fldigi ham-radio modem morse psk python python-library rtty sdr ssb xml-rpc

Last synced: 30 days ago
JSON representation

Python library to control FLDIGI via XML-RPC

Awesome Lists containing this project

README

        

# pyFldigi

[![Build Status](https://travis-ci.org/KM4YRI/pyFldigi.svg?branch=master)](https://travis-ci.org/KM4YRI/pyFldigi)

## Summary / Context

pyFldigi is a small Python library that can control the Fldigi application via XML-RPC.

Fldigi is a digital modem application that is widely used in the amateur radio community. It acts as a digital modem, intended to be coupled with a standard SSB or FM transceiver radio.

## Features

* Full implementation of the available [XML-RPC client](http://www.w1hkj.com/FldigiHelp-3.21/html/configuration_page.html) commands]
* Get FLDIGI version, name, etc.
* **Modem**: Get and set the modem type, carrier frequency, bandwidth, etc.
* **Modem**: Get and set various modem configuration options for Olivia, WEFAX, and NAVTEX
* **Transmit**: Set RX/TX mode to Transmit, Receive, or Tune.
* Abort a transmit or tune.
* **Squelch**: Get or set the squelch
* **Rig control**: Get or set various rig controls, such as frequency, mode, etc.
* **Logging**: Get and set various log field contents. This is in the context of ham contact logs, not debug logs.
* **Text**: Send text to FLdigi to be transmitted
* **Text**: Get text from FLdigi that has been received
* **Terminate the Program**: Terminate the program gracefully by asking it to close.
* Application monitoring and launching. It is possible to launch FLdigi from a Python command, and monitor it. Also the program can be killed if it refuses to shut down gracefully.
* **Configuration**: TBD. Reading and writing of the configuration file(s). Requires a restart of FLdigi.

## Applications and Intended Usage

* Remote weather stations.
* Portable HF setups. Typically, HF digital setups are bulky and require several interconnected pieces of hardware, usually via audio cables. This library, along with some custom hardware, could allow a walkie-talkie sized HF digital radio that's completely integrated.
* Emcomm
* 'Headless' operation on a Raspberry Pi, BeagleBone, or any number of other Linux-based single-board computers.
* Putting a more 'user-friendly' GUI on top of FLdigi.
* Web enabled FLDIGI via HTML5 and some Javascript, that could be accessed from anywhere. Python's Flask / Django along with Bootstrap, and a few REST calls, for example.
* Allow a phone or tablet to send and receive FLDIGI messages via a custom app. There is an Android version of FLDIGI, but that might not be the best approach for every problem. A more custom application could be created to use only a particular mode and send pre-formatted data, for example, with considerably less work than it would be to fork the FLDIGI mobile application and update it.

# Documentation

## API Documentation

* https://pythonhosted.org/pyfldigi/

## Useful FLDIGI documentation

* [FLDIGI Wikipedia page](https://en.wikipedia.org/wiki/Fldigi)
* [FLDIGI Users Manual - XML-RPC Control](http://www.w1hkj.com/FldigiHelp-3.21/html/xmlrpc_control_page.html)
* [FLDIGI Users Manual - Modems](http://www.w1hkj.com/FldigiHelp-3.21/html/modems_page.html)
* [FLDIGI Users Manual - Configuration](http://www.w1hkj.com/FldigiHelp-3.21/html/configuration_page.html)

# License

[GPL-3.0](https://github.com/KM4YRI/pyFldigi/blob/master/LICENSE)

# Contributors

* [@KM4YRI](https://github.com/KM4YRI) (maintainer)

# Contributions and Pull Requests

If you'd like to contribute anything back to this repo, please do so via [pull requests](https://help.github.com/articles/using-pull-requests).