The Amateur Amateur: The Weather at the Bottom of the Rabbit Hole

By Gary Ross Hoffman, KB0H
May 2020

AcuRite weather sensor array
The weather sensor array.. a long way down to the basement

I knew it would take a little work, but still thought it would be a relatively simple task. But in typical Amateur Amateur fashion, it quickly turned into me tumbling down the rabbit hole yet again, winding up in a maze of twisty passages, all alike.

The scenario: I had two home weather stations, an older La Crosse model and a newer AcuRite model. There was also a computer in my shack managing my APRS (Automatic Packet Reporting System) base station.

The APRS program I used was YAAC (Yet Another APRS Client), which was Java based, had nice features, and best of all, was still supported. It would also transmit weather information, but would only accept one specific data input format. And only my La Crosse home weather station could provide that.

Well, the La Crosse had always been a bit quirky. It had three outdoor components which had to communicate with each other wirelessly, then send another wireless signal to the indoor display, which in turn sent a wireless signal to my shack computer. Communications broke down frequently.

It got worse over the years. I eventually wound up replacing each of the components except for the indoor display, and they all ate batteries like they were going out of style. No surprise then that one day I just couldn't get the station to work at all.

This was not a big loss, insofar as I still had the newer AcuRite home weather station. But it annoyed me that I could not longer send weather information out with my APRS beacons. I kept thinking that there must still be a way to make that work.

Doing a bit of research on AcuRite's website, I found that it could send weather data to a computer. I just didn't have the right display unit.

So, I bought one. And got a little closer to the quagmire that would wind up consuming more time and energy than I could have ever imagined.

The new display would send weather data to a computer, but only with a direct cable, not wirelessly. And the computer that I needed to get the information into was in my shack. Downstairs in the basement of my house. Very far way from the weather sensors, which were on a mast atop the roof.

But, much to my surprise, enough of a signal did manage to get from the roof to the basement so that the AcuRite display down there was able to understand it. And after some fiddling, I got its weather data to transfer over to the shack computer.

It was at this point that I started getting into real trouble. The AcuRite data was not in a format that YAAC could understand. I had known that from the beginning. But, as a veteran computer programmer, I had convinced myself that I should be able to write a program to convert the AcuRite weather data into the format that YAAC wanted.

computer screen displaying YAAC
YAAC, Yet Another APRS Client

What I had forgotten was that all of my years of experience had been on main frames and UNIX workstations. I had never tried writing a program to run under Microsoft Windows.

Oh boy.

First things first. What computer language should I try to use? Well, YAAC was written in Java, so Java must work. I'd never written anything in Java, but I knew I had a Java manual somewhere in the house. I found the it right there on my desk, hidden behind my computer monitor. But, good grief, the thing was huge. It would take forever to go through it.

Opting for something easier, I perused the Internet. Yep, there were sites for beginners, and even some examples of things close to what I wanted to do. So, I got started with some very simple code.

And quickly found that writing a program in Java is not the same as being able to run a program in Java. You have to compile it first. I should have remembered that. (Note: Compile means converting a program from something programmer-understandable into something that is computer-understandable.) But, how do you compile Java on a PC?

You have to download and install something called Java Development Kit. I did, but was definitely getting the sense that I was chasing the White Rabbit, and would soon stumble over Alice herself.

My initial Java programs worked okay. They were very basic, and at that stage Java looked a lot like the C language, which I had used for many years. Unfortunately, Java began drifting into incomprehensibility as I added more lines of code. Practically none of the Java terminology was familiar to me. It was as if the creators deliberately made up a lot of obscure verbiage to avoid being sued by anyone. I rapidly reached the point of Maximum Confusion and decided to give up.

What about C? I was pretty sure I could still write a C program. But again, how to compile it? Well, the Internet offered a number of packages that would compile C code on Windows. I downloaded and installed a few (more junk to clog up my hard drive), but in each case the package was focused on nifty, peachy-keen things you could do, with the actual compilation steps being buried beneath layers of useless trifles. I didn't want to spend weeks learning stuff I would never use.

So I started over.

I knew there was a junk-free C compiler, “gcc”, available from the Free Software Foundation. Ah, but it ran under Linux, not Windows.

I grinned. I had the Windows Linux shell installed on my computer. I called it up and easily installed gcc.

One tiny step at a time, I began writing my AcuRite-to-YAAC-comprehensible weather data converter. Man, was I rusty. I tried compiling after almost every line of code that I wrote, and got errors on almost all of them. How long had it been since I'd retired? Hmmm, longer than I thought.

But I got through it. And compiled the program. And...

AcuRite secondary display
AcuRite display in the shack

It would only run within the Linux shell.

This was only a minor setback, however, as I quickly found the instructions for making gcc compile a program that Windows would run.

And it worked.

After a few more tweaks I installed my weather data converter program on the shack computer and let it run continuously, so that the weather data was always up to date.

Only.... some of the data was wrong. The wind speed and direction were correct, but the temperature and humidity were not. It took me days before I figured out that the AcuRite manual's description of the weather data stream was incorrect.

Almost there. YAAC was now sending out weather information with its beacons. And since my version of YAAC was several revisions out of date, I decided to update it.

Big mistake, and I spent another week in a maze of twisty passages, all different before I got it all sorted out.

It all works now.

For a while. And then the APRS program simply stops sending out weather information.

So now I'm down at the bottom of the rabbit hole again.

And I think that Cheshire Cat is laughing at me.



E-mail Gary Ross Hoffman

Back to The Amateur Amateur home page Back to Past Columns page