Skip to main content

qrss-ei: Software to transmit QRSS CW signals

Introduction

What is QRSS CW?

Very slow Morse code. In normal Morse code, the beginner's slow speed is 60 cpm (characters per minute), which is the same as 12 wpm (words per minute). At that speed, the fundamental unit, the "dot length", is 100 ms. In QRSS, the dot length is much longer, commonly 3 seconds or more. In other words, QRSS is Morse code with a speed of 2 cpm = 0.4 wpm or less.

Normal CW is on-off-keying. QRSS is commonly sent as frequency-shift-keying, with the "key engaged" frequency typically being 5 Hz above the "key released" frequency.

Finally, typical QRSS receiving software assumes that the QRSS transmission is repeated a few times, once every 10 minutes, preferably with exactly the same timing as 10 minutes earlier. This is used to "integrate" several transmissions, so the information can be fished out of the noise better.

QRSS is also very much a QRP mode. Typical transceivers put out a few 100 mW or so, some even less.

The waterholes for people interested in this mode seems to be

What is this project?

This software enables me to transmit QRSS signals.

Management summary: This is a programm that talks to rigctld from the well-known hamlib software package. The rig should be set to RTTY mode, which will cause a carrier to be sent whenever PTT is pressed. Alternatively, some other such mode can be tried (AM and FM would work as well).

No actual characters are ever emitted to be sent via RTTY. Also, this uses the "data" variety of "PTT", and as no data comes in, AM and FM should also send a bare, unmodulated carrier.

On each frequency shift, the PTT is briefly released, the frequency shifted 5 Hz up or down, and the PTT again pressed. I'm not sure whether this is needed. I fancy it reduces bandwidth occupied. Not sure.

This software is strictly a command-line utility. It needs only plain Python without any modules that need compilation. It does make use of the morse2sound software by the same author, which has the code to convert text into Morse code characters. But morse2sound is plain Python as well.

What do I use to receive QRSS CW?

This software does not help you to receive QRSS CW. To do that, I presently use Lopora.

Installation hints on Lopora:

The Lopora instructions address unconventional installation targets. On my plain Python installation on my plain Linux Debian Laptop, I found I just needed an active virtual environment with this pre-installation:

pip install numpy pillow pyaudio

On my Debian Linux Trixie box, I'm using "pipewire" as the "audio device for input". I then set the input device actually used via the standard Gnome configuration. This basically ties up audio while Lopora is used.

Installation of qrss_ei

The following steps should give you an executable script qrss_ei intended to be run in a terminal. To actually send QRSS, you will also need to run rigctld from the well-known hamlib software package to actually connect to your rig. qrss_ei has no code to connect to your radio, it only knows to connect to rigctld.

For further instructions, see the output qrss_ei -h gives you.

Plain Python

uv

If you use the uv Python dependency manager:

  • Construct a uv virtual environment with uv venv
  • activate it
  • uv pip install qrss-ei

The name

Has two sections: The "qrss" part stands for what you can transmit with this, the "ei" part is derived from the suffix of my, the author's, radio amateur call sign DJ3EI.

I do not seem to be able to make up my mind whether to separate the two with - or _, so the Python project and the repo have -, but the Python package and the script have _.

Metadata

Release files for qrss-ei 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qrss-ei 0.1.1
File Size Uploaded Provenance Actions
qrss_ei-0.1.1.tar.gz 10.8 kB Without provenance Details for qrss_ei-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for qrss-ei 0.1.1
File Interpreter ABI Platform Actions
qrss_ei-0.1.1-py3-none-any.whl Python 3 none any Details for qrss_ei-0.1.1-py3-none-any.whl

Total release size: 19.5 kB

Release files / qrss_ei-0.1.1.tar.gz

Download URL qrss_ei-0.1.1.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
57e455d352f6cf4b468df79de32d21a742cf4f827ece760adff4d4d919cce3a9
BLAKE2b-256 checksum
How to use checksums
189e802e83159d022181c33e66aac0cffd296c6c7ad193b6f0c81b63a3d383cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / qrss_ei-0.1.1-py3-none-any.whl

Download URL qrss_ei-0.1.1-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e607f3d161996ecce0e08579b0195393c010b9349c9060e2776b8bbe40cccb9
BLAKE2b-256 checksum
How to use checksums
ee10784b6e3e410de135dc67c431eed15043b7d91341a2fd5f1d152184aec6d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Security for qrss-ei 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page