❌

Normal view

There are new articles available, click to refresh the page.
Before yesterdayKC8JC

A New Approach To Winlink

By: KC8JC
3 July 2024 at 13:10

This Again?

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.

https://www.wg1v.org/posts/2023-12-27-Winlink-and-Pat-on-M1-Mac

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.

Thanks for reading along!

Loading

Portable Digital Operations Setup with wfview

By: KC8JC
8 April 2024 at 14:11

What Are We Doing?

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.
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.
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.
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 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 Audio tab is configured as follows.

Input: plughw:CARD=Loopback,DEV=1
Output: plughw:CARD=Loopback_1,DEV=1

The WSJT-X Audio configuration window with the values set as detailed above.
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:

ardopcf 8515 plughw:CARD=Loopback,DEV=1 plughw:CARD=Loopback_1,DEV=1

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.

Pat

Pat requires some homework and I’m just going to dump some output here. There are instructions for configuration here: https://github.com/la5nta/pat/wiki/The-command-line-interface

The crux of the matter is configuring ~/.config/pat/config.json. Your mileage is going to vary here, but my config looks like this:

{
"mycall": "KC8JC",
"secure_login_password": "NOTPUTTINGTHATONTHEBLOG-HAHAHA!",
"auxiliary_addresses": [],
"locator": "EN91hd",
"service_codes": [
"PUBLIC"
],
"http_addr": "localhost:8080",
"motd": [
"Open source Winlink client - getpat.io"
],
"connect_aliases": {
"telnet": "telnet://{mycall}:CMSTelnet@cms.winlink.org:8772/wl2k"
},
"listen": [],
"hamlib_rigs": {
"my_ic705": {"address": "localhost:4533", "network": "tcp"}
},
"ax25": {
"port": "wl2k",
"beacon": {
"every": 3600,
"message": "Winlink P2P",
"destination": "IDENT"
},
"rig": "my_ic705",
"ptt_ctrl": true,
"beacon_interval": 0,
"cwid_enabled": true
},
"serial-tnc": {
"path": "/dev/ttyUSB0",
"serial_baud": 9600,
"hbaud": 1200,
"type": "Kenwood"
},
"ardop": {
"addr": "localhost:8515",
"arq_bandwidth": {
"Forced": false,
"Max": 2000
},
"rig": "my_ic705",
"ptt_ctrl": true,
"beacon_interval": 0,
"cwid_enabled": true
},
"pactor": {
"path": "/dev/ttyUSB0",
"baudrate": 57600,
"rig": "",
"custom_init_script": ""
},
"telnet": {
"listen_addr": ":8774",
"password": ""
},
"varahf": {
"host": "localhost",
"cmdPort": 8300,
"dataPort": 8301,
"bandwidth": 2300,
"rig": "",
"ptt_ctrl": false
},
"varafm": {
"host": "localhost",
"cmdPort": 8300,
"dataPort": 8301,
"bandwidth": 0,
"rig": "",
"ptt_ctrl": false
},
"gpsd": {
"enable_http": false,
"allow_forms": false,
"use_server_time": false,
"addr": "localhost:2947"
},
"schedule": {},
"version_reporting_disabled": false
}

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.

Loading

❌
❌