Three Cool PICAXE Projects from KB2TQX
using the Rookey ...
Random Morse Generator
Koch Method Morse Trainer
Iambic Keyer

David Gwillim, KB2TQX  (SK)  

N2CX and N2APB approached me in the months leading up to Atlanticon one year and described an interesting situation.  The PCB vendor for the Atlanticon Kit made an error in the first batch of Rookey boards made for us – they forgot to put the ground plane on the bottom side of the board!  Of course the vendor made up a new good batch, but as a result we happened to have a number of Rookey pc boards without any ground connections!  So, what could be done  …. ?

Well, being the inveterate tinker that I am, I figured that we could instruct users how to add the ground connections on the bottom side of the board, and have a couple extra neat little projects that could be loaded and run on that same Rookey pcb artwork.

The result is a set of three programs (Random Morse Generator, Koch Method Morse Trainer, and Iambic Keyer) that can either be loaded onto a slightly-modified (good) Rookey project board, or onto a fixed-up Rookey board that has the missing ground connections.  Either way you go, you’ll have three additional uses for your Rookey project!  

NOTE:  Some companion files will also be needed in order to compile/run my three BASIC programs described here.  These are char_delay.exe and char_delay_Calc.bas.  Just right-click these two programs and save them to your computer in the working folder with the other BASIC programs I have supplied.

The "KMMT KIT" is no longer available but it can be easily homebrewed from the information on this page.

 

1) Random Morse Generator

The RMG.bas program generates Random Morse Characters when running on your Rookey pcb, modified as shown in the schematics and photos below.  It send the characters from a specifically-ordered pool of the 43 Morse characters, letters, numbers, punctuation and prosigns that used to be on the license test. The size of the pool can be dynamically increased/decreased from 2 to all 43. The random characters are generated from the currently sized pool.

Here are some photos of the RMG pcb top and solder side so you can see component placement, and what I had to put there for "traces" to make up for the lack of ground plane and needed interconnects.


Note the instruction at the top of “C8” (which has a 100-ohm resistor in place) that the trace must be cut at that point.

 


Here’s the underside of the board where you’ll need to add wire to make up for the missing ground plane. 

 

2) Koch Morse Method Trainer

After thinking a bit, I realized that the Random Morse Generator is not a great teaching tool, so I provided a new version that incorporates the ability to do Farnsworth style sending.  I call this program The Koch Method Morse Trainer program, and the PICAXE program for this is called KMMT.bas. (Right-click this BASIC program and Save As ... to your local computer.)

As you know, the Farnsworth scheme is where the characters are sent at say 15 to 20 WPM but the inter-character and inter-word delays are increased to make the overall WPM slower. Common wisdom and my own experience has it that learning Morse at say 5 WPM is actually counter productive, the same way that trying to learn speech would be if everyone spoke in slow-motion with the sounds unnaturally drawn out.

The docs in the header for this program include a new, more accurate dit_length vs WPM table. They also include a formula for calculating the char_delay needed to achieve any effective WPM speed. I also wrote a small Windows program that does the arithmetic for calculating the char_delay and word_delay values for you to enter into the constants section of the PICAXE 08M source, based on the character WPM and the overall effective WPM rate. This arithmetic could be done in the 08M, but I just don't have enough bytes free to put it in there.

I also built in a test_pitch option using conditional compilation, that allows you to recompile the source so it will increment the frequency of the Morse output every character sent, and send that value to the PC via the SerOut. It simplifies optimizing the output frequency for max volume on your piezo..

The result is a Morse code trainer that uses the Koch Method as described in the book "Morse Code: Breaking The Barrier" by Dave Finley, N1IRZ.

It also generates Random Morse Characters but from a specifically ordered pool of the 43 Morse characters, letters, numbers, punctuation and prosigns that used to be on the license test. The size of the pool can be dynamically increased/decreased from 2 to all 43. The random characters are generated from the currently sized pool.

This can use exactly the same hardware as RMG.

For more detailed construction and operating notes, please refer to the KMMT_ Assy_Guide.

 

2) Iambic Keyer

Never being one to leave a good thing alone, I figured the circuit changes made thus far could also be extended just a bit further to turn the Rookey pcb into an Iambic Keyer.  “All” one needs is a keying transistor and some additional software.

I also added a way to reset to default values for character speed and pitch settings when in "S" and "P" modes respectively by squeezing DIT and DAH paddles at the same time. Just what is needed for those over-enthusiastic "twiddlers" who just HAVE to torque-out the settings. The program defaults are 15 WPM and the tone is 803 Hz.

 

The Keyer program starts up at approximately 15 WPM.The transmitter keying output is only active in mode "K".

The TX Keying circuit can consist of just a 2N7000 MOSFET. Connect the GATE to leg 7 of the 08M chip, connect the DRAIN to GND, and connect the SOURCE to the transmitter key input.

Pressing the MODE button steps you through 3 modes:

Pitch set (you hear a letter P in Morse). When in this mode, the DIT paddle increases the pitch of the Morse sound, and the DAH paddle decreases it. Squeezing both DIT and DAH paddles at the same time resets the pitch to the program default.

Speed set (you hear a letter S in Morse). When in this mode, the DIT paddle increases the speed at which the Morse is sent, and the DAH paddle decreases it. Max = 45.5. Min = 4.9

Squeezing both the DIT and the DAH paddle at the same time resets the speed to the default.

Pressing the MODE button one more time (you hear a letter K in Morse) puts you back in regular Keyer mode for sending.

It now sports 3 push buttons. #1 sends letters A-Z only, #2 sends numbers 0-9 only and #3 sends all legal Morse characters. The default values (see constants in  source), are 20 WPM (approx), group size=5 characters, group count=10 groups (per button press), pitch=~600Hz. Buttons need to be pressed for about 2 secs to start play as I have a loop checking the buttons that contains a "sleep 1".

The BASIC program for the Iambic Keyer is Iambic_Keyer.bas. (Right-click this BASIC program and Save As ... to your local computer.)

 

  

Last Modified:  Sept 1, 2010