Send and receive data via radio transceivers
Project description
FM-Transfer
A graphical front-end to send/receive binary by audio
fm-transfer is a graphical front-end written in Python that allows you to send and receive files through a transceiver.
It is designed to directly control the push-to-talk button of devices via a serial port (not mandatory).
The PTT control happens via a serial interface, by raising/lowering the DSR or the
RTS serial signals. A simple circuit can read the status of one of these signals and trigger the PTT.
This hardware is NOT mandatory, so you can use this tool without any transceiver: it can be used to send/receive data through an audio interface (es. via a cable connecting default sound port output to default sound input, or using one instance on a first PC which plays the sound and a second instance on another PC which listens with a microphone).
Transmission and reception are performed using two other python packages:
gg-transfer(https://github.com/matteotenca/gg-transfer) which usesC/C++library ggwave (usingpip, a fork of mine is required/installed, ggwave-wheels)quiet-transfer(https://github.com/matteotenca/quiet-transfer), which usesC/C++library quiet-lib
The former implements FSK modulation, the latter implements a lot of modulation algorithms, including GMSK and QAM.
Please see the related repositories for more information about those tools.
Installation
The simplest way to install fm-transfer and all the needed tools is via pip:
$> pip install fm-transfer
fm-transfer is pure-python, but its dependencies may need a compiler. See gg-transfer
and quiet-transfer repos for more info.
Usage
Tool and Send protocol boxes
This radio buttons allows you to switch between gg-transfer and quiet-transfer commands to send/receive data. Each
utility supports different protocols.
For FM transmission, gg-transfer mode is way more robust but way slower. In good conditions, quiet-lib mode and
audible protocol will provide much faster speed. quiet-lib needs some bandwidth, 20 Khz should be ok. When using a
direct audio cable connection, quiet-lib in cable-64k mode will provide the highest speed.
The zlib compression is available in quiet-lib mode only and enables the compression/decompression of the data.
Note: This breaks the progress bar indications.
Buttons
Choose a serial port...allows to select a serial device to handle thePTT(see below). It is not mandatory to select a serial device to use the application.Check signalbutton is available if a valid serial port is chosen. When pressed, the current status ofDSRandDTRserial signals are read and printed.Rechck Serial Portsbutton forces a rescan of the available serial ports. It is useful if you connect a USB-to-serial adapter and you want it to appear in the serial device list to choose from.Choose send fileandSend fileare self-explanatory.Choose recv fileandReceive fileare self-explanatory too, but note that the chosen file will be overwritten and that the reception process may time out if no valid data is received in a while.ReceiveandSendbuttons on the bottom can be used to receive/send a short (144 chars max) text message.gg-transfermode is enforced. The received message is written in the console, not in the output file.
PTT management
Note: A serial device is NOT mandatory to use the application.
If you want to manage the PTT of your radio from the application, you will need:
- a serial device
- a simple circuit with a transistor or rele
- a proper cable to connect the latter to the transceiver.
It all works by rising or lowering the DTR or the DSR signal (selectable from the Signal box) of the serial device,
which in turn make the transistor/rele to close or open the contact which triggers the PTT.
Circuit's and connector's schematics will be provided soon.
Usually, when set to high from software, a serial device's DTR or DSR signal's voltage goes up to 3.5v or 5v.
Sometimes the opposite happens, i.e. setting the signal to high lowers the voltage to zero. Since this behaviour is not
predictable, the Reverse logic checkbox comes in hand, inverting the high state with the low state. If the radio starts
transmitting as soon as you start the application with Unpressed selected, try to activate this checkbox and/or change
the signal.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fm_transfer-0.1.13.tar.gz.
File metadata
- Download URL: fm_transfer-0.1.13.tar.gz
- Upload date:
- Size: 55.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04f047d01dbd7faebdae0422b74011aa321de995b3e4ed6e32f755447f5d3613
|
|
| MD5 |
171c25666bd1c242cb4dc2136146790b
|
|
| BLAKE2b-256 |
f88671c17f0665d8e4fb4f84bb3c2f6a89e322b118cd367c97a1b5f75709c839
|
File details
Details for the file fm_transfer-0.1.13-py3-none-any.whl.
File metadata
- Download URL: fm_transfer-0.1.13-py3-none-any.whl
- Upload date:
- Size: 43.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9dc79a1f5bb310c8aa92e4d61fa8db09c897fda18949e54c00ba47065ba88e7
|
|
| MD5 |
af88c347dff3e41d0f2f948a88b4a98e
|
|
| BLAKE2b-256 |
a1eb896d240aa2a6d7348f88eb9aa57b910ebf27a6a69fb16cfd355da3736102
|