[SCCC] homebrew contest logger

Drew Arnett arnett.drew at gmail.com
Tue Nov 10 10:47:00 EST 2020


If logging SW isn't your nerd, skip this email.  If it is, get in
touch, as I'd like to do a deeper dive into functionality and user
experience design.  Lots of interesting stuff to think about.

After CQP, I started to write a minimalist CW contest logger for SS
CW.  Last weekend, I gave it a try and it worked without issues.

The previous post about Raspberry Pi contest logger explained my
preference for no mouse and a good keyboard.  Taking that further, I
used a new to me TUI library.  It was surprisingly similar to writing
against a GUI library.  (Spent the majority of my time learning that.)

Total codebase was about 1000 lines of Python.  Python was designed
for readability.  And it turns out, it offers the extreme portability
Java tried to promise in 25 years ago.  So, this logger should run on
PC, Mac, Pi, linux (say running on an FPGA or whatever) without
recompiling.  With the TUI, it should run fine over SSH or telnet.  It
would be amusing to run it over RS232/485.  The TUI library and if I
do a GUI version with PySide2/Qt are also both extremely portable.
Why write software not everybody can use?  C will always be my first,
true love.  It's still great (C/C++) for systems programming, but I
haven't found anything more productive than Python for systems
programming.  I've been looking for something better for 20 years.
(Let me know if you find something!)

I reused my existing cwdaemon compatible pywinkeyerdaemon and the
delightful rigctld from the hamlib project with sockets.  I grabbed a
recent super partial file which was easy to use.  I also grabbed the
(maybe not the latest) initials file.  That was interesting, as I
found out during the contest some folks moved or changed the year they
were first licensed.

Functionality:
* ESM for both RUN and S&P modes.  (c-o to change between S&P and RUN.)
* Keyer speed adjustment (page-up, page-down).  It even worked during
messages or autocq.
* Autocq (c-a).
* Escape to stop sending at any time.
* Keyboard sending dialog (c-k).
* Keyer macros (of course) on the function keys.
* Tune (c-t).
* Dupe check.
* Highlighted PR and SEC when valid value entered.
* Serial number handling logic.  (Setup from log file on start, auto
increment and use for exchange.)
* Auto filled initials (CK & SEC).
* Wipe (c-w).
* Log without sending.
* Besides data entry, displayed partials, autocq if running, S&P or
RUN, ESM1/ESM2, and all the QSO info.
* Date/time and rig frequency read and handled automatically.

It was a joy to use for SS.  And it will be a great base to explore
lots of other ideas or to add more functionality to.

Fun stuff.

Drew
n7da


More information about the SCCC mailing list