The Amateur Amateur: The Weather at the Bottom of the Rabbit Hole
By Gary Ross Hoffman, KB0H
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)
The APRS program I used was
(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
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
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
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.
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
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
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
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
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 display in the shack
It would only run within the
This was only a minor setback, however, as I quickly found the
instructions for making gcc compile a program that Windows would
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
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
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
Big mistake, and I spent another
week in a maze of twisty passages, all different before I got it all
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