A CW contest keyer and logger in written Python.
Also can be used as a sending and receiving CW trainer.
Over the years, a number of very good logging programs have been developed. The most popular of these today is the N1MM logger. Unfortunately, this is a Windoz-only application and is very difficult to get working under linux. My experience with the other options available for linux are either not being actively maintained and/or are too bloated and/or lacking to be useful for contesting. Hence, the development of yet another keying/logging program.
- Macros and data entry are focused on contest exchanges.
- Basic support for dx, ragchew and satellite contact is also provided.
- Large text used for data entry fields
- Rig can be interface via direct, flrig or hamlib connections
- Rig keying (via DTR) generated either internally or by NanoIO keyer (much more precise)
- Logging uses standard ADIF format
- Optional sidetone generation
- Practice mode for each supported contest
- Variety of text generation facilities for practicing with keyer paddles.
- ...
- Uses python3 and tkinter
- Clone gitub pyKeyer, libs and data repositories
- cd
- mkdir Python
- cd Python
- git clone https://github.com/aa2il/pyKeyer
- git clone https://github.com/aa2il/libs
- git clone https://github.com/aa2il/data
- Install packages needed for pyKeyer:
- cd ~/Python/pyKeyer
- pip3 install -r requirements.txt
- Make sure its executable:
- chmod +x pyKeyer.py start start_cw
- Set PYTHON PATH so os can find libraries:
- Under tcsh: setenv PYTHONPATH $HOME/Python/libs
- Under bash: export PYTHONPATH="$HOME/Python/libs"
- Bombs away:
- ./pyKeyer.py
- See also start and start_cw for examples how to run this thing
-
Good video: https://www.youtube.com/watch?v=23aQdrS58e0&t=552s
-
Point browser to https://docs.conda.io/en/latest/miniconda.html
-
Download and install latest & greatest Mini-conda for your particular OS:
-
I used the bash installer for linux
-
As of July 2023: Conda 23.5.2 Python 3.11.3 released July 13, 2023
-
cd ~/Downloads
-
bash Miniconda3-latest-Linux-x86_64.sh
-
Follow the prompts
-
If you'd prefer that conda's base environment not be activated on startup, set the auto_activate_base parameter to false:
conda config --set auto_activate_base false
-
To get it to work under tcsh:
- bash
- conda init tcsh
- This creates ~/.tcshrc - move its contents to .cshrc if need be
- relaunch tcsh and all should be fine!
- Test with:
- conda list
-
To blow away a work environment and start over:
- conda deactivate
- conda remove -n work --all
-
-
Create a working enviroment for ham radio stuff:
-
Check which python version we have:
-
conda list
-
!!! By default, conda does not include very many fonts for tk and therefore the Tk GUIs look like crap. Do this when creating the sandbox to avoid this problem:
bash cd ~/miniconda3/envs/ conda create -y --prefix "aa2il" -c conda-forge "python==3.12." "tk[build=xft_]" exit
-
The fonts on an existing sandbox can be upgraded via:
bash conda install --prefix "aa2il" -c conda-forge "tk==xft_ " exit
-
To activate this environment, use:
- conda activate aa2il
-
To deactivate an active environment, use:
- conda deactivate
-
conda env list
-
conda activate aa2il
-
-
Clone gitub pyKeyer, libs and data repositories:
- cd
- mkdir Python
- cd Python
- git clone https://github.com/aa2il/pyKeyer
- git clone https://github.com/aa2il/libs
- git clone https://github.com/aa2il/data
-
Install packages needed by pyKeyer:
- cd ~/Python/pyKeyer
- pip3 install -r requirements.txt
-
Set PYTHON PATH so os can find libraries:
- Under tcsh: setenv PYTHONPATH $HOME/Python/libs
- Under bash: export PYTHONPATH="$HOME/Python/libs"
-
To run pyKeyer, we need to specify python interpreter so it doesn't run in the default system environment:
- cd ~/Python/pyKeyer
- conda activate aa2il
- python pyKeyer.py
-
Fonts look awful - see step 3 above
-
Known issues using this (as of July 2023):
- Fonts look awful - need a better fix than step 8 above
-
One option is to use miniconda and follow the directions above.
-
I had success installing Python (v3.12 as of Oct 2024) the Microslop Store (or directly from python.org).
-
Clone gitub repositories. There are several tools available for windows to for fetching git repositories. Find one you like, open a command prompt and effect the following:
- cd YOUR_HOME_DIRECTORY
- mkdir Python
- cd Python
- git clone https://github.com/aa2il/pyKeyer
- git clone https://github.com/aa2il/libs
- git clone https://github.com/aa2il/data
-
Install dependancies:
pip install -r requirements.txt
4a) There are two main codes here - the complete keyer, e.g.:
pyKeyer.py -prac -cwt -adjust -wpm 30 -keyer WINKEY
4b) ... and a paddle sending practice tool:
paddling.py
-
Under linux, both programs can discover the type of keying device available. This doesn't yet work under winblows so only the most popular device, Winkeyer, is available.
-
There is an older compiled binary/installer listed on the right panel of this screen. If you want/need a more recent binary, follow the steps in windoz.bat to build it from the source.
-
A note about drivers. Compared to linux where almost everything works right out of the box, Windoz is awful when dealing with device drivers. To get the keyer to work, you will probably have to install device drivers for both the keying deivce (e.g. winkeyer via a serial COM port) AND for your rig (e.g. CAT control and rx audio via a pair of USB ports). Most likely, the rig manufacturer has the proper drivers for the rig available on their website. This may or may not be the case for your keying device. I do not own a genuine Winkeyer as I "roled my own."
To add further complictions, the Winblows device drivers are often buggy and unstable. My main keying device is a modified version of the K3NG keyer hosted on an Arduino Nano knock-off. This device emulates the popular Winkeyer. The Nano-knockoff uses a CH340 chip for USB I/O and not the venerable FTDI chipset. The latest driver (v3.8 as of Oct 2024) for the CH340 initially works but then hangs upon program exit. To get the keyer to work properly, I found I needed to use an older version of the driver (v3.7 from 2022). A zip file with this driver is included in this repository.