Pre-Halloween Contests

zombies_in_my_radio_roomThis is how I looked this evening at 8 pm, at the conclusion of the CQ WW SSB contest.  I didn’t work the whole contest in “iron butt” mode, but I my throat was sore and my ears were ringing at the end of the event anyhow — I think I’m out of practice (particularly on voice), as I’ve been more focused on projects than operating lately.

I started early on Saturday morning, rather than the night before and took a few breaks during the day. In the evening, I hung up the earphones around 7 pm and went out for dinner and to see the movie “Gravity”. I didn’t get back on the radio until Sunday morning around 11 am, but then worked more or less straight through to the end of the contest at 8 pm.

The notable feature of this year’s CQ WW SSB was the highly energized state of the ionosphere, with solar flux above 160 for the entire contest, and no solar events to spoil the fun. Ten meters was an endless ocean of signals, with stations dotting the landscape up to around 29.6 Mhz. The flip side of this was that atmospheric absorption and noise were elevated on the lower bands, but the trade off seemed very reasonable to me.

By category, I was a single operator, low power (95W), all band station. My ulterior motive during the contest was to find some new ones, so I was “assisted” in that I kept an eye occasionally on the DX cluster and checked my signal on the reverse beacon network. Most of the time, I cruised the bands, just listening for callers, though. As a “little gun”, I didn’t go a lot of calling myself.

The rig was the K3 and my antennas consisted of my attic antennas: a DX-CC covering 10, 15, 20, and 40m (shortened) and a fan dipole for the lower portion of 10m and 17m (the 17m portion wasn’t used). In addition, I had a chance to use the 80m vertical that I had recently modified. Unfortunately, both 40m and 80m were very noisy, both due to atmospheric noise and local QRM. I had anticipated that 80m would be my secret weapon for working the Caribbean an perhaps Europe, but not so much. The conditions were poor on 80m, and those stations were already doing good business on the upper bands.

The contest was enjoyable for the variety of stations worked, as well as the number: 254. I did log one entirely new DXCC entity: Trinidad and Tobago, and worked a number of countries for the first time on phone, including three consecutive voice contacts with Japan. My final score was 123,467 according to N1MM, which I suppose is good, since I didn’t really have a goal. After caressing the data, here is the list of countries worked: Aland Island, Alaska, Antigua & Barbuda, Argentina, Aruba, Austria, Barbados, Belgium, Bonaire, Brazil, Canada, Canary Islands, Cape Verde, Chile, Colombia, Costa Rica, Croatia, Curacao, Czech Republic, Denmark, Dominican Republic, Ecuador, England, Estonia, European Russia, France, French Guiana, Germany, Hawaii, Honduras, Hungary, Iceland, Ireland, Italy, Jamaica, Japan, Jersey, Latvia, Lithuania, Madeira Island, Martinique, Mexico, Morocco, Netherlands, Nicaragua, Norway, Poland, Portugal, Puerto Rico, Scotland, Serbia, Slovak Republic, Slovenia, Spain, St. Maarten, Saba, St. Eustatius, Sweden, Trinidad & Tobago, Tunisia, Turks & Caicos Islands, Ukraine, Uruguay, USA, Venezuela, Virgin Islands, Wales.

As usual, after the contest, I uploaded logs to Lord-Of-The-Web server, and of course, even one else did the same. I checked back and hour later, and my log had not been processed — it must take a lot of computing power to crunch and correlate that many records. Being the patient type, I checked back another 20 minutes later, and sure enough, I saw a familiar post-contest sight:


In addition to the CQ WW SSB, I shambled-on-out for the 2013 Zombie Shuffle on Friday night. I joined in late because of a Vienna Wireless meeting on Friday night, so I only caught about two hours, from ten to midnight. Twenty meters was dead by the time I got there, and 40 and 80 meters were really noisy. I had six tortured QSOs in all, but I’m glad I had a chance to take part in the QRP event.



A loading coil for 80m

inboxAs the days grow shorter with the approach of winter and activity shifts towards longer wavelengths, I took stock of my log and noticed that while I have racked up a reasonable number of contacts on 15, 20 and 40 meters, 80 meters lags far behind. I anticipate moving overseas in about six months, but before I go, I’d like to even up the score on 80 meters for this QTH.

My lack of contacts on 80m is a function of my antenna limitations — where I live, I can’t put a lot of metal in the sky. I have one outdoor antenna, a 43-foot vertical; the rest of my antennas are in my attic. My vertical antenna is, intentionally, not much to look at: a single, black wire that runs from the ground up into the top of a tree and is almost impossible to see from a few feet away. However, under the gravel of my backyard, there is a DX-Engineering radial plate. Eight radials spike out underground from that point under my property and into the adjoining forest.  The antenna is fed by a coax line that runs underground from the house to that plate, where the center conductor feeds right into the antenna. The antenna was never very well tuned on any specific band, but it managed pretty well on 30 and 40 meters with either built-in or external tuners in the shack. With difficulty, it could tune 15 and 17 meters, and my LDG tuner could force it to work on 80 meters, but the amount of energy actually going out the antenna was pitifully small.

Winding the coil with the help of a vice, some PVC and a couple wood sticks.
Winding the coil with the help of a vice, some PVC and a couple wood sticks.

So, I decided that for this winter, the vertical would become a dedicated 80m antenna. The attic antennas can handle the other bands. My first thought was to make an inverted L for 80m, but the far end would extend off my property and would increase visibility of the antenna, particularly in the winter when there are fewer leaves for cover. I decided to work with the vertical radiating wire that was already in position, but to interpose a loading coil at the base.

Pete, K6BFA, lent me his MFJ antenna analyzer, and I measured the impedance of the antenna at the point where I anticipated the matching coil would be located. I measured at 3.7 Mhz, a bit higher in frequency than where I intended to operate and the complex component of impedance measured 278j. Since the antenna is a shortened radiator, this would be capacitive reactance, so -278j.  I calculated the inductive reactance needed to null it out as xL = Xc/2*pi*freq, or 11.9 uH.

I had made a coil form from Schedule 40 PVC labeled “one and a half” inches, but measured its outer diameter as 1.9 inches. I wanted to wind a coil big enough for the about 12 uH needed above, plus extra so I would have some for shunt inductance (which I guessed would be around 2-5 uH).  I figured 18 uH would be enough to have room to spare. Using the formula of n-turns = sqrt(inductance((18 * coil diameter)(40 * coil length)))/coil diameter, all values in inches, I came up with a three inch long coil with about 28 turns. This fit nicely inside the box that I had, so I went with it.  Note that the coil shown in the box in the picture was my first attempt, and the coil turned out to be too small. There is a learning curve for this sort of thing, you know.

The coil was mounted on nylon screws and coils were made rigid with epoxy. The coil wire itself was some 18 gauge hook up wire that turned out to be too large for my protoboard, so I am glad it found a good home in the matching coil.  The top of the coil goes to the antenna. The coax comes in the side of the box, and initially, I probed the coil to find a good matching point tuning at 3.7Mhz, intentionally above the CW portion of the band, where I wanted to operate. I found the optimal spot to bring the complex portion of the impedance to zero, and then played with the ground lead, trying to find a point lower on the coil that would yield lowest SWR at 3.560 Mhz, the QRP CW watering hole frequency.  After playing with the placement of these two leads for a while, I was satisfied with the resulting SWR curve, which is shown below.


I could have shifted the curve higher in frequency, but I really don’t operate much voice, so I made the decision to optimize the antenna for CW and digital mode transmission at the lower frequency end of the band.

Back in the shack, I verified that I got the same measurements and switched the antenna through to my K3. The rig read the antenna as SWR near 1:1, so I made a couple test transmissions and worked stations in Hungary, Italy and Jamaica. I then turned power to 5W and worked a station in NY. It’s anecdotal, but the antenna seemed to be working fine. After calling CQ at 5W, I checked the reverse beacon network and noted that I was greater than 10 dB above noise as reported by stations in W1, W2, W3, W4, W5 and W7, which seems much better than previously.


Some references:

Making a loading coil for 43-foot vertical antennas (de AD5X)

Winding your own coils (de W3JIP)

Coil inductance calculator (imperial and metric)


A tiny and open source CW keyer

att45While working on a new project, I had a choice of either plugging in the output of a free-standing CW keyer or embedding one into the project. I decided to go with the embedded keyer, but then had to either find or write one. K3NG has written a top-notch keyer based on the arduino platform. Its strengths are its modular design and extensive feature list; it can be compiled to run on a number of chips, with features only limited by the flash memory capacity of the targeted chip. However, it does have a certain minimal size, even when the number of features is stripped down to bare essentials. It would have been a reasonable choice if I could have used the same microcontroller for other functions, with a sizeable portion given over to the K3NG keyer, but in this case, I just want a dead-simple CW keyer.

I’ve used K1EL‘s K12 keyer in the past, as well as the N0XAS picokeyer, and this was more what I had in mind — a low power, small chip. After a quick search, I turned up the YACK (yet another CW keyer) project by Jan Lategahn, DK3LJ. He developed it for the ATtiny45, which has only 4k of flash and even less RAM and EEPROM storage. The project was not developed on the arduino platform, so the code has a much, much smaller footprint. Jan deposited the source code in a svn repository at Source Forge: And, this isn’t a matter of trading off features, the YACK supports a number of keying modes, has many configurable features, a beacon mode and even does code practice. Pretty feature-rich, actually.

On that site, it is possible to download not only the source, but the compiled intel hex files for flash and eeprom. Naturally, I went for instant gratification, downloaded these, and flashed them onto the ATtiny using my arduino duemilanove as an in system programmer as previously (but this time, not having to mess with the fuse settings).

I stuck the programmed chip on a protoboard and tried it out. At first I wasn’t sure if it was working at all because it make no sound when powered up, but this was the way it was designed. Next, I tried closing the dit and dah paddles, and heard the expected tone on the piezo buzzer. Holding down either paddle resulted in tones of the correct duration, and holding both resulted in iambic mode B keying. So far, so good.

However, I could not get the keyer to work in command mode. Holding the command key just resulted in rapid clicking on the piezo, perhaps meaning that it was going into and coming out of command mode immediately since it sends an “e” when it exits command mode. Holding the button and closing one or the other paddles resulted in correct behavior: increasing or decreasing the sending speed.

I also noticed that a quick (less than a dit or dah length) tap on the paddles resulted in a shortened dit or dah being sent. This is not the expected behavior for keyers like this. Even if the paddle is released early, the generated tone should be of the correct length, one or three elements long.

jackyackprotoBoth these issues made the keyer unusable, but it seemed like at least the duration issue had been addressed in an earlier changelog entry, so I thought that perhaps the compiled file might not reflect the most recent and presumably most polished version of the project.

I recompiled the project from source (version 0.7) and noted that the resulting hex file was a bit different in size that the one I had previously used. I loaded both the flash and eep files onto the ATtiny and stuck it back in my prototyped keyer circuit. This time, it worked exactly as described in its documentation. Paddle clicks yielded dits and dahs of the right duration and the command button was fully functional. I ran through all the available commands, and each performed as advertised. I ran the keyer output to my FT817, which I had set to make a tone but not transmit when keyed. I had no problems using the keyer to send at various speeds. All good.

I made some minor tweaks to the code and revised the version to 0.75.  This shouldn’t be taken as any sort of official version number, but I needed some way of setting this revision apart from DK3LJ’s original code. I didn’t fix any bugs or make any real improvements, I just optimized the configuration for my purposes. Mostly, this is a matter of taste, and of being used to certain conventions from other keyers. I left most of the user interface alone, though, since I thought Jan had made some very reasonable choices in how he set it up.

Here is a list of what I changed:

  • Power up message: Now, when powered on, the keyer sends a “73” to let you know that it is alive. This is tone-only, no keying. This provides a quick check that the battery is okay and that everything is hooked up right, which could be helpful to anyone building this circuit, or someone who is on their way out the door for field operation and wants to make sure their keyer is healthy.
  • Positive Transmit keying default: In most cases, people will want to positively key their rigs, but the default formerly was that the transmit line would go low to key and remain pulled up to VCC otherwise. I flipped this around, which let me use a cheap NPN circuit with open collector to key.
  • Side tone: For the project that I’m using, a 700Hz side tone is optimal — the keyer is followed by a filter with a 700Hz center frequency, so I changed it in the default settings. I actually prefer 800Hz, but the tone can be changed on the fly, so this isn’t really an issue.
  • Keying mode: This is entirely personal preference – I made the default keying mode iambic A rather than B, because I think it is easier for someone accustomed to Iambic B to send A rather that the reverse. People who are used to iambic A are thrown by the “extra” character that B generates.
  • Speed: I bumped the default speed to 15 wpm. Maybe 12 wpm is more inclusive, but 15 wpm works better. Also, anyone can increase or decrease the speed by holding the command button and pressing one paddle or the other. It is not necessary to send a character correctly to change the speed, so I think I haven’t really excluded slower operators.
  • Exiting command mode sound: Previously, the keyer sent an “e” to indicate that someone intentionally exited command mode by tapping the command button a second time or that the command mode had timed out due to inactivity. I found the “e” a bit short and thought it could be missed. Also, at times I forgot I was in command mode, and whatever else I was doing, it just sounded like an extra dit got in there, without making much sense. I changed the exit sound to “sk”, similar to the picokeyer, because it has a more characteristic sound and would not be expected in the audio stream except at the end of a QSO, so it is more noticeable.
  • Acknowledgment sound : After a valid command is given, the keyer used to acknowledge it with an “OK”. I changed this to “R” because it is shorter and “R” connotes “Roger, received.” This borrows a bit from the K1EL keyers. I only steal from the best.

After testing out my minor revision, I uploaded the project to a repository at google code.  The project files include a schematic in Eagle format as well as a picture of the schematic as a *.png file.  For those who would rather not compile from source, I’ve uploaded the compiled intel hex files on this server: main.hex and main.eep.  I loaded the files into a stock ATtiny45, right out of the box. No need to mess with any of the fuses — the chip is factory configured to run on its internal 8Mhz clock, scaled to 1Mhz.

The last time I checked on mouser, these chips were a bit over a dollar each and the even more spacious ATtiny85s were a bit less — and that’s unit pricing — buy a bunch and the price falls off considerably. The rest of the components in the keyer are dirt cheap and easily substituted. Making a first-rate keyer these days is not an expensive proposition.

[Update 17 May 2016]

Unfortunately, the Google Code repository no longer exists, but before it went down, I migrated everything over to github, so project files are now over there:

Also see my later blog post about design of a PC-board for this project.

[Update 5 June 2016]

KC9ON has put together some nice kits based on the same code base, but with added features, a code practice oscillator and a small keyer board.