Akademisk Radioklubb


A brief introduction to learning morse code

Demonstrating knowledge of Morse code was previously a part of the amateur radio exam in Norway. Licensees would get either LA, LB or LC licenses based on their¬†proficiency (or lack of proficiency) in this. After 2005, the requirement was removed, and all licenses granted since then were LA (and recently, LB) licenses, regardless of the skill level in Morse code. Subsequently, since learning Morse code no longer was a requirement for the “class A” license, the general proficiency in telegraphy among ARK’s member mass went down.

Still, there is some general interest in learning Morse. It is considered in ARK to be a nice skill to have, as it is a popular mode of operation, and there are contests both in Norway and abroad that consists only or partially of telegraphy. After the license course lecture on Wednesday 14.02.18, Jens – LB6RH therefore took the initiative to hold a brief session on the history of Morse code and how it can be learned.

This post summarizes the contents of that session, as a benefit to those wanting to learn Morse code for amateur radio.

Morse code was invented in the middle of 19th century, and was popularized through its use in the telegraph. With the advent of radio communications, Morse code continued to see use. For amateur radio enthusiasts, Morse code is still very popular. G7VJRs blogpost on the distribution of modes on the air, as recorded by Club Log, shows that between 1960 and 2013 around 40% of all amateur radio contacts were by Morse code.

Why is Morse code still so popular?

The signal processing between your ears is greatstudies have shown that a trained operator is able to decode Morse code signals as low as 12-18 dB below the noise floor.
It is narrowband – The power needed to convey information is much lower compared to more wideband modes such as voice (SSB).
The hardware is simple – Single frequency transceivers can be yours for as little as 3$, such as the pixie kit that we used for our soldering course, more advanced stuff that is capable of around-the-world contact can be had for around 100$.
It is fun ūüėČ

In order to quickly learn morse code there are some do’s and don’ts.


  • Listen to morse code at full speed


  • Start by learning how to send/key Morse code
  • Visualize the letters with dots and dashes

The method is based on the Koch method, which was invented in the 1930s as a way to rapidly train telegraphists. The idea is that your brain should learn to decode by reflex. In order to do this, the student should exercise at a speed where the dots and dashes of adjacent letters blur into each other. This forces the brain to learn the rythm and sound of a letter, rather than translating from dots and dashes.

For this to be most effective, it is suggested that the student starts with only the two letters, K and M. Once those are 90 % successfully copied at 20-30 words per minute (WPM) for 2 minutes a third letter is added, and so on. The Koch method also specifies the sequence in which the letters should be learned.

There are multiple tools and applications that help you learn through the Koch method. Underneath are some tools for those who are learning (still learning the letters) and those who want to master (improve speed, retention and understanding).


lcwo.net – Learn CW online (browser)

IZ2UUF Koch Trainer – Android App


qrq – Copy callsigns at high speeds

RufzXP – Copy callsigns at high speeds

MorseRunner – Contest/QSO simulation

ebook2cw – Listen to your favorite books in CW

In order to ease the process in the beginning, Farnsworth spacing may be added. This separates letters in groups with some spacing between each letter and each letter group. A typical group size is 5-7 letters, and a typical spacing is about as long as the group size.

With daily exercise it takes about 1-3 months to learn Morse code. We look forward to checking up the status of the course attendees in a couple of months’ time :-).

Preliminary measurements of the parabolic dish

After having increased the sturdiness of the rotor, and installed the five-band ring dish feed and a 23 cm LNA in the dish, we have been able to get to a point where we could test the parabolic dish properly using one of our USRP devices.

Initial measurements against LA2SHF during test operation at its test site had shown good reception of the signal using the parabolic dish. LA3WUA performed a rough, initial calibration of the rotor controller, and the next steps were to:

  • Test other methods for calibration, against e.g. geostationary satellites transmitting close to 23 cm.
  • Test against ON0EME.
  • Run our first 23 cm EME QSO using the parabolic dish.

LA3WUA did receive something reminiscent of INMARSAT 3F2, but the first experiment was mostly unsuccessful. We reduced the complexity from artificial satellites to our natural satellite, the moon, in order to reduce the possible sources of errors. LB6RH and LA3WUA then went on to track the moon and try to receive ON0EME. This was also unsuccessful, despite multiple attempts, and we were starting to suspect that there was something seriously wrong with the parabolic setup.

Luckily, LA2SHF had, as mentioned, been put into test operation. In order to test the parabola, we did a couple of rough, manual measurements for different azimuthal directions against LA2SHF in carrier wave mode. The results were rather dejecting, as we couldn’t see the very clear directional pattern we should expect for the dish. However, LA2SHF is currently not placed in a very good location for these kinds of measurements. We don’t have guaranteed line of sight (LOS) against it, and buildings or hills in-between might interfere with measurements and cause fading effects. It is very likely that the signal we were measuring is a signal that has been reflected off the ground or in-between buildings, and such a signal arriving from multiple sources is expected to fade in and out due to different path lengths.

We therefore wanted to do a systematic measurement of the apparent antenna pattern against a signal source placed at a point with guaranteed LOS. This was something we planned to do last weekend, but ended up being postponed to this or the next week due to the following:

In order to make the measurements objective and systematic, and in order to more conveniently measure the system before and after modifications, we wanted to automatize the measurement process. We have in an earlier blogpost done similar, manual measurements, but this is very time-consuming. Even the first measurements mentioned above were time-consuming and confusing. A couple of analysis tools were therefore developed for the purpose:

  • A GNU Radio flowgraph for continuously measuring the reception power of the carrier wave from the USRP and outputting samples and timestamps to file.

Preliminary GNU Radio flowgraph.

  • A script for continuously logging timestamps and corresponding azimuth angles to file, enabling us to do a sweep of the rotor over larger angle ranges and let the script automatically record the angles:
la9ssa@ark-shack00:~/power_vs_azimuth$ python rotctld_angle_printer.py
 timestamp                   azimuth      elevation
 2018-02-10T12:56:31.086758  150.000000   5.000000
 2018-02-10T12:56:45.392412  150.100006   5.000000
 2018-02-10T12:56:45.445934  150.200012   5.000000
 2018-02-10T12:56:45.517160  150.299988   5.000000
 2018-02-10T12:56:45.570634  150.399994   5.000000
 2018-02-10T12:56:45.624031  150.500000   5.000000
 2018-02-10T12:56:45.695345  150.600006   5.000000
 2018-02-10T12:56:45.748729  150.700012   5.000000
 2018-02-10T12:56:45.820043  150.799988   5.000000
  • A collection of scripts for interpolating the recorded azimuthal angles against the timestamps of the GNU Radio samples in order to obtain azimuth-resolved power estimates, and some preliminary methods for estimating the reception power:
import combine_samples_and_angles as comb
angles = comb.read_angles('angles.dat')
timestamps, samples = load_gnuradio_samples('gnuradio_samples.dat')
interpolated_azimuth = comb.interpolate_azimuth(timestamps, angles)
power = comb.power_estimate(samples)

Developing such software from scratch turned out to take a bit more time than expected, and we had to postpone the measurements in order to be certain that we had no systematic deviations in the measurements themselves. However, after an intense weekend of development, debugging and testing, we were finally satisfied with our tools. We were thus able to systematically measure the current state of the parabolic system against the current location of LA2SHF without having to do any manual labor except for starting the scripts and starting a sweep of the rotor.

These results, characterizing the current state of the parabolic dish as measured against a rather uncertain signal source without proper LOS, are shown below:

Time series of the beacon signal and noise level while rotating the parabolic dish from 150 to 250 degrees azimuth.

Measuring the beacon for different azimuth angles shows that the signal is above the noise level, and that we can clearly see the beacon signal using the parabolic dish. The signal is approximately ~35 dB above the noise level at best, which is the same as we measured when LA2SHF was put into use.

Antenna patterns during three measurement series.

Putting these measurements in a polar diagram shows a rather noisy antenna pattern. We can, from approximately 160 degrees to 200 degrees azimuth, see some reminiscence of an antenna pattern proper and some hints of lobes. At the other angles, it probably looks more like a porcupine than anything else. The measurements are also slightly inconsistent from series to series.

The reason for the inconsistency might be the fading and multi-path interference effects mentioned earlier, as we can clearly see the signal fading in and out in the FFT plot while rotating the antenna (seen as blue stripes in the constant beacon signal):

We also compared against measurements done at a constant azimuth degree:

Measurements for rotation compared against measurements for constant azimuth angle.

Interestingly, we observe signal level fluctuations even when the parabolic dish is not rotating. Typically, we would expect this behavior only when the antenna sees different multipaths due to movement.

FFT plot of measurements done at constant azimuth angle 160 degrees.

Possible causes for this could be the SDR dropping packets, the LNA losing power supply intermittently, or large and moving objects (such as cars) intersecting one of the major propagation paths. We will know more when we get to measure with direct LOS and compare against a test feed constructed for the purpose by LA3WUA.

The parabolic dish after construction last year. Kristiansten Festning is the white building on the top of the hill in the background (right).

The chosen site is Kristiansten Festning, where we have free LOS from the parabolic dish. We will set up a portable antenna and some kind of carrier wave signal source. Once verified, or once debugged, we should be able to continue with our verification steps, and continue the development of the 1-10 GHz system.

In our stage three post about the 1-10 GHz project, we promised an LNA and driver amplifier within November last year. Since then, everything has been ominously quiet. It turned out that we had to secure additional funds, and had to divert our efforts for a while as we tried to find new sponsors. We are glad to announce that we have gotten WideNorth on board as a sponsor for the project.

WideNorth specializes in RF and analogue design, signal processing and product development. This fits well with the expertise ARK-members end up getting through their studies, and as such is a natural partner for us in this endeavor. WideNorth has this to say about our project:

The ARK broadband project matches the WideNorth philosophy where theoretical skills and practical abilities are brought together to produce exciting products and interesting solutions. WideNorth wishes the ARK team good luck in their endeavor to develop a working broadband receiver and trust that ARK will put the funds to good use.

We are looking forward to the collaboration!

« Older posts