My first FreeDV QSO

FreeDV Digital Voice QSO in ProgressFreeDV is a fully open digital voice protocol; unlike DMR, D-STAR and the rest, there are no patents tying it down. It uses very little bandwidth for voice. I just had my first QSO (thanks K5WH in Texas!) using this mode. While it does make voices sound a little robotic, there’s no static, no hiss, nothing unwanted. That’s what always put me off HF voice: trying to work out who is saying what through all the noise. FreeDV fixes that.

It’s quite a new protocol, so you don’t hear it much on the air yet. I hope to be making some more noise with it soon.

Did it just get a little more nerdy in here?

VA3PID-eQSL-eWAS-PSK-20131014Aw yiss! After more than two years of trying, I finally got a confirmed contact in North Dakota last night. That means I’ve now worked all of the US states using the PSK digital mode. Yay me!

I’d contacted 47/50 within a few months of getting my licence, including Maine. Utah I spoke to in November 2011, South Dakota in January 2012; but the last one, North Dakota, I didn’t pick up until last night. I was just about to turn off the radio for the night when I have 40m a try, and there was Bill (ND0B) calling from Cathay, ND. Sometimes you find what you’re looking for without even trying. Happy Thanksgiving!

Morse Palindromes, or CQ Christian Bök

The longest palindrome in Morse code is “intransigence””, and it was on

First off, here’s the Morse code for the word intransigence:

·· –· – ·–· ·– –· ··· ·· ––· · –· –·–· ·
i  n  t r   a  n  s   i  g   e n  c    e

If you look at it as a simple stream of dits and dahs, then yes, it’s palindromic. But, like comedy, the secret of Morse (or CW) is timing. It’s important to include the spaces between the keyings, or letters become hard to identify as they run together. For a word to truly sound palindromic, it would need to have the same spacing too, and thus have to start and end on Morse codes that were mirror-images.

Not only that, but you get codes which when reversed, become another letter. a (·–) becomes n (–·) when reversed. So things are getting more complex, as we’ve now got to think of:

  1. Words which are both palindromes in the English and Morse code;
  2. Words which are palindromes in Morse, but not when written in English.

With only Convert::Morse and words to guide me, here’s what I found.

Firstly, here’s a Morse code table for reference:

 ! → –·–·––           3 → ···––          a → ·–          n → –·
 " → ·–··–·           4 → ····–          b → –···        o → –––
 ' → ·––––·           5 → ·····          c → –·–·        p → ·––·
 ( → –·––·            6 → –····          d → –··         q → ––·–
 ) → –·––·–           7 → ––···          e → ·           r → ·–·
 + → ·–·–·            8 → –––··          f → ··–·        s → ···
 , → ––··––           9 → ––––·          g → ––·         t → –
 - → –····–           : → –––···         h → ····        u → ··–
 . → ·–·–·–           ; → –·–·–          i → ··          v → ···–
 / → –··–·            = → –···–          j → ·–––        w → ·––
 0 → –––––            ? → ··––··         k → –·–         x → –··–
 1 → ·––––            @ → ·––·–·         l → ·–··        y → –·––
 2 → ··–––            _ → ··––·–         m → ––          z → ––··

From that, you can see that the letters which have symmetrical keyings are:

 " ' ) + , - 0 5 ; = ? e h i k m o p r s t x

So are there palindromic words composed only of the letters E, H, I, K, M, O, P, R, S, T & X? Here are the ones in my words file, longest first:

 sexes rotor toot sees poop peep kook tot
 tit SOS sis pop pip pep oho mom ere eke

(Somewhere, the ghost of Sigmund Freud is going “Hmm …)

When encoded, rotor (·–· ––– – ––– ·–·) has more dahs that sexes (··· · –··– · ···), so takes longer to transmit. So rotor is the longest word that’s palindromic in both English and Morse.

The characters which have valid Morse codes when reversed are:

 " → "             8 → 2             l → f
 ' → '             9 → 1             m → m
 ) → )             ; → ;             n → a
 + → +             = → =             o → o
 , → ,             ? → ?             p → p
 - → -             a → n             q → y
 0 → 0             b → v             r → r
 1 → 9             d → u             s → s
 2 → 8             e → e             t → t
 3 → 7             f → l             u → d
 4 → 6             g → w             v → b
 5 → 5             h → h             w → g
 6 → 4             i → i             x → x
 7 → 3             k → k             y → q

Note how 1…9 reverse to 9…1. c, j & z don’t stand for anything backwards.

So, with only minimal messing about, here are the words that are palindromes in CW:

 ada → nun              ads → sun              ages → sewn
 ago → own              ail → fin              aim → min
 ana → nan              ani → ian              ant → tan
 ants → stan            boa → nov              eel → fee
 ego → owe              eire → erie            eke → eke
 emir → rime            emit → time            ere → ere
 erie → eire            eris → sire            eros → sore
 etna → nate            fee → eel              feel → feel
 fever → rebel          few → gel              fin → ail
 fins → sail            fool → fool            foot → tool
 foots → stool          footstool → footstool  fop → pol
 gel → few              gem → mew              gets → stew
 gnaw → gnaw            goa → now              gob → vow
 gog → wow              got → tow              hoop → pooh
 ian → ani              ids → sui              kans → sank
 kant → tank            keep → peek            kook → kook
 kroger → rework        leer → reef            leif → lief
 lief → leif            loops → spoof          meet → teem
 mew → gem              min → aim              mir → rim
 mit → tim              mom → mom              moor → room
 nan → ana              nate → etna            nerd → urea
 net → tea              nib → via              nit → tia
 nov → boa              now → goa              nun → ada
 oho → oho              otto → otto            outdo → outdo
 owe → ego              own → ago              owns → sago
 peek → keep            peep → peep            pees → seep
 pep → pep              per → rep              pets → step
 pip → pip              pis → sip              pit → tip
 pol → fop              pooh → hoop            poop → poop
 pop → pop              ports → strop          pot → top
 pots → stop            queer → reedy          quit → tidy
 rebel → fever          reedy → queer          reef → leer
 regor → rower          remit → timer          rep → per
 rework → kroger        rim → mir              rime → emir
 robert → trevor        room → moor            rot → tor
 rotor → rotor          rower → regor          runs → sadr
 sadr → runs            sago → owns            sail → fins
 saints → stains        sangs → swans          sank → kans
 sans → sans            seep → pees            sees → sees
 sewn → ages            sexes → sexes          sip → pis
 sire → eris            sis → sis              sling → waifs
 sloops → spoofs        sore → eros            sos → sos
 spit → tips            spoof → loops          spoofs → sloops
 sports → strops        spot → tops            spots → stops
 stains → saints        stan → ants            step → pets
 stew → gets            sting → waits          stool → foots
 stop → pots            stops → spots          strop → ports
 strops → sports        suds → suds            sui → ids
 sun → ads              sung → wads            swans → sangs
 swig → wigs            swigs → swigs          taint → taint
 tan → ant              tang → want            tank → kant
 tea → net              teem → meet            tet → tet
 tia → nit              tidy → quit            tim → mit
 time → emit            timer → remit          ting → wait
 tip → pit              tips → spit            tit → tit
 tog → wot              tool → foot            toot → toot
 top → pot              tops → spot            tor → rot
 tort → trot            tot → tot              tow → got
 trevor → robert        trot → tort            urea → nerd
 via → nib              vow → gob              wads → sung
 waifs → sling          wait → ting            waiting → waiting
 waits → sting          wang → wang            want → tang
 wig → wig              wigs → swig            wot → tog
 wow → gog

So of all of these, footstool (··–· ––– ––– – ··· – ––– ––– ·–··) is the longest English word that is a palindrome in CW. Here is how it sounds at 18wpm: forwards, backwards.

VA3PID is back on the air!

ScreenShot-2013-10-03-19.13.12Got my radio back on the air after six months off. I’d decommissioned the ancient ThinkPad that spoke to the radio, and hadn’t worked out what I’d needed to get it running with the MacBook. All it took was a FTDI-based USB to serial converter for the RigBlaster Pro’s PTT line control, and all works perfectly!

And this, kids, is why we rig our dipoles with black Dacron …

I guess the “UV Resistant!” nylon rope I used to rig my mini-G5RV wasn’t that resistant. Two summers of Scarborough sun did for it, turning the casing into friable dust. I knew that buying that big reel of black antenna rope last year was a good idea.

Ontario Hamfest yesterday

Glad I went to the Ontario Hamfest yesterday — I won the Superprize! It is quite super; it’s an ICOM V80 2m HT. Built like an absolute tank; it feels heavier than my Kenwood TH-D72. Thanks to Burlington Amateur Radio Club for organizing the event, and to Radioworld for donating the prizes.

(If I want to get a little grinchy on this, the prize ticket said it was going to be a V82, a much pricier dualband HT, but hey! a free radio …)

It was an enjoyable event, if small by comparison to Hamvention, but then, everything is. Was pleased to see an Arduino/µC vendor at the show – Bill, of Aztec MCU Prototyping. Bill had some of his Omega MCU Systems boards for sale, which mostly feature ZIF sockets for rapid prototyping. I bought the Arduino-compatible (in software, if not pinout) Omega-328U board, and the PICAXE-based D-Axe. So that means I have even more types of µCs to learn!

FIXME: not quite right morse tree

It’s not quite right yet, but I’ve never worked with Graphviz before this evening. Strongly influenced by the graphic on learnmorsecode.com. The wikipedia one is the wrong way round.

Source: morse.gv

keep it short, keep me sweet

Most of my radio communications use a text mode called PSK-31. It’s popular and survives a lot of interference, but fast it isn’t. I tested sending 1000 random characters, and it took 5′ 33″. That’s about this speed:

Because the mode is so slow, I prefer to keep my transmissions and macros short, stopping just shy of Morse’s telegraphically incomprehensible VY FB CPY OM. My heart sinks when I’m in a QSO, and I see the beginning of a huge piece of macro text being fired at me. A one-way long conversation (like the dude who sent the entire wikipedia article about his hometown) isn’t a ragchew, it’s a barrage. If someone started wittering on at you for 15 minutes without a chance for you to say anything, no-one would want to talk to them. So please, check your macros, think before you type, and we’ll have more and more pleasant contacts.

QRM Cat

Was having a nice chat with Gary, WB0RUR, this morning on 40m PSK-31. His signal was clear, he’s a very experienced operator — yet he was jumping all over the waterfall with every transmission. I couldn’t understand why, but after his signal jumped, stopped, started, moved again, I caught a very brief TX: “QRM … cat

Gary explained:

“Sorry about that … he stepped on the keyboard and stopped my transmission and also bumped the VFO … so I’m probably moving all over frequency.”

QRM would be a great name for a cat.

Chirp, the universal HT programmer

CHIRP is rather good. It replaces all the horrid proprietary HT programming software with one cross-platform, cross-radio solution. It allowed me to program my new Kenwood from data from my Wouxun. It uses transparent file formats, and can import from everything. It’s great!

Update: Whoa! It can now program my FT-857D! I just uploaded all the repeaters within 50km, and there’s a bunch going on on a few of them.

Creating secure digital QSL cards with your LoTW certificate

Hams have sent out QSL cards since the hobby began. It may be less popular than it used to be, because mail seems slow now (especially when QSL bureaux are used), and there are online alternatives like eQSL, QRZ.com, and the ARRL‘s Logbook of the World (LoTW).

LoTW has been criticized for being too complex. It uses an X.509 public key signature to verify your submitted log entries, and a QSL is confirmed when the other party sends in a matching entry. In a way, it’s rather elegant, as the LoTW server does the work of matching the entries, so QSLs “magically” appear in your log. You don’t get a fancy QSL card in the mail or on your screen, and I think a lot of users miss that.

X.509 might be a bit unweildy, but props to ARRL for setting up a industry standard, robust (-ish; X.509 has its flaws), general purpose signing infrastructure. Since other file formats — notably PDF — support X.509 signing, you can use your LoTW certificate to make other data tamper-evident.

Here I document a method of creating a digital QSL card that can be e-mailed, and subsequently verified by the recipient as being legitimate. Any alterations to the file will break the signature, and the file will just appear as a regular PDF (or not display properly). The process can be used to sign any other Acrobat file. There are probably more streamlined ways to do this, but I only came up with it last night as the beginning of a scriptable solution.

You will need:

  • Your ARRL LoTW electronic certificate file. This is called callsign.p12; mine is VA3PID.P12
  • A means of making a QSL card as a PDF fill-in form. I used Scribus; it’s a free but powerful DTP system.
  • Pdftk, “the” PDF toolkit, to apply the QSL details to the PDF form. If you’re on Windows, you might want the Pdftk GUI.
  • PortableSigner, a java application for signing Acrobat files using an X.509 certificate.

(Quite a bit of what follows was learnt from the two pages Your first PDF form with Scribus – Scribus Wiki and filling in forms with pdftk, so thanks to the authors of those for the guidance.)

First, make your QSL card. Since you’re not going to print this, it can be any size you want, but postcard size is standard. At the very least, create spaces for the recipient callsign, the date, the time, frequency, mode used, and signal report.

Under these headings, I’ve made six PDF text form fields. Scribus creates form fields like text frames/boxes. I used plain text fields (which are selected by this icon: ), centred text, and with the name of the field set from the PDF Options → Field Properties context menu. Each field needs a different name. I used callsign, date, utc, mhz, mode, and report.

Save your QSL card as PDF. It might be an idea to check it to see if the form fields are really there and editable:

Now it starts to get really nerdy. Adobe specified the Forms Data Format (FDF) to allow PDF form data to be slung around. FDF looks a bit like PostScript or raw PDF:

%FDF-1.2

1 0 obj
<<
/FDF << /Fields 2 0 R>>
>>
endobj
2 0 obj
[<< /T (callsign) /V (VE3KPK) >>
<< /T (date) /V (2011-10-02) >>
<< /T (mhz) /V (7.03581) >>
<< /T (mode) /V (CW) >>
<< /T (report) /V (499) >>
<< /T (utc) /V (2341) >>
]
endobj
trailer
<< /Root 1 0 R >>
%%EOF

If you think of the T & V values above as Tag and Value, you can see that the file defines callsign=VE3KPK, date=2011-10-02, mode=CW, and so on. This step can be easily scripted. If you’re not sure what the fields are called, pdftk has a “dump_data_fields” option that spits out the field names as plain text.

pdftk is also used to put the data from the FDF file into the PDF template. It’s a slightly hairy command line:

pdftk QSL-blank.pdf fill_form VE3KPK.fdf output QSL-VE3KPK.pdf flatten

Here the source file is QSL-blank.pdf, the FDF data is VE3KPK.fdf, and the output is to QSL-VE3KPK.pdf. The flatten option turns the pdf form into regular, uneditable PDF. (These details are from a real QSO, by the way, and by utter coincidence I’m writing this in a hotel in Ken VE3KPK’s home town in Northern Ontario.)

Checking that this worked in Adobe Reader:

For many people this is probably enough (or perhaps, too much already!) but I really want to have a digital QSL card that will stand up to some scrutiny. This is where your LoTW certificate file comes in.

PortableSigner is a java application for signing PDF files. It seems quite happy signing the files made in this workflow. It can run from the command line, or as a windowed application:

You use your .p12 signature file and its password to sign the PDF. Once the file is signed, you can send it to your contact, and they can prove (and hopefully, any certification/contest agency will agree) that the contact was confirmed.

Viewing the signed document is deeply unimpressive:

It’s not such a big deal that Reader says that “the validity of the certification is unknown”. It’s just that Adobe doesn’t have the ARRL’s certificate loaded into everyone’s reader (what!? mock outrage!) and so it doesn’t match a certificate it knows about. You have to dig a bit deeper into the signature panel to check out who is responsible for this.

Well, that’s a start; at least it was signed by someone with my e-mail address. There’s more under Show Signature Properties:

There’s the ARRL signature in there. Buried deep in another properties tree is my callsign; can’t find it today, but I saw it in there last night. Either way, the digital QSL PDF is now signed and certified that it came from me, as an ARRL LoTW user.

K3NG Arduino Keyer

I’m pretty amazed that the above image is even vaguely readable. It’s Hellschreiber, generated by Anthony K3NG Good’s Arduino CW Keyer. What you’re seeing, though, is Hellschreiber from the keyer’s sidetone generator being fed through a piezo glued to a paper cup (and not just any paper cup) being picked up by Fldigi on my laptop’s microphone. This isn’t what you’d call a quality signal path, and it’s a tribute to the mode’s robustness that it can be made out at all.

Anthony has packed an absurd amount into this keyer. There isn’t enough memory on a stock 32K Arduino for all the features to be enabled. I’m planning to use it as a CW keyer alongside Fldigi as the decoder. Despite all the features that can be built in, I’d just be using it as a serial to Morse converter, with perhaps a couple of memory keys for calling CQ and the like.

I do have a slight problem with it while it’s breadboarded, though. The wiring’s so sensitive that the control circuit triggers if I put my hand near it, let alone touch the command button. I’ll have to do something about that. I can’t breadboard for toffee.

it lives!

After being used as a wall-hanging for approximately 20 years, then surviving an intercontinental trip in my luggage, the Synertek SYM-1 is running. I think a few segments of the display are iffy, but it responds to the keyboard and beeps. Next step is to hook up the serial port.

These single boards sure do produce a lot of RFI. Waving the almost exactly ten year old radio near it produces howls and churrs.

Ham Radio Talk links

The ham radio talk went quite well last week; the usual TLUG (and Perl Mongers) suspects plus a couple of knowledgeable hams. For some reason, LibreOffice didn’t format the links correctly, so here they are as real links:

GTALUG: Ham Radio & Linux

I’m talking about radio next week at TLUG. More deets: Meetings:2011-08 – GTALUG.

The slides are here: http://scruss.com/talks/02011/radio/

The Accidental DXer

Update: I have a much better Ham Radio QSO Map now.

I had modest expectations when I set up my antenna and rig. I might’ve expected to work some of Canada, the northern US states, and maybe far western Europe, and that’s about it. But this map, extracted from my logs, shows different:

New Zealand, Ukraine, Patagonia, Greenland, Brazil, the Azores … way beyond what I expected.

I know the map’s not quite right. The lines should really be curved to be great circle lines on a Mercator map. Also, the NZ contact path was probably roughly SW through Hawaii. This round world doesn’t work on a flat page.

G5RV in the mist

There it is – I finally have the antenna installed. Works like a champ on 30 to 6m — when I remember to tune it, that is. I’d really like to thank Bob Morton of Maple Leaf Communications for helping me with the equipment choice. There’s also a J-Pole for VHF-UHF out of shot, but they’re not so interesting.

I’ve spoken on local 10m nets (and probably blasted people away, as I was on 100W and didn’t realize it). I’ve mostly been working PSK31 on 20 and 30m — so far, I’ve reached Poland, Russia, Wales, Germany, the US (from WA to FL), the Canary Islands, Venezuela, and Puerto Rico (and been gently berated from there for using too much power, oops). While it would be easy to e-mail folks in all of those countries, with PSK31, you don’t know who you’re going to get. All these folks can be calling in on the waterfall, and if you and they can exchange messages, they’re your neighbours, whether they’re in Podgorny or next door.

PSK31 sounds a bit like aliens whistling. Here’s what my CQ sounds like: va3pid-cq-psk31.mp3.