Setting up RumLogNG with Elecraft K3S is a breeze with these helpful tips and tricks. From configuring the software to optimizing the radio settings, this guide ensures a smooth operation. Whether you're a beginner or an experienced operator, get ready to enhance your logging experience and make the most out of your Elecraft K3S.
The availability and performance of Software Defined Radios (SDRs) today is incredible. Equally incredible is how poorly us Hams make use of the capabilities at our disposal.
A single HackRF One can simultaneously receive a 20MHz wide slice of spectrum anywhere from 1MHz to 6GHz. That means that a single device can simultaneously receive every amateur band from 20 meters to 10 meters or from 160 meters all the way to 15 meters!
In this post Iβll show you how to receive and decode FT8 on multiple bands simultaneously. These techniques can be expanded to receive WSPR, JT9, and every other digital mode in the received bands. Your CPU is the limit.
Hardware
HackRF Oneor another SDR with a high sample rate and the capability to receive HF.
Any old PC or Single Board Computer (SBC) β Iβm using an old laptop with a quad-core i7 running at 3.5GHz. Nearly anything with a CPU is acceptable. My recommendation for SBCs is currently the Orange Pi 5 Pro, itβs a good balance of cost vs performance but it might not get you all 5 bands like my old i7 will.
Multi-Band Antenna β Iβm using a PAC-12 from QRP Labs. It is not the best choice for this application since it needs to be tuned for each individual band, but it is a great POTA antenna and I already had it hooked up. A good fan dipole or trapped EFHW would be better.
Software
Linux Mint β Most of this will work on any OS that can run the rest of the software but the audio routing bits are specific to Linux & PulseAudio.
PulseAudioβ This is already installed with most modern Linux distributions, including Mint. If youβre running another audio server, or an OS without PulseAudio, you get to figure out routing audio between GNU Radio and WSJT-X.
GNU Radio β Manages the SDR, tuning, and demodulating SSB.
WSJT-X β Decodes FT8 from the audio produced by GNU Radio.
Source
All of the code and configuration I used is on GitHub. Please feel free to adapt or build on this work (see the LICENSE file for details).
Thanks to Tushar Jain for uploading an SSB signal capture to their EE304P GitHub repo. All other sources for that file seem to have been scrubbed from the internet.
Problem Outline
The process of extracting useful data from a 20MHz wide chunk of raw RF is a bit daunting but it can be broken down into small steps.
Tune to a Target Signal β 20MHz is too much data to process, the target signals are ~3kHz.
Demodulate SSB β FT8 (and most digital modes) are decoded from audio which has been demodulated from a Single Side Band (SSB) signal.
Decode FT8 β Our demodulated audio stream has to make it to something that can decode FT8.
Multiband Operation β We need multiple parallel instances of the decoding software playing nicely together. Multiple audio streams need to be routed correctly, labelled, and ideally we should have the ability to listen in to each band.
Tuning to a Target Signal
I chose to split tuning into two steps. First, tuning to a specific Amateur band (or at least, a good part of it) and second, tuning in to the specific frequency used for FT8 on that band. The workload to filter and decimate the 20MHz sample of raw RF is very high so splitting this work up allows decoding other digital modes in the future without adding a lot of load to the CPU.
Band Tuning
Allow me to introduce the Frequency Xlating FIR Filter, this is a stock block provided by GNU Radio that provides frequency shifting, filtering, and (optionally) decimation in one step. Itβs a bit more CPU efficient than executing each of those steps separately.-
My goal here is to reduce the massive 20MHz sample rate to something more manageable for each amateur band, center the target band in the output, and filter out neighboring signals. I chose to take every band to a 400kHz slice. That slice is large enough to cover the entire CW, digital, and beacon ranges of each HF band. Using the same slice for each band also makes the math easier downstream.
This hier block calculates and executes the filter necessary from a few inputs. The most important bits are the input center frequency, the output center frequency, and the output bandwidth.
This filter was a frequent source of bugs; signals being shifted incorrectly, aliasing, massive energy loss, and more. Configuring the taps incorrectly was usually the problem (the documentation explains essentially NOTHING about that function) but the C++ reference for the firdes class cleared things up.
For a bandpass filter, which is what we need for isolating an Amateur band, firdes.complex_band_pass takes the gain, input sample rate, the low cutoff relative to the center frequency, the high cutoff relative to the center frequency, and the transition bandwidth. Letβs go over each of those.
gain is the 1. No need to amplify or reduce the target signals.
input sample rate is just the sample rate coming into the block.
low cutoff is negative, half of the bandwidth in Hz desired from the bandpass filter.
high cutoff is positive, also half the bandwidth desired.
transition bandwidth is up to you, smaller values make for greater rejection of signals adjacent to your bandpass but that comes at a high CPU cost. My block defaults to 2kHz but my CPU struggled to keep up, even on a single band. More on that later.
The result is exactly as described, the large chunk of raw RF is taken down to a manageable slice covering the target band.
SSB Tuning
With an amateur band isolated into a manageable chunk itβs time to select a single SSB signal. This is just another Frequency Xlating FIR Filter but on a much more manageable quantity of data. The logic is wrapped up in another hier block for easy reuse.
The parameters here allow selecting a specific SSB signal; the interesting bits are the USB / LSB switch and the tuning frequency.
Hams think of frequency in terms of the dial on their radio but an SSB signal is actually above (Upper Side Band) or below (Lower Side Band) the tuning frequency. Our demodulation logic is going to expect the signal to be centered.
The center frequency here is calculated based on the tuning frequency and whether the target signal is USB or LSB. The bandpass filter limits the signal to the desired audio bandwidth. The transition bandwidth of the filter is a compromise at 800Hz, if I was using this for voice signals Iβd probably want a tighter filter.
The waterfall below shows an SSB signal on an FT8 frequency after tuning. The content is centered, adjacent signals are strongly attenuated but there is still some out of band leakage.
SSB Demodulation
If youβre expecting a detailed explanation of SSB demodulation mathematics youβre about to be disappointed.
This hier block implements the weaver method for SSB demodulation. I went on a deep dive to understand how it works; I ended up with a headache and a renewed appreciation for people that study advanced mathematics. Itβs an interesting subject if you enjoy studying such things.
Thereβs not much to say about this block. It takes in a tuned, filtered RF signal and it outputs an audio signal at the same sample rate. I chose to sample at 8kHz to allow a bit of head room over the roughly 3kHz audio being demodulated. Remember audio bandwidth is half of the input RF sample rate.
The waterfall below shows the audio content extracted from the FT8 signal shown previously.
Testing
I had to test this demodulation with a known signal, something I could listen to and hear any off-center tuning or inversion (making the wrong LSB / USB choice). Digital signals and the weak audio I could find on the band arenβt great for that. The official GNU Radio documentation provides a captured signal for testing but the link is broken. I eventually found the file and itβs included in my GitHub repo.
The test file is centered at 50.247MHz (that took a while to figure out) and sampled at 256kHz. I built this simple flow to resample it for compatibility with my blocks, tune and demodulate the 50.3MHz LSB signal, and route the audio for playback.
Iβm going to make this look easy by showing you the end result and not the hours of debugging my own idiocy. Getting these waterfalls was frustrating and it required a lot of time. If youβre struggling with an SDR problem remember that we take a lot of what our radios do for granted, youβre looking at my result NOT my process.
FT8 Workflow & Decoding
Letβs put these pieces together for a real signal. Itβs not much different from the demodulation test workflow. Receiving from the HackRF is one simple block, all Iβve done is make the amplifiers and gain variables accessible from the QT GUI.
Thatβs RF reception, band tuning, ssb tuning & demodulation, and audio playback. Thatβs a radio, maybe not a great one, but itβs a radio. If this was a rig sitting in the shack we would connect the audio input and output to our PC, open up WSJT-X, and weβd have FT8 monitoring.
So letβs do just that! PulseAudio has a concept of null sinks and monitors. A null sink is just a virtual audio device any application can play out audio to. A monitor is virtual audio device any application can record audio from, one is automatically created for every real or virtual sink.
All the concepts here are the same. Weβre receiving a wider sample of RF (20MHz), and tuning into 5 separate bands, routing each band to an SSB Tune & Demod block, and then resampling the audio for consumption by WSJT-X.
Audio Routing
Each band has its own audio sink, monitor, and loopback. They are all named and Iβve added descriptions which are visible using GUI tools. I added one additional βnullβ sink which is the default output for the loopbacks. That means that by default we arenβt hearing the audio from every band at once but we can listen in using tools like PulseAudio Volume Control (pavucontrol).
By putting this configuration in the PulseAudio config directory (/etc/pulse/default.pa.d) the configuration will persist through reboots and service restarts. My full config file is in the GitHub repo.
WSJT-X
WSJT-X expects to be a singleton, i.e. it will only allow one instance of itself to be running at a time. For most users thatβs a good thing but for us itβs a problem.
We can create additional βRigsβ, separate config files for WSJT-X, and spawn multiple instances from the command line.
$ wsjtx --rig-name=20mFT8
Each one needs to be individually configured to use the audio device intended for the band it is monitoring. Once configured they can all be started in parallel. My, mostly correct, configuration files are in the GitHub repo. These are stored in ~/.config on Linux systems.
Only 17m and 20m show any decodes because my antenna was tuned for 20m for this screenshot. One day Iβll build a better multi-band antenna.
Obviously this is not a low intensity task for the PC. Iβm running this on a 7 year old laptop with a quad-core i7 processor and itβs barely hanging on with all the waterfalls disabled. I managed to squeeze in room for one WSJT-X waterfall at a time.
Wrap Up
Thatβs it for now. Five parallel FT8 monitors from a single SDR, running on a single machine. Thereβs some room for improvement and I still need to get transmitting functional.
Before I sign off I owe one last bit of gratitude to the ancient CPU in this old laptop.
In this comprehensive guide, we delve into the intricacies of optimizing power settings for the Elecraft K3S and WSJT-X. From understanding the impact of power levels on signal quality to fine-tuning your setup for maximum efficiency, this guide provides invaluable insights and step-by-step instructions to enhance your digital communication experience.
I have twisted and worked my way around this problem for some time now and this probably isnβt the last time that I will revisit this topic. However, my station is evolving and as a result, Iβm going to make some notes here and share what I know so that other folks can make use of it. Honestly? Itβs more so that I will remember how I got here when I inevitably screw something up and have to back it out.
Why Are We Doing This Again?
My solution for the home setup, was to run Win11 on a stick PC that I could interface with the IC-7100 for Winlink email and Other Stuff. Now, what is Other Stuff? In ham radio, we have an unhealthy relationship to old and busted Windows-Only software. Itβs changing slowly, but there are still weird packages that find their way into my hands that I βneedβ to use for This or That.
With the shift from the barely usable Win10 to the What Is This Nightmare Of Constant Advertising Win11, MS pushed me too far. Every time I touch what used to be the Start Menu, I get an advertisement or some unwanted tidbit of news with a picture of a politician or other pop culture nuisance. On top of that, theyβd now like me to have an βAIβ that follows me around and trains itself using my hardware?
Weβre done here.
CrossOver
I donβt know how the link came to me, but I found my way to WG1Vβs site and encountered a very different approach to solving the Winlink/Vara/All That Stuff conundrum.
The author simply runs CrossOver on their Mac and all of the stuff works.
Now, back in the day, as a Frothy Linux Zealot, I was a reluctant user of Wine to address some needs I had in my day job. I wrestled with it and made it work. Over time, running VMs to handle this stuff seemed to become the new hotness and I didnβt even think about CrossOver for the Mac. The trouble with a VM is that itβs still a full install of Windows and still antagonistic to my desired mental state. Would CrossOver really do the trick?
In a word: Yes.
Following the instructions at the above link, I got VARA HF and ARDOP up and running on my Mac which is what I attach to my shiny new IC-7300 in my shack. It worked out of the box with no fiddling. Full disclosure: I hadnβt updated brew in some time so that took a minute, but with that done, everything else fell into place.
What about the Other Stuff? Most of the radio software out there that might be used for programming an HT for example, is built on ancient frameworks that happen to run reliably under CrossOver. I even pulled up some piece of software that I used to program my DMR HT and it worked out of the box. That outcome was unexpected, but most welcome.
Now What?
To send Winlink mail, I kick off rigctrl and pat with its HTTP UI from a command line and launch either ARDOP or VARA from CrossOver and send my Winlink mail. This gets me two big wins: No Windows and No Winlink Express. This is called Winning.
I have been noodling with my Surface Go to make sure that I can use the 7300 under my Ubuntu setup as well. I want my two main computing devices to be fully ready to run any rig Iβve got that can do a digital mode. On Ubuntu, it will be ARDOP and pat as well. For me, thatβs a well-oiled setup with the IC-705. I need to take a minute to add the IC-7300 to the configuration. No big deal, just 10 minutes or so when I get it.
The outcome of all of this is that I now have a single shack computing device that is my Mac and I can do all of the things that I do in one place. Simplifying things is good. And Iβve even got this little stick PC that I can throw something on for an internal fileserver or something.
The Future
In an ideal world, someone (maybe me someday?) will get ARDOP running on a Mac. ARDOP is under active development again and these are exciting times for that modem. I canβt wait to see where it goes! But for now, I will leverage it in this new ecosystem with CrossOver. It works and thatβs what matters.
Final
Itβs probably pretty clear that Iβm willing to work with all flavors of software in different evironments. Iβm not opposed to paying for useful software, though my first stop will always be Free/Open solutions. The sticking point here is that I donβt have a lot of time to mess around with some of this stuff and this approach gets me from A to B rather quickly. Again, Winning.
For last yearβs Field Day, I took a stab at networking a couple of computers together with an ethernet cable so that our N1MM+ logging software could be synced up. It was both surprisingly easy to do, but equally daunting due to the curious lack of reasonably digestible tutorials tackling the topic on the interwebs. So now that Field Day is again upon us, I felt that same sort of dread that comes from staring up at a steep learning curve. Because quite frankly, I could not remember at all how to create a N1MM+ computer network. I checked back at my blog page on the topic, and was dismayed at how little of the process I documented. So, I am here to rectify that.
Here is my use case. I want to have three computers with Windows 10 operating systems host logging software (N1MM Logger Plus) for a multiple station ARRL Field Day event. All of the computers need to be synchronized with each other in order to avoid such dreaded contesting faux pas as βdupesβ, i.e., getting the same person twice. I also do not want to have to rely on an internet in order to maintain communication between these computers.
As far as hardware goes, I already was in possession of three (quite aged) computers. I splurged on three new 25β² ethernet (CAT 6) cables (one for each computer), and a Linksys 8-Port Gigabit Ethernet Switch. I set up the computers simply by plugging one end of an ethernet cable into its ethernet port, and the other end of the cable into the switch. Remember the gigabit switch does need power to operate!
Before I began networking the computers, I had updated all of the necessary software, including Windows and N1MM+. All of the computers need to have the exact same version of N1MM+, as well as exactly the same inputted contest information, before N1MM+ is able to synchronize between multiple stations.
Once the hardware was gathered and the software was up-to-date, I followed the step-by-step procedure documented below.
Step 1: Go to internet icon, click, and βOpen Network & Internet Settingsβ.
Step 2: Select βEthernetβ on left, and then βNetwork and Sharing Centerβ on right.
Step 3: The βUnidentified Networkβ is set to βprivateβ which is what I want it to be. For contrast, my wifi network is set to βPublicβ (see arrow on the left). Click on the βEthernetβ hyperlink.
Step 4: Click on βPropertiesβ of the first box that pops up. Then click on βInternet Protocol Version 4 (TCP/IPv4)β.
Step 5: Click βUse the following IP addressβ and add in β192.168.1.200β for βIP addressβ. The βSubnet maskβ should just show up as 255.255.255.0. While I am no expert by any means in networking computers, I do think you can choose the last three digits of your IP address from 1 to 255 254 [Correction sent to me by my favorite critic, AC1JR!] I picked β200β rather arbitrarily. Once you are done, click βokβ, βokβ, and βcloseβ on the multiple windows.
Step 6: If you need to make your network private because it is showing as public (see Step 3 above), you need type βsecpol.mscβ into the search bar and press enter.
Step 7: In the pop-up window, click on the βNetwork List Manager Policiesβ under the βSecurity Settingsβ tab. Then click βUnidentified Networksβ. In the next pop-up, choose βPrivateβ. Hit βApplyβ and then βOkβ. Your βUnidentified Networkβ settings should now say βPrivateβ.
Step 8: Open the file manager and click on βNetworkβ. Your computerβs name should be listed there. My computer is named βPC-1β.
Step 9: Now it is time to network your second computer. Go back through Steps 1-8, but this time on the new computer. Below shows all of the steps ordered numerically. Donβt forget to change the ethernet connection to βPrivateβ as shown above. The only difference is that you want to assign this computer a different IP address than the first one. I chose 192.168.1.201.
Step 10: Check the βNetworkβ tab in the file manager to make sure the second computer (in my case, βPC-2β) shows up.
Step 11: Repeat these steps as many times as you need to in order to connect all of your computers to the network. Just change the last digits of the newly assigned static IP address, as they all have to be something different. I have three computers that are now linked together.
Step 12: Once your computers are all networked, open N1MM. Under the βWindowβ menu, find and click βNetwork Statusβ.
Step 13: Make sure that the most recent version of N1MM is installed or else you will get an error message when attempting to connect to the other networked computers (in red below). You also need to make sure that everything else about N1MM is identical, in particular that the contest information for the log is the same.
Step 14: When all of the computers are identically set-up, with the same software versions and contest information, open up the βNetwork Statusβ window. A bubble will show that gives you an option to turn on βNetworked Computer Modeβ. Click it!
Step 15: If you see all of your computers listed with no red error messages, your networking efforts are a success! Make sure you have designated one of the computers as the βMasterβ by checking the appropriate box.
There you have it! N1MM Logger Plus synchronized across multiple stations for Field Day! I hope to catch you on the air!
Carsten, OZ9AAR added many new features. The best in this release is:
When a station with "/" in the callsign (/P, /R etc) is called, UHM will retry a number of times to get "DX heard me" status (if the DX is using UHM). This helps when the DX/Rover has bad internet connection. Terminal will retry 4 times with 5 seconds delay to get an answer. This means that it can take more than 20 seconds before you get a UHM confirmation on a "/P" etc station ! If the DX has good internet, the confirmation will happen instantly (after the delay configured in "UHM settings"), if internet is not optimal, it will allow 20 seconds delays from the DX to the UHM server.
The latest versions can be downloaded on his Website.
The Amateur Radio Software Award (ARSA) committee is pleased to announce that they have selected OpenWebRX, a project led by Jakob Ketterl DD5JFK, and OpenWebRX+, a project led by Marat Fayzullin KC1TXE, as the winners of the 5th annual Amateur Radio Software Award. The award recognizes software projects that enhance amateur radio and promote innovation, freedom, and openness in amateur radio software development.
These projects allow access to radio reception from around the world, whether they are ham operators, shortwave listeners or somebody curious about radio waves. The committee is impressed with the ease of installation, simplicity of use, and overall features that are provided.
The history of these projects showcase the benefit of open source software. OpenWebRX was originally created by AndrΓ‘s Retzler but due to the demands of his career he decided to discontinue its development. Jakob Ketterl took over the OpenWebRX project and continues to maintain and improve OpenWebRX. Marat Fayzullinβs OpenWebRX+ builds on top of Jakob Ketterlβs OpenWebRX adding support for additional communication modes and advanced features. Both projects are currently separate, allowing implementers of hosting sites to choose between the simple core version or the enhanced version, while allowing the developers to focus on their projects goals.
Jakob Ketterl plans to use the award money to purchase new hardware for the build system of the OpenWebRX project. Recently he added a number of avionics related modes (ADS-B, VDL2, HFDL), a new decoder for DAB (European digital broadcast standard), the ability to decode RDS / RBDS, and a new experimental data interface in the form of MQTT that is intended to allow third-party processing of the information that is received via OpenWebRX.
Marat Fayzullinβs goal for OpenWebRX+ is to support as many communication modes as possible without the need of tweaking multiple pieces of software. In his own words: βIn a way, I view OpenWebRX+ as a real-life βtricorderβ for the radio spectrum.β
The ARSA committee is already looking forward to next yearβs award and welcomes input and nominations for future awards.
Altium Designerβs Constraint Manager acts as a central hub for managing all your PCB design rules, electrical properties like trace width, physical dimensions, and clearances. It simplifies organization by offering a table format for...
"Discover the secret to reigniting your passion for FT8 with GridTracker. Dive into a world of real-time data visualization, interactive maps, and comprehensive call rosters, transforming mundane operations into thrilling adventures. Follow expert advice, explore step-by-step instructions, and uncover valuable resources to elevate your ham radio journey. It's time to make FT8 fun again!"
This blog exists for me to catalog sucesses and failures. The other thing it does is provide me with a place to put things so that I can get to them no matter where I am assuming β an internet connection. The topic for today is a refresher on my setup for my portable digital operations.
The Gear and Software
This discussion centers around the use of the IC-705 and the Microsoft Surface GO 2. I have no reason to believe that changing the computer will make any difference as I have gotten this working on other laptops, but the operating system will require some attention.
Iβm running Ubuntu as my Linux distro on this device. There is pre-reading required to make this all work and weβll get to that in a second.
Software includes the following from the Ubuntu repository:
wfview
fldigi
WSJT-X
Pat
I am currently using the fork of ardop known as β ardopcf from pflarue on GitHub. New and exciting things are happening here in the world of ardop.
The Pre-Work β wfview
There is a great set of instructions on how to get ALSA loopback devices set up appropriately for wfview in their well-written user manual. Start here:
With all of that done and in place, there are a few things to look at in wfview for rig control to make life a little easier. At the bottom of this page of the wfview manual there is some good information on setting up wfview to do what flrig would do. Thatβs what I do. Why? Because itβs working and keeps things simple. The important thing, in my experience, is to set the port number to something other than 4532 which is the flrig default. I set it to 4533 because thatβs a safe port number.
Here is what my wfview External Control tab looks like:
The screen for External Control in the wfview application.
It should be noted that Iβm using the Virtual Serial Port. This is a mapping to /dev/pty/NUMBER and it takes care of itself once set up.
fldigi
With wfview up and running, setting up fldigi is relatively simple. The following configurations for audio and rig control are currently working.
fldigi audio settings with the PortAudio section selected, Loopback PCM (hw:10,1) set for Capture and Loopback PCM (hw:11,1) set for Playback.
The rig control settings are set on the HamLib segment of the Rig Control section in the configuration dialogue.
Use hamlib is selected. Rig is set to Hamlib NET rigctl (stable) Device is set to 127.0.0.1:4553 (as found in wfview) Baud rate is set to 115200
All other settings are defaults.
The fldigi rig control settings configured with the values defined above.
With this complete, save and initialize the connection and then go to the main fldigi window to tune or send a station ID. Rig control and audio should function as expected.
WSJT-X
WSJT-X is the odd duck. My dad and I have the rig control configured differently, but it still works for both of us. What does that mean? There might be more than one successful configuration so maybe find what works and donβt touch it after that. What I use is listed here.
The Radio settings tab is configured as follows.
Rig: Icom IC-705 Serial Port: /home/jcw/rig-pty-1 Baud Rate: 115200 PTT Method: CAT Data Bits: Default Stop Bits: Default Handshake: Default Mode: Data/Pkt Split Operation: None
The WSJT-X Radio configuration window with the values set as detailed above.
The Audio setup matches the devices that are set in wfview but in reverse.
Note: I find the labeling in wfview to be counterintuitive. Itβs probably just my broken brain, but I have to remind myself to flip things around and think about it as source/destination pairs. Itβs probably just me.
The WSJT-X Audio configuration window with the values set as detailed above.
With this configuration in place, one can test the rig control on the Radio tab or by going to the main window and changing frequencies. Running a tuning cycle briefly will test audio output.
ARDOP β ardopcf
ardopcf is available on GitHub as a binary. Simply download it and put it in /usr/local/bin, run a quick chmod+x on it, and it should be good to go. Thatβs all that it required of me.
With ardopcf in place, lauching ardop is fairly simple. I put it in a little script so that I donβt have to type out the arguments each time. I named the script βstartardop.shβ and dumped it in my home directory. Creative, huh? Hereβs what it looks like:
When you start ardopcf, you should start to see pairs of numbers in the terminal showing you audio input levels. If youβre getting a lot of 0,0 then you might have a problem or wfview might not be running. Maybe your rig is off? Check your signal chain. If, on the other hand, youβre seeing numbers pop up every 4 seconds or so, then youβre in good shape.
Wow. Thatβs a lot of stuff. That is the configuration that is currently working for me for sending Winlink email using ARDOP or telnet.
What a lot of people seem to miss is that Pat has a web gui that will run on localhost:8080. It makes using Pat a lot easier and gives a fresh, modern GUI to Winlink email. And yes, it handles forms and everything. Itβs pretty darned cool!
To get that up and running, I use yet another creatively named script: startpat.sh. The contents of that are:
pat-winlink --listen "ardop,ax25,telnet" http
What does that do? It starts up Pat listening for connections on ardop, ax25, or telnet. I didnβt detail ax25 here because, well, Iβm not done playing with that just yet. And telnet should always be there so that you can use Pat if you have a good internet connection and NEED to check your Winlink email. The http argument starts the application listening on 8080 for the web UI. With Pat running, all you have to do is go to https://localhost:8080/ui and youβll see the web UI. Youβre now free to explore Pat and send/receive Winlink email.
Final
This is the setup that is currently working for me. I will update this as I add other modes, etc.