Package: not1mm
Not1MMThe worlds #1 unfinished contest logger*According to my daughter Corinna.Not1MMWhat and why is Not1MMCurrent stateOur Code Contributors ✨List of should be working contestsRecent ChangesInstalling from PyPiPython and pipInstalling with pipUbuntu 22.04 LTSUbuntu 23.04Fedora 38 & 39You may or may not get a warning message likeOr this fan favoriteUpdating with pip/pipxOther LibrariesDark mode on UbuntuWayland CompositorRunning from sourceVarious data file locationsDataConfigThe databaseWhyThe first oneWhy limit yourselfRevisiting an old friendStation Settings dialog (REQUIRED)Changing station informationAdding a contest to the current dababase (REQUIRED)Selecting an existing contest as the current contestEditing existing contest parametersConfiguration SettingsLookupSoundcardCATCW Keyer interfaceClusterN1MM PacketsBandsSending CWEditing macro keysMacro substitutionsMacro use with voicecty.dat and QRZ lookups for distance and bearingOther uses for the call fieldWindowsThe Main WindowKeyboard commandsLog DisplayEditing a contactRecalulate MultsBandmapCheck WindowRemote VFOCabrilloADIFDupe checkingContest specific notesARRL SweekstakesThe exchange parserThe exchangeVisit the WikiWhat and why is Not1MMNot1MM'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.If you use Windows(tm), you should run away from Not1MM and use someother program.I personally don't use Windows(tm). While it may be possible to get N1MM working under Wine, I haven't checked. I'd rather not have to jump thru the hoops.Currently this exists for my own personal amusement.
Something to do in my free time.
While I'm not watching TV, Right vs Left political 'News' programs, mind numbing 'Reality' shows etc...Current stateThe current state is "BETA". I've used it for a few contests, and was able to work contacts and submit a cabrillo at the end. I'm not a "Contester". So I'll add contests as/if I work them. I'm only one guy, so if you see a bug let me know. I don't do much of any Data or RTTY operating. This is why you don't see RTTY in the list of working contests. The Lord helps those who burn people at the... I mean who help themselves. Feel free to fill in that hole with a pull request.Our Code Contributors ✨I wish to thank those who've contributed to the project.List of should be working contestsGeneral Logging (There are better general loggers like QLog, KLog, CQRLog)10 10 Fall CW10 10 Spring CW10 10 Summer Phone10 10 Winter PhoneARRL 10MARRL DX CWARRL DX SSBARRL Field DayARRL Sweepstakes CWARRL Sweepstakes SSBARRL VHF JanuaryARRL VHF JuneARRL VHF SeptemberCQ WPX CWCQ WPX SSBCQ World Wide CWCQ World Wide SSBCWOps CWTIARU HFJapan International DX CWJapan International DX SSBNAQP CWNAQP SSBPhone Weekly TestRAC Canada DayStew Perry TopbandWinter Field DayRecent Changes[24-2-21] Have the remote vfo monitor for TUNE packets from the bandmap app.[24-2-20] Improved the VFO display.[24-2-19] Re-Removed the depricated code. Replaced with code tested against Python 3.9[24-2-16] Replaced the removed depricated code.[24-2-15] Fixed a bunch of stuff related to ARRL DX mults.[24-2-14] Fixed point/mult calculation if you're not in W/VE.[24-2-13] Fixed no points being assigned in ARRL DX, reported by NC8R.[24-2-4] Fixed Cabrillo name in 10 10 Winter Phone. Added missing Club tag in all the cabrillo contest files.[24-2-3] Merge PR from @wvolz.[24-2-1] Fix bug in bandmap, quotation mark mismatch. Changed CAT timeout back to 0.5 seconds.SeeCHANGELOG.mdfor prior changes.Installing from PyPiPython and pipThis software is a Python package hosted on PyPi, and installable with the pip or pipx command. If this is your first exposure to pip you can get all the details fromThe PyPA. In short, most linux distros come with Python pre installed. If pip is not installed by default, you can usually load it through your package manager. For examplesudo apt install python3-piporsudo dnf install python3-pip.Installing with pipI've included what installation steps I took to install on fresh images of Ubuntu and Fedora below. YMMV.Ubuntu 22.04 LTSsudoaptupdate
sudoaptupgrade
sudoaptinstall-ylibportaudio2python3-pippython3-pyqt5python3-numpyadwaita-qt
pipinstall-Unot1mmUbuntu 23.04sudoaptupdate
sudoaptupgrade
sudoaptinstall-ylibportaudio2adwaita-qtpipx
pipxinstallnot1mm
pipxensurepathFedora 38 & 39sudodnfupgrade--refresh
sudodnfinstallpython3-pipportaudio
pipinstallnot1mmYou can now open a new terminal and typenot1mm. On it's first run, it may or may not install a lovely non AI generated
icon, which you can later click on to launch the application.You may or may not get a warning message likeWARNING: The script not1mm is installed in '/home/mbridak/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.If you do, just logout and back in, or reboot.Or this fan favoriteWarning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.To avoid this you can export an environment variable and launch the app like this:mbridak@vm:~$ export QT_QPA_PLATFORM=wayland; not1mmFor a more permanent solution you can place the lineexport QT_QPA_PLATFORM=waylandin your home directories .bashrc file. Then after logging out and back in you should be able to launch it normally.Updating with pip/pipxI've been posting updates just about everyday. Sometimes multiple times a day. It's early days, so there is much to do. You can check for and install updates withpip install -U not1mmor if installed with pipxpipx upgrade not1mm.Other LibrariesThe audio library used, uses pipewire/portaudio. You may need to install portaudio. Ubuntu:sudo apt install libportaudio2Dark mode on UbuntuI believe I figured out dark mode in Ubuntu and have it working on my shack PC that runs Ubuntu 22.04. The secret sauce seems to be installing adwaita-qt with apt, and setting an environment variableQT_STYLE_OVERRIDEtoAdwaita-Dark. I set the environment variable in the start of the program if running on a Gnome platform. So you don't need to do that part.Or see this discussiondarkmode.Wayland CompositorOne side effect of Wayland is that we are not able to request for a window to regain or retain focus. So if you were to click on a spot in the bandmap window to tune to that spot, you would have to then click on the main window to continue entering contest data. I'm aware of this, but I can not change it.Running from sourceSince this is packaged for PyPi, if you want to work on your own source branch, after cloning from github you would:pipinstall--upgradepip
pipinstallsetuptools
pipinstallbuildsourcerebuild.shfrom the root directory. This installs a build chain and a local editable copy of not1mm.There's two ways to launch the program from the local editable copy.You can either be in the root of the source directory and type:pythonnot1mmor be in some other directory and just type:not1mmVarious data file locationsDataIf your system has anXDG_DATA_HOMEenvironment variable set, the database and CW macro files can be found there. Otherwise they will be found atyourhome/.local/share/not1mmConfigConfiguration file(s) can be found at the location defined byXDG_CONFIG_HOME. Otherwise they will be found atyourhome/.config/not1mmThe databaseWhyThe database holds... wait for it... data... I know shocker right. A database can hold one or many contest logs. It also holds the station information, everything shown in the Station Settings dialog. You can have one database for the rest of your life. Filled with hundreds of contests you've logged. Or, you can create a new database to hold just one contest. You do You Boo.The first oneOn the initial running, a database is created for you calledham.db. This, and all future databases, are located in the data directory mentioned above.Why limit yourselfYou can create a new database by selectingFile>New Databasefrom the main window, and give it a snazzy name. Why limit yourself. Hell, create one every day for all I care. You can manage your own digital disaster.Revisiting an old friendYou can select a previously created databases for use by selectingFile>Open Database.Station Settings dialog (REQUIRED)After initial run of the program or creating a new database you will need to fill out the Station Settings dialog that will pop up.You can fill it out if you want to. You can leave our friends behind. 'Cause your friends don't fill, and if they don't fill. Well, they're no friends of mine.You can fill. You can fill. Everyone look at your keys.I forgot my hat today.Changing station informationStation information can be changed any time by going toFile>Station Settingsand editing the information.Adding a contest to the current dababase (REQUIRED)SelectFile>New ContestSelecting an existing contest as the current contestSelectFile>Open ContestEditing existing contest parametersYou can edit the parameters of a previously defined contest by selecting it as the current contest. Then selectFile>Edit Current Contest. ClickOKto save the new values and reload the contest.Cancelto keep the existing parameters.Configuration SettingsTo setup your CAT control, CW keyer, Callsign lookups, selectFile>Configuration SettingsThe tabs for groups and n1mm are disabled and are for future expansion.LookupFor callsign lookup, Two services are supported. QRZ and HamQTH. They require a username and password, Enter it here.SoundcardChoose the sound output device for the voice keyer.CATUnder theCATTAB, you can choose eitherrigctldnormally with an IP of127.0.0.1and a port of4532. Orflrig, IP normally of127.0.0.1and a port of12345.Noneis always an option, but is it really? There's an onscreen icon for CAT status. Green good, Red bad, Grey neither.CW Keyer interfaceUnder theCWTAB, There are three options.cwdaemon, which normally uses IP127.0.0.1and port6789.pywinkeyerwhich normally uses IP127.0.0.1and port8000. OrNone, if you want to Morse it like it's 1899.ClusterUnder theClusterTAB you can change the default AR Cluster server, port and filter settings used for the bandmap window.N1MM PacketsWork has started on N1MM udp packets. So far just RadioInfo, contactinfo, contactreplace and contactdelete.When entering IP and Ports, enter them with a colon ':' between them. You can enter multiple pairs on the same line if separated by a space ' '.BandsYou can define which bands appear in the main window. Those with checkmarks will appear. Those without will not.Sending CWOther than sending CW by hand, you can also send predefined CW text messages by pressing F1 - F12. See next section on Editing macro keys. If you need to send something freeform, you can press CTRL-SHIFT-K, this will expose an entry field at the bottom of the window which you can type directly into. When you're done you can either press CTRL-SHIFT-K again, or press the Enter Key to close the field.Editing macro keysTo edit the macros, chooseFile>Edit Macros. This will open your systems registered text editor with current macros loaded. When your done just save the file and close the editor. The file loaded to edit, CW or SSB, will be determined by your current operating mode.After editing and saving the macro file. You can force the logger to reload the macro file by toggeling betweenRunandS&Pstates.Macro substitutionsYou can include a limited set of substitution instructions.MacroSubstitution{MYCALL}Sends the station call.{HISCALL}Send what's in the callsign field.{SNT}Sends 5nn (cw) or 599 (ssb){SENTNR}Sends whats in the SentNR field.{EXCH}Sends what's in the Sent Exchange field when contest is defined.'#'Sends serial number.Macro use with voiceThe macros when used with voice, will also accept filenames of WAV files to play, excluding the file extension. The filename must be enclosed by brackets. For example[CQ]will playcq.wav,[again]will playagain.wav. The wav files are stored in the operators personal data directory. The filenames must be in lowercase. SeeVarious data file locationsabove for the location of your data files. For me, the macro[cq]will play/home/mbridak/.local/share/not1mm/K6GTE/cq.wavThe current wav files in place are not the ones you will want to use. They sound like an idiot.You can use something like Audacity to record new wav files in your own voice.Aside from the[filename]wav files, there are also NATO phonetic wav files for each letter and number. So if your macro key holds{HISCALL} {SNT} {SENTNR}and you have entered K5TUX in callsign field during CQ WW SSB while in CQ Zone 3. You'll here Kilo 5 Tango Uniform X-ray, 5 9 9, 3. Hopefully not in an idiots voice.cty.dat and QRZ lookups for distance and bearingWhen a callsign is entered, a look up is first done in a cty.dat file to determin the country of origin, geographic center, cq zone and ITU region. Great circle calculations are done to determin the heading and distance from your gridsquare to the grographic center. This information then displayed at the bottom left.After this, a request is made to QRZ for the gridsquare of the callsign. If there is a response the information is recalculated and displayed. You'll know is this has happened, since the gridsquare will replace the word "Regional".Other uses for the call field[A Frequency] You can enter a frequency in kilohertz. This will change the band you're logging on. If you have CAT control, this will change the frequency of the radio as well.[CW, SSB, RTTY] You can set the mode logged. If you have CAT control this will also change the mode on the radio.[OPON] Change the operator currently logging.You must press the SPACE bar after entering any of the above.WindowsThe Main WindowKeyboard commandsKeyResult[Esc]Clears the input fields of any text.[CTRL-Esc]Stops cwdaemon from sending Morse.[PgUp]Increases the cw sending speed.[PgDown]Decreases the cw sending speed.[Arrow-Up]Jump to the next spot above the current VFO cursor in the bandmap window (CAT Required).[Arrow-Down]Jump to the next spot below the current VFO cursor in the bandmap window (CAT Required).[TAB]Move cursor to the right one field.[Shift-Tab]Move cursor left One field.[SPACE]When in the callsign field, will move the input to the first field needed for the exchange.[Enter]Submits the fields to the log.[F1-F12]Send (CW or Voice) macros.[CTRL-S]Spot Callsign to the cluster.[CTRL-G]Tune to a spot matching partial text in the callsign entry field (CAT Required).[CTRL-SHIFT-K]Open CW text input field.Log DisplayWindow>Log WindowThe Log display gets updated automatically when a contact is entered. The top half is a list of all contacts.The bottom half of the log displays contacts sorted by what's currently in the call entry field. The columns displayed in the log window are dependant on what contests is currently active.Editing a contactYou can double click a cell in the log window and edit its contents.You can also Right-Click on a cell to bring up the edit dialog.You can not directly edit the multiplier status of a contact. Instead see the next section on recalculating mults. If you change the callsign make sure theWPXfield is still valid.Recalulate MultsAfter editing a contact and before generating a Cabrillo file. There is a Misc menu option that will recalculate the multipliers incase an edit had caused a change.
Add timestamp to log filenamesBandmapWindow>BandmapPut your callsign in the top and press the connect button.The bandmap window is, as with everything, a work in progress. The bandmap now follows the VFO.VFO indicator now displays as small triangle in the frequency tickmarks. A small blue rectangle shows the receivers bandwidth if one is reported.Clicked on spots now tune the radio and set the callsign field. Previously worked calls are displayed in red.Check WindowWindow>Check WindowAs you enter a callsign, the Check Window will show probable matches to calls either in the MASTER.SCP file, your local log or the recent telnet spots. The MASTER.SCP column will show results for strings of 3 or more matching characters from the start of the call string. The local log and telnet columns will show matches of any length appearing anywhere in the string.Remote VFOYou can control the VFO on a remote rig by following the directions listed in the link below. It's a small hardware project with a BOM of under $20, and consisting of two parts.Making theVFO...Then...Window>VFOCabrilloClick onFile>Generate CabrilloThe file will be placed in your home directory. The name will be in the format of:StationCall_ContestName_CurrentDate_CurrentTime.logSo for me it would look like:K6GTE_CANADA-DAY_2023-09-04_07-47-05.logLook a logeh?.Thisoutlines some differences between ARRL Field Day and Canada Day.ADIFFile>Generate ADIFBoom... ADIFStationCall_ContestName_Date_Time.adiDupe checkingAdded dupe checking. Big Red 'Dupe' will appear if it's a dupe...Contest specific notesI found it might be beneficial to have a section devoted to wierd quirky things about operating a specific contests.ARRL SweekstakesThe exchange parserThis was a pain in the tukus. There are so many elements to the exchange, and one input field aside from the callsign field. So I had to write sort of a 'parser'. The parser moves over your input string following some basic rules and is re-evaluated with each keypress and the parsed result will be displayed in the label over the field. The exchange looks like124 A K6GTE 17 ORG, a Serial number, Precidence, Callsign, Year Licenced and Section. even though the callsign is given as part of the exchange, the callsign does not have to be entered and is pulled from the callsign field. If the exchange was entered as124 A 17 ORGyou would see:You can enter the serial number and precidence, or the year and section as pairs. For instance124A 17ORG. This would ensure the values get parsed correctly.You do not have to go back to correct typing. You can just tack the correct items to the end of the field and the older values will get overwritten. So if you entered124A 17ORG Q, the precidence will change from A to Q. If you need to change the serial number you must append the precidence to it,125A.If the callsign was entered wrong in the callsign field, you can put the correct callsign some where in the exchange. As long as it shows up in the parsed label above correctly your good.The best thing you can do is play around with it to see how it behaves.The exchangeIn theSent Exchangefield of the New Contest dialog put in the Precidence, Call, Check and Section. Example:A K6GTE 17 ORG.For the Run Exchange macro I'd put{HISCALL} # A K6GTE 17 ORG.