Monday, July 24, 2017

Forty Years of Personal Computing - Prelude

1971 Logix 0-600 "Electronic" Computer kit
When you are young, you rarely realize how smart your parents were. Mine bought me all kinds of educational toys. One birthday, I got an  optics experiment lab that culminated with building a working 35mm camera. I did every step in that lab, and eventually built the camera. OK, it was inexpensive plastic, yes. And while I never did manage to buy film for that camera, I learned all about concave, convex, chromatic aberration and other principles of optics.

One of my favorite educational toys was a subscription to "Things of Science." Every month, I'd receive a little envelope or a blue box with science stuff. There would be a small booklet, often with plastic or cardboard parts in the box. The people who came up with this were geniuses, as they managed to package a lot of science into a tiny, inexpensive kit every month.

It was hit or miss each month. Sometimes, the article wouldn't interest me, or I'd just not be patient enough to do the experiments. Sometimes, it would be really cool -- like they'd send enough chemicals to grow a small plant hydroponically. Or send some plastic lenses in cardboard holders to do optics experiments. I played with those lenses for months and months.

And while not every kit was a hit, it at least got me to study some element of science for a few hours each month.

The actual "computer", sans wiring.
A couple of years ago, I found something from my childhood in my father's basement. It was a 1971 Logix 0-600 "Electronic" Computer kit. I use the quotes only because this kit contained no electronic components. It's just a battery holder and ten lamps, a SPST pushbutton, and ten ganged ten-way SPST switches. The switches provide data input, the lamps show the output, and the switch connections are wired by sticking pieces of wire into holes that make contact with metal clips -- very much like a modern solder-less breadboard.

The first part of the manual contains assembly instructions. These are easy, provided you can turn a screwdriver and strip a wire. I must have been 11 or 12 when I received this kit, and I did the assembly entirely myself up in my room.

The manual is the brilliant
part of the whole kit.
This kit was really brilliant. Despite the lack of any electronics, the manual shows how to build 39 different "programs." The switches were used to enter the input, and tissue-paper overlays are slipped into the transparent amber lamp cover to label the output. Each program had a clear wiring diagram.

All you had to do is read the program description, and follow the diagram.  So long as you wired it up correctly, the program would work as advertised. The ganged switches were sometimes a little flaky, but not enough to detract from the experiment.

Through the series of programs, the kit teaches some of the basic logic and computer principles -- AND gates, OR gates, NOT gates, Addition, Counting, binary numbers, Venn diagrams and more.

I do remember working through all the programs, and even trying to develop a few myself. At one point, I figured out how to wire up a program, but realized it required a 12-way ganged switch, instead of 10-way. It was beyond the capabilities of the 0-600.

After I ran through the programs in this kit, I don't remember using this machine much more. But it was a real learning experience. The experiments taught me a number of important logic and computer concepts that I later used in my education and in my career. Having it now brings back fond memories.

Friday, June 16, 2017


For the last four low-band seasons, I've been hoping I'd capture enough confirmations for 5BDXCC. I had already confirmed 40, 20, 15 and 10m DXCC, I just needed to get to the magic 100 entities on 80m. As I wrote in the fall, I just needed a few more to put me over the top.

At that time, I had 91/90 confirmed on LoTW, plus a couple of cards.

Today, I received a confirmation on 80m from CE2VMF, bringing my totals to 98/97 on LoTW. Plus, I have THREE cards with additional confirmations, which brings the overall total to 101/100.

I remember talking to Jim Streible K4DLI (who now, unfortunately, is a silent key) about his 5BDXCC plaque. Jim said he had spent 35 years earning that award. And Jim earned it back in the day before electronic confirmations, too.

So, when I apply for DXCC awards later this year, I'll be petitioning for 6BDXCC (got 30m, too!).

I'll have to seriously consider ordering the plaque.

Tuesday, May 23, 2017

PIC-based Push-button K9AY Controller

Push-button K9AY controller works!
I can't believe I have been working on this project for three years. I wrote about it earlier, describing the project and how it didn't work, because of the bouncy mechanical switches.

Yes, I bought the PIC16F1503 chips. It also took a while to figure out how to program them.

Conceptually, the software is simple. I program the Timer1 timer to fire every millisecond. Then the cpu loops and waits for an interrupt.

When the interrupt fires, I gather the state of all four of the direction buttons from PortA, and shift each into a byte in memory. This gives me the state of each button for the last eight milliseconds.

When a button is pressed, even if it bounces a bit, it will eventually transition to an on state. If it holds that state for seven milliseconds, it will result in a distinctive pattern: 01111111.

That's what I look for. If a button has this pattern on any interrupt, I consider it to be on. Otherwise, it is off. Take the value of all four buttons and jam them together side by side, and you have a number between 0 and 15. Sixteen values in a lookup table. Look up the current value. If it is zero, do nothing. If non-zero, I write the value out to PortC. The PortC bits control the LEDs on the buttons as well as the control lines for the two relays which select the control voltage for the K9AY loops.

All the work is in the lookup table. It has all zeros except for the four entries where one button has been pressed -- one each for the four directions.

It's all less than 100 instructions.

Most importantly, it works!

My prototype has wiring that's a little flaky. The board flexes a little bit when the buttons are pressed and sometimes the wiring moves a bit and shorts out. I'm thinking that now that I have something that works, I should make a printed circuit board.

Friday, March 31, 2017

Radio 2017 - Progress March

I don't want to admit it, but no, not a lot of progress on this. No long vacation excuses this time, just busy with life. What can I say?

I did get to review the WWDC videos regarding storyboards. I (re-)discovered a few interesting things:
  • Set the main storyboard in the info.plist - I had done this.
  • You can build up window content by using content segues to multiple view controllers. I didn't have a need for this yet, but I'm sure it's coming.
  • Control-Drag directly from a menu or button to a window content view. This will produce a segue to the view controller. Easy and useful. The host view controller receives a method call prepareForSegue:sender: before the window appears for the segue. I'm not using this because there doesn't seem to be a way to associate the document window for this action when it appears on the application menu. 
So, my main question became -- how does all the other document stuff work? When you select File / Save, how does that get to the NSPersistentDocument class? Turns out, it uses a basic target/action to the First Responder. 

I just had to figure out is how to add my action method for my modes window to the First Responder. That turns out to be easy. Select the First Responder icon of the main menu. Then, use the Attributes inspector, and you'll see a list of User-Defined actions. The weird thing is, though, once you've defined them, they disappear from this list.
No matter, just add an action, then edit it to be the method name you want. Then wire it up to the menu with control-drag as before. Implement the method anywhere in the responder chain. I implemented this in my document class. And my mode window comes up correctly, and I have a unique instance of it for each document. Cool.

Next is the hard part -- trying to figure out how to associate the managed object context of the document with the modes view controller. This is were it gets weird. The window controller has a property document which points to the document for that window. How you get to that value from the view controller is something I have not figured out yet. 

Tuesday, March 28, 2017

Cycle 25

Smoothed SSN of the last six sunspot cycles.
Cycle 24 sucked.

I mean, really. Look at this graph. It's pretty clear that Cycle 24 was barely half as tall as the three cycles before it. It wasn't even as good as Cycle 20.

Smoothed SSN in Cycle 24 never made it over 82. The previous four cycles had several years over 100.

And that was after a sunspot low that lasted a couple of extra years before Cycle 24 began an upswing.

Now we're in that downward slide again. I know from experience that we're not seeing the end of the lull between cycles until the 2800 MHz solar flux gets down to 66 or 65. That's probably three years away. And then it will take a couple of years to build up. I'm thinking it will be about 2022 before Cycle 25 shows it's colors.

In the meantime, propagation on 160m and 80m should be pretty good in the winter months for the next several years.

I've told my wife, I want to be ready for Cycle 25. I want to have my antennas and station ready to rock when the sunspots come back.

Tuesday, February 28, 2017

Radio 2017 - Progress February

Well, I can't say that I've made much of any progress since the last posting. I took a 10-day trip to Israel to visit Bethlehem, Masada, Galilee, Jericho, Jerusalem -- all the holy sites. The trip was very intensive, and after I returned home it took me about a week to recover and then catch up on all my missed work.

I did spend a little time going over my test programs trying to figure out the right way to write Cocoa code for MacOS X document-based apps with Storyboards. What I'm doing seems too complicated.

So, I've decided I need to go back and find the WWDC videos regarding using storyboards with MacOS X, and it also might be useful to view the the ones for iOS docment-based apps as well, to see if that gives me any insight.

With any luck, I'll make much more progress in March.

The Station Notebook

When I originally set up my station as a novice, I didn't make a lot of notes. I wrote a few things on the back-side of my logbook pages: radios I used, antennas I put up. But, for the most part, I freely made changes to my setup without a lot of documentation.

Some years later, I had a small steno-style notebook lying around, and I used it to record certain information. Like the exact color-code of the RS-232 cables I wired up for my computer. That sort of thing was handy to have written down, because it saved a lot of reverse-engineering later I went to make another cable. But that was about it.

Perhaps a dozen years ago, I read a couple of articles about James Lawson, W2PV, and how he kept copious notebooks about his station. He even solved a sticky problem during a contest, because he kept notes about his antenna installation.

After that, I started writing more things down in my little Steno notebook. Most of it was changes I made to the station -- radios or antenna modifications. Or if something big happened -- like I blew up the amplifier. I recorded a lot more details, and I put dates on everything.

But when I began to spend most of my time out in Floyd County it put my little steno notebook out of reach. I had a new station and I still wanted to keep notes. My solution was dead simple -- I created a text document using TextEdit. I called it Floyd County Station Log.

Looking at it today, it's more like a diary. Each month, I put in a new heading: March 2017. And below that I record anything interesting that I do. I record the things that work, and I also record the things that don't work! If I don't do anything that month, I'll just change the heading to the next month.

The bottom of this document has a list of projects to be worked on. Silly now, since I'm no longer at that QTH: 6m antenna, K9AY controller, 20m and 30m traps for the dipole, tribander-Moxon  times 3 (now that's an interesting project I'll need to write about some day!), remote antenna switch, etc.

This method worked so well, in May 2015, I adopted it for my main station log. Not only did I make new entries, but I also entered all the data from the steno notebook. Plus, I went back through all of my contest comment submissions and recorded all the changes I had made to the station from November 1994 to date.

Today the Gwinnett County Station Log is a reasonably complete record of all the things I've done with the station for the last 22+ years. It has six pages of project notes at the end. Lots of stuff to work on! And, yes, I also have a smaller document for the Walton County Station Log.

I guess my point is that having a station notebook is extremely valuable. It doesn't matter if you use a small steno notebook, a spiral-bound notebook, a composition book with graph paper, a loose-leaf notebook, or a computer document. The important thing is to find a style that works for you to keep notes. After a while, there's just too much to try to remember. So keep good notes.