Skip to main content

NOT1MM Logger

Project description

Not1MM

logo

The worlds #1 unfinished contest logger *According to my daughter Corinna.

PyPI License: GPL v3 Python: 3.11+ Made With:PyQt6 Code Maturity:Snot Nosed PyPI Downloads PyPI Downloads

main screen

The Elephant in the Room

Not1MM's interface is a blatant ripoff of N1MM. It is NOT N1MM and any problem you have with this software should in no way reflect on their software.

Not1MM is NOT ment for interoperability with N1MM+

I wake up, take my first sip of coffee and am greeted by a lovely heartfelt message from Tom Wagner. So I feel something may need to be clarified. Not1MM is... NOT N1MM neither is it N1MM+ or even N1MMPlus. They're not ment to work with each other. It does send N1MM packets, but that's for nodered scoreboards, not Tom's beloved program.

You shouldn't bother Tom or his Team. They be cranky...

The What

Not1MM is, in my opinion, a usable amateur radio, or HAM, contest logger. It's written in Python 3.10+, and uses Qt6 framework for the graphical interface and SQLite for the database.

Target Environment

The primary target for this application is Linux. It may be able to run on other platforms, BSD and Windows. But I don't have a way, or desire, to directly support them.

I've recently purchased an M4 Mac Mini, So I can confirm it works well on the MacOS platform.

The Why

Currently this exists for my own personal amusement. I've recently retired after 35+ years working for 'The Phone Company', GTE -> Verizon -> Frontier. And being a Gentleman of Leisure, needed something to do in my free time. I'm a casual contester and could not find any contesting software for Linux that I wanted to use. There is Tucnak which is very robust and mature. It just wasn't for me.

Code Maturity & Current Multi Multi Development Focus

Not1MM is, at times, fairly stable. Recently, it would seem that I'm desperately trying to change that. The current focus of development is adding support for Multi Multi contest operations. It is something that I have no practical experience in. So you can expect the same quality of code fit and finish.

Our Code Contributors ✨

I wish to thank those who've contributed to the project. Below is an automatically generated, 'cause I'm lazy, list of those who've submitted PR's.

Avatar icons for code contributors.

Recent Changes

  • [2026-07-26] Merge pull request #631 from df7cb/actions
  • [2026-07-27] Add rotator actions
    • Rotator: Add rotate 30° left/right buttons
  • [2026-07-26] Add actions to increment/decrement report and exchange
    • Action names need to be UPPER CASE
    • Merge pull request #630 from ivica3730k/master
    • fix: properly select VFO from rigctld
    • @mbridak Fix: RSGB IOTA call history.
    • Merge pull request #628 from df7cb/hotkey-help
    • Merge branch 'master' into hotkey-help
    • Merge pull request #626 from df7cb/operator
    • Merge pull request #627 from df7cb/radio-race
    • Merge pull request #625 from df7cb/nesteddocks
    • Build Hotkeys help window from actual key bindings
  • [2026-07-25] Make OPON an action and connect it to Ctrl+O
    • Move current operator to preferences
    • Initialize rig_control.cat earlier
    • Set MainWindow dock option AllowNestedDocks
  • [2026-07-24] @mbridak Update Python version requirement to 3.11, 3.10 EOL in October.
    • @mbridak Refactor datetime handling to use UTC. Combined nested if statments with 'and...
  • [2026-07-23] Merge pull request #623 from df7cb/contestnr
  • [2026-07-24] Fix corruption of current_contest after changing settings
  • [2026-07-20] Merge pull request #621 from df7cb/sync-vfos
    • Synchronize VFOs
  • [2026-07-19] @mbridak Fix: Replace slashes in current_op with dashes for file path consistency
  • [2026-07-18] Merge pull request #619 from df7cb/edit-keys
    • Configure key bindings in a new Edit Keys dialog
  • [2026-07-16] Merge pull request #618 from df7cb/preferences
    • Save bandmap zoom level in preferences
  • [2026-07-16] Refactor lookupservice setup
    • Move preferences handling into a single place
  • [2026-07-13] Merge pull request #616 from df7cb/refactor-rigctld
    • Refactor rigctld methods and align PTT state across CAT backends
  • [2026-07-12] Merge pull request #615 from df7cb/bandmap-zoom
    • Fix bandmap zoom on 160m
  • [2026-07-11] @mbridak Add MacOS classifier to project metadata
  • [2026-07-10] Merge pull request #614 from df7cb/database-race
    • Fix race condition opening the database
  • [2026-07-06] Create AGENTS.md
  • [2026-07-05] Merge pull request #613 from df7cb/cat-classes
    • Fix: Handle float format frequency responses in certain rigctld emulators
  • [2026-07-03] Split CAT class into three separate for flrig, rigctld and fake
  • [2026-07-04] @mbridak Fix: lz-dx points, Oddly the dict was accessed as a list...
  • [2026-07-03] @mbridak Fix contest name casing and improve error handling in New Contest dialog
  • [2026-07-02] Merge pull request #606 from df7cb/commit
    • Add "commit" parameter to exec_sql_commit
  • [2026-06-29] Merge pull request #603 from dawkagaming/dawkagaming-patch-1
    • Update the metainfo file

See CHANGELOG.md for prior changes.

Installation

TL;DR

Prerequisites

Not1MM requires:

  • PyQt6
  • libportaudio2
  • libxcb-cursor0 (maybe... Depends on the distro)

One liner install

curl -LsSf uvx.sh/not1mm/install.sh | sh

For more in depth info, please see the installation section.

Documentation

I've nuked 90% of the README.md and moved it to a LaTeX file. So now you can get the user manual as a PDF file. I know some WILL NOT LIKE THIS. Sorry, not sorry.

Features

A quick feature list, See the user manual for more details.

  • 45+ supported contests
  • Lookup, QRZ and HamQTH
  • CAT Control, rigctld and flrig
  • CW Keyer Interface, winkeyer and cwdaemon
  • Cluster and Bandmap
  • Rotator control, rotctld
  • Multi Multi (The super sketchy not ready for prime time)
  • N1MM Packet output for nodered
  • WSJT-X FT8/FT4/ETC and FLDIGI RTTY
  • ADIF and Cabrillo output.
  • And Other Stuff

Known Issues

  • Hamlib before 4.6.3 had a problem with sending CW and changing/reading the keying speed.
  • wfview before version 2.2 has issues with frequency reporting and CW sending.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

not1mm-26.7.27.tar.gz (3.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

not1mm-26.7.27-py3-none-any.whl (3.8 MB view details)

Uploaded Python 3

File details

Details for the file not1mm-26.7.27.tar.gz.

File metadata

  • Download URL: not1mm-26.7.27.tar.gz
  • Upload date:
  • Size: 3.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for not1mm-26.7.27.tar.gz
Algorithm Hash digest
SHA256 cc4360f717d4b8ce02a41bedeade24587136c745d6284263de0162ab4d5d6a9f
MD5 ed66b7a91807fb13090584f3eabe7d13
BLAKE2b-256 73e0b18541359b430a54a21a2ca348f73728b1030b128ba9d0bd66d2c9c22628

See more details on using hashes here.

File details

Details for the file not1mm-26.7.27-py3-none-any.whl.

File metadata

  • Download URL: not1mm-26.7.27-py3-none-any.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for not1mm-26.7.27-py3-none-any.whl
Algorithm Hash digest
SHA256 4c18b02f6bb05a471f51235a79db5dc8a494abdfef7d9e570449da330573ff63
MD5 36eaca93bc4a0204969e6d851c347fee
BLAKE2b-256 cd9c50387eb6b9ee0015adc533bcc290f5302aa42015741851a5ba8d4564533c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page