Tuesday, December 31, 2013

Tilting at windmills, mobilize now!

There is a vast army mobilising, and its aim is to re-take territory abandoned by the National Television System Committee.

Why is an army needed for something already abandoned? For the squatters, the carpet-baggers,  and they are the the most bovine, stubborn, and obnoxiously LOUD sort.

We intend to retake 3579.545455 KiloCycles from the blaring, and bleeping, and warbling robots, with their Windows XP hive-minds, their "push F1 through F5" QSO's, and their "rigblaster nomics," whatever diabolical appliance those might be.

This territory is the Colorburst Frequency, and we are the Colorburst Liberation Army. We are the true believers of "CW Forever," and the few who remain that endeavour to construct instruments of transmission and reception from the donated organs of the political football known as "electronic waste."

We will re-take,  restore,  and DEFEND CW to this slice of spectrum. We will create a sanctuary for those tinkerers who "Liberate" 3579.545455 quartz crystals from defunct machines on our neighbour’s curbside on trash day.

We will vanquish the robot horde, and we will attain ultimate Victory!


;) <--- please note! The above is meant as HUMOR, hyperbole, and sarcasm! (With tinges of truth here and there, but...)

DISCLAIMER - I have operated PSK-31 and RTTY , I have nothing against them, I even own a "SignaLink USB" and a pair of Mechanical teletypes! However, for BPSK modes that are designed to be decoded down in the noise, I believe operators in the 80m digital area run WAY too much power, blowing everyone else's AGC wide open.

Ok, all kidding and fun aside, a few of us crazies on the Internet (a vast army of 4, at last count) have decided that we'll try like heck to make CW QSO's (hopefully with each other) with QRP tube rigs right smack in the middle of the 80M digital-mode watering hole.

I find this to be a formidable and... possibly worthwhile... challenge due to:

1.) I stink at CW. I need the practice.

2.) I don't operate much on HF any more, I need to do more to justify all the wire in the sky over my yard!

3.) 80 Meters in my neighbourhood is a QRN Charlie Foxtrot. If I can operate here, I can anywhere. I should also look into chasing down some of the neighbourhood RFI, its BAD.

4.) IMHO, CW ops need to assert themselves in this part of the band. CW is "legit" everywhere, and technically its a digital mode. So There!

5.) There's something ridiculously fun about a pretend guerilla insurrection. ;) (If I wasn't on an NSA watchlist, I am now!!!)

6.) I like building useful stuff, and then tinkering with it. There is a clinical condition when one ceases to learn stuff. They call it "death." ;)

Number 6 being the main motivator, and not having a "proper" QRP CW tube rig for 80, I slapped together a NOGA Twin Tube 80. (links and references at the end.)

Its got a pair of paralleled 6AU6's. Haven't done a proper power measurement yet, but I'm guessing 2 watts out!

Clearly the power supply is a separate animal. I built an isolated, (back to back xformers) full wave power supply that gives 162V no load. Pulled an "Arnie" and used rectifier diodes and electrolytic from dead CFL bulb ballast! TX is taking 25 mA, so woohoo, 4 watts input! Built PS into one of the Trader Joe's peppermint bark holiday tins, 10lbs of %^& in a 5 lb bag. Thin sheet metal, so the thing buzzes like a ticked off hornets nest when powered up. ;) Unfortunately buzzing not modulated by keying, that would be too cool.

I've got a pile of dynamotors here, I need to make a portable supply next.

I have had it on the air the past two evenings, called lots of CQ, but no QSO's yet. Tonight is Straight Key Night, so maybe something will come of that.

With so much CQ'ing I decided to automate!

I paired an Arduino with a relay shield, added a push button and a clip lead, and can call CQ with a push of a button. Surely I'm outside of the ratings of the relay, but not in a bad way. Designed to not be any sort of hindrance to manual keying. Code at the end.

Links and stuff:

NOGA Twin Tube 80:

Direct link to schematic:




Relay Shield for Arduino:

Arduino Code: (copy and paste into text editor, small font used for brevity)

// cqer.ino
// Automatic CQ Caller
// Drives a relay, which keys cw rig
// Hacked and Muntzed from original work by Mark VandeWettering K6HX blog @ http://brainwagon.org
// Pin 13 is the ubiquitous LED
// Pin 4 is digital out that drives a relay
// Pin 11 has 10k to gnd pulldown, also button across pin 11 and VCC
// 12/30/2013
// w6iee.blogspot.com

struct t_mtab { char c, pat; } ;

struct t_mtab morsetab[] = {
      {'.', 106},
    {',', 115},
    {'?', 76},
    {'/', 41},
    {'A', 6},
    {'B', 17},
    {'C', 21},
    {'D', 9},
    {'E', 2},
    {'F', 20},
    {'G', 11},
    {'H', 16},
    {'I', 4},
    {'J', 30},
    {'K', 13},
    {'L', 18},
    {'M', 7},
    {'N', 5},
    {'O', 15},
    {'P', 22},
    {'Q', 27},
    {'R', 10},
    {'S', 8},
    {'T', 3},
    {'U', 12},
    {'V', 24},
    {'W', 14},
    {'X', 25},
    {'Y', 29},
    {'Z', 19},
    {'1', 62},
    {'2', 60},
    {'3', 56},
    {'4', 48},
    {'5', 32},
    {'6', 33},
    {'7', 35},
    {'8', 39},
    {'9', 47},
    {'0', 63}
} ;

#define N_MORSE  (sizeof(morsetab)/sizeof(morsetab[0]))

#define SPEED  (13)  // Beacon speed in words per minute
#define DOTLEN  (1200/SPEED)
#define DASHLEN  (3*(1200/SPEED))
#define VOLUME 64

int LEDpin = 13 ;
int Rlypin = 4; // relay pin
int buttonPin = 11; // our push button, which gets the ball rolling
int buttonState = 0;

void dash()
  digitalWrite(LEDpin, HIGH) ;
  digitalWrite(Rlypin, HIGH) ;
  digitalWrite(LEDpin, LOW) ;
  digitalWrite(Rlypin, LOW) ; //
  delay(DOTLEN) ;

void dit()
  digitalWrite(LEDpin, HIGH) ;
  digitalWrite(Rlypin, HIGH) ; //
  digitalWrite(LEDpin, LOW) ;
  digitalWrite(Rlypin, LOW) ; //

send(char c)
  int i ;
  if (c == ' ') {
    Serial.print(c) ;
    delay(7*DOTLEN) ;
    return ;
  for (i=0; i<N_MORSE; i++) {
    if (morsetab[i].c == c) {
      unsigned char p = morsetab[i].pat ;
      Serial.print(morsetab[i].c) ;

      while (p != 1) {
          if (p & 1)
            dash() ;
            dit() ;
          p = p / 2 ;
      delay(2*DOTLEN) ;
      return ;


sendmsg(char *str)
  while (*str)
    send(*str++) ;

void setup() {
  pinMode(LEDpin, OUTPUT) ;
  pinMode(Rlypin, OUTPUT) ;
  pinMode(buttonPin, INPUT);

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  int i;
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {    
    // then do it:  
    sendmsg(" CQ CBLA CQ CQ CQ DE W6IEE W6IEE W6IEE K ") ;
  else {
    // otherwise sit patiently and wait: