Salmon Run X-Treme!

The N7PP crew (current all time high score record holder) will be working as W7DX during this year’s Washington State QSO party a.k.a. The Salmon Run. 500 bonus points are awarded for each contact with the Western Washington DX Club during the event making W7DX one very popular station to call. W7DX will be in the unlimited class and will work the contest from three different locations using a different mode at each QTH. The CW station is located at N7BV in Clallam County; the SSB station will be at W7IJ in Pierce County; the digital station will be at K7BTW in King County. With this arrangement, making a contact for the bonus points should be as easy as shooting fish in a barrel.

For the past three years, N7PP has traveled to rare counties setting up a field day style station in a remote location. The last two years have been at a remote camp site in the Blue Mountains of South Eastern Washington. The weather and remoteness were a hardship that none of us were interested in repeating this year. It will be a nice change to be closer to civilization.

The Salmon will be served with Awesome Sauce this year!

WriteLog Module for CWJF Manchester Mineira

I wrote a series of blog posts describing how to write a contest module for WriteLog. In 2009 I started writing a contest module for the CWJF Manchester Mineira All America contest. The CWJF club sent out a nice brochure with the rules and the winners for 2009 and that spurred me into writing version 1 of my WriteLog module. WriteLog users, please test the module and send me your feedback.

Contest Module for CWJF Manchester Mineira All America

Radio is more fun with eyeball QSOs

I had the pleasure of meeting and greeting many of my radio friends this weekend at the large, regional Mic and Key hamfest. Having some face-to-face contact with other hams develops a covalent bond of our shared interest in amateur radio in general and sub-interests within the hobby. I think a unique relationship develops especially among those that participate in groups such as clubs, multi-op contest stations, and dxpeditions. Ham radio can be a solitary hobby but meeting friends in person provides a sublime experience that is refreshing.

What a Difference Sunspots Make

I worked a little DX during the ARRL DX CW contest last weekend. It was very pleasing to work Europe on 15 meters at 100 watts and a ground mounted vertical antenna. One of the French contacts reported their power as 5. Now if that was really QRP, then they had a great mix of antennas and propagation because their signal was a solid 599. I have to look at my logs but I don’t think I’ve worked Europe on 15 meters from my current QTH and certainly not while using my SteppIR BigIR vertical.

Speaking of the vertical, I have had limited success with the 3/4 wave mode of the antenna. There must be something wrong with the mix of radials and proximity with the house that sends the SWR over 2 or 3. Regular 1/4 wave works FB so no sweat.

Salmon Run Site Location

“The Wheat Field” is what the USGS map says our Salmon Run location is. From the photos, it doesn’t look like much wheat is there at all.

USGS Quadrangle Snip

In this picture, you can sort of see the end of the Forest Service road that leads up to the camp.

The US Geological Survey provides quadrangle maps for free. This fantastic service lets you view maps in PDF format that used to require a trip to the library or some money for the map on paper. Armed with these maps and Google Earth, you can plan your own county expedition and perhaps you will own Salmon Run this year or next.

Salmon Run 2009 With N7PP

The N7PP multi-two county expedition will be in Columbia county this year. We will be camping again this year but about 1,000 feet lower than last year.

View a Map

From the photos, the site looks beautiful with scrub pines and a grassy meadow. I suspect we will practically own the Salmon Run this year. Maybe a big county expedition will find a county location and roll over the whole thing.

I built a PFR-3

I struggled with the construction of the PFR-3 I received for my birthday. I really wanted to get it done two weeks after getting it so I could take it with us on a camping trip but could not get enough hours in a row to do it. Chuck, AC7QN, loaned me his for our camping trip. I contacted W7GKF/MM who was riding on a ferry sailing out of Ketchikan AK. Bill was running 1 watt which made my 5 watts QRO! I made an easy 599 contact with KL7DX and a tough one with WA0JLY in CO. For an antenna, I hung up a field day special doublet in the trees around our camp site. Good fun. Once I got back, my build didn’t go so well. I had an intermittent problem that I couldn’t pin down so I sent the rig off to KD1JV for the $35 fix. Steve found the DDS chip (on of the pre-soldered surface mounts) had a bad solder joint — that one was on him. He also found that X2 was shorted — that one was on me. So he split the fee and sent me back an aligned, tuned, working rig that puts out 5W on all bands. Better than if I had finished the job myself. I banged out a couple of contacts on 20M during the NAQPCW and I’m pleased as punch.

Some talk on the PFR-3 reflector has been about driving a speaker and the low audio output. I found a little amplified speaker with an internal Li-ion battery that works FB. Search for “Super Mini Sound Box Speaker with Li-ion Battery” on ebay. I got mine from one of those ‘daily deal’ web sites but the same exact thing can be found easily. This is almost exactly the one I have:


Price at the time I’m writing this is $12.32 with free shipping from Hong Kong. Although I haven’t bought from this particular seller, I’ve purchased items from Hong Kong electronics purveyors before and it takes a while but the merchandise has always come in as advertised. Hey, if you can cut out the middle-Mart, why not. This speaker fits in nicely with the PFR Paddle and doesn’t get in the way at all. The sound quality is pretty good and plenty loud without modifying the audio amplifier in the PFR-3.

I have one small complaint about the PFR-3. The run of cases with the lettering silk-screened on them are gone. Now you get a painted case and a page of water slide decal lettering. It looks pretty good but even after 4 coats of clear Krylon paint, I’m afraid the letters will scratch off. Still, I’m not complaining too loud because the rig works and looks fine.

WriteLog Contest Module Development – New Free Tools

I didn’t think it could be done but leave it to clever programmers…. You can use the free Microsoft Visual C++ Express Edition to compile WriteLog mult-modules! Follow the instructions in this Code Project page. NOTE: the WriteLog Contest Wizard with *NOT* run because it does not work with Visual Studio 2008. I installed VC++ Express, the Windows Server 2003 DDK, and made the minor changes that were needed to a couple of header files described in the Code Project instructions. With Visual Studio setup and the Windows Server 2003 DDK installed, the modules compile without errors and will actually work in WriteLog. You need a resource editor as well because the Express editions of Visual Studio don’t come with one. There is a terrific free resource editor you can use for this called ResEdit. This is a great solution if you want to just poke around a bit without investing in a license for VC++ 6.0. Just download the demo module I’ve been writing about to get started.

WriteLog contest module development – Part 6: Contest Parameter Dialog Box

In the last part, I posted a link to the source code of the module up to this point. The code compiles and creates a working module. Have a look.

The contest module needs some information from the op, namely their SKCC number and QTH. This dialog box is in the resources for the project. Edit the dialog box so that it has two fields, one for QTH and one for SKCC number. Change the style of the input boxes for uppercase entry.

Create an identifier for the input field IDC_SKCC. Leave the ID for the QTH as IDC_MYMULT. Please be diligent and set the tab order for the inputs and buttons. Search for m_MyMult in all files and in the class implementation, create the new property for SKCC everywhere m_MyMult is found (just going down the list of what was found). Duplicate the action taken with m_MyMult for m_MySKCC. For example, in the ScoreDlg() method, add the lines for the contest parameters.

CSKCC_WES::ScoreDlg(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
int Command;

SetDlgItemText(hDlg, IDC_MYMULT, m_MyMult);
SetDlgItemText(hDlg, IDC_MYSKCC, m_MySKCC);
Edit_LimitText(GetDlgItem(hDlg, IDC_MYMULT),
sizeof(m_MyMult) - 1);
Edit_LimitText(GetDlgItem(hDlg, IDC_MYSKCC),
sizeof(m_MySKCC) - 1);
return TRUE;

Command = GET_WM_COMMAND_ID(wParam, lParam);
switch (Command)
case IDOK:
GetDlgItemText(hDlg, IDC_MYMULT, m_MyMult, sizeof(m_MyMult));
GetDlgItemText(hDlg, IDC_MYSKCC, m_MySKCC, sizeof(m_MySKCC));
EndDialog(hDlg, Command);
return TRUE;
return FALSE;

Change the UserWrite() and UserRead() methods to save the new property when the contest is saved to a file.

CSKCC_WESPersistStore::UserWrite(IStream FAR *s)
HRESULT hres = S_OK;
Mmd = (CSKCC_WES FAR *) UnkOuter;
hres = s->Write(Mmd->m_MyMult, sizeof(Mmd->m_MyMult), NULL);
hres = s->Write(Mmd->m_MySKCC, sizeof(Mmd->m_MySKCC), NULL);
return hres;
CSKCC_WESPersistStore::UserRead(IStream FAR *s)
HRESULT hres = S_OK;
Mmd = (CSKCC_WES FAR *) UnkOuter;
hres = s->Read(Mmd->m_MyMult, sizeof(Mmd->m_MyMult), NULL);
hres = s->Read(Mmd->m_MySKCC, sizeof(Mmd->m_MySKCC), NULL);
return hres;

The secret to prompting for contest parameters on opening a new contest

Call the Score(Configuration_Entry_t *, HWND, int, const char *) method with null parameters. The InitQsoData() method seems to be a safe place because the contest log has been initialized. If you do this in InitQsoData(), you can check to see if the contest parameters have been set because either the op read in a saved log or they started a new one. Use a global flag to make sure you don’t repeat the prompt when InitQsoData() is called again. I created a class property called m_ParamPromptDone and initialized it to 0 in the constructor and flipped it to 1 after I prompted for parameters. That way the prompt only comes up when blank and hasn’t been presented to the op yet when the log is first created or opened. Just don’t save that property in the UserWrite() method of the persistant storage class. Here’s the code I put in IniQsoData():

if (((strlen(m_MyMult) < 2) || (strlen(m_MySKCC) < 3)) && !(m_ParamPromptDone)) { Score(0, 0, 0, "") m_ParamPromptDone = 1; }

Found a little secret on this leg of the journey that makes the contest module all that much more practical to use. Next, we’ll explore how to calculate the running score as Q’s are logged.

SKCC WES Contest Module as of 2006-06-15

WriteLog is Copyright © 1992-2009 by Wayne E. Wright, W5XD.

Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.