So my Radio Shack frequency counter died. I decided that since I had a few 7-segment LED’s I would just make a bench top frequency counter.
I started with the frequency counter designed by Wolf Buscher, DL4YHF.
He used a Microchip PIC, which I no longer have debugging tools for. A while ago I got rid of all my debuggers except for my J-Link ARM debugger. Having worked with ST, Microchip, Motorola processors, I decided that I would commonize on the ARM architectures. Specifically, on the Cortex-M series.
In my frequency counter I am using seven 7-segment displays, I also wanted a display that was MCU independent. So I used a 74LS47 BCD to 7-Segment driver and a 74HCT239 3 to 8 addressable bus. This means that I need 3 bits to select a segment and 4 bits to select the character to display. The 7-segment displays have their segment lines all tied together and their supply lines are controlled via the 74HCT239.
This works by turning power off to all 7-segment displays, writing the segment values to the 74LS47 chip, then enabling power to the segment using the 74HCT239. This is done for each digit in sequence at a rate faster than 60Hz. To the human eye this gives the impression that all digits are on simultaneously.
This is very similar to the construction method shown here
Front End Circuit
Because I wanted a fast input that converted low voltage sine waves into a square wave at the voltage of the mcu, I am using the following circuit.
For the processor I chose to you a NXP Kinetix Freedom K22F. This processor has a ARM Cortex-M4 processor with an internal floating point unit, DMA, USB, and standard MCU peripherals. The FRDM-K22F costs $30USD and includes an onboard debugger.
I used Kinetis Design Studio (KDS) and the Kinetis Software Development Kit (KSDK) to write the software for the frequency counter. The KSDK provides drivers for the onboard peripherals. For the Real-Time Operating System, I used FreeRTOS. It is my favorite embedded RTOS due to its ease of use and because it is very light weight. Giving it a very small memory footprint.
So, I decided that I want to learn CW. After a frustrating false start, I started using Learning CW Online.
Now I may be a special case. I have read many articles where people have learned morse code at slower speeds and had major difficulty in working at higher speeds. In order to prevent this, I started listening to the code at a speed that each character made a sound, rather than a series of dits and dahs. For me that was 30 words per minute. I also wanted to have instant recall of the code that I was hearing. In order to do that I decided that I needed to drill using the “Morse Machine” on the lcwo website. It wasn’t easy, I added maybe one character per week. Which to some seems slow, but I didn’t want to add another character until I had instant recall of the newly added character. It seems to be working. I am 21 characters in to the 40 character list on the Morse Machine. I have almost instance access to the characters when listening the morse code at 15wpm. This seems to be working for me, maybe it will work for you.
Like many hams, since the removal of the code test in licensing, I am fascinated with learning CW. I also homebrew my own equipment and enjoy operating qrp. Building cw equipment is a perfect way to build small, portable, qrp equipment.