I have put together a simple keyer or CW transmitter using the Parallax Propeller board. This is sample code that you may find useful for your own experimentation.
To use as a keyer, set Frequency to zero and attach a keyer circuit to the pin defined by keyPin. I suggest using a 2N7000 or VN10 to drive most modern commercial CW transmitters. Something like this should be adequate. The code supports active high or active low keying.
A speaker can be used on RFPin in this mode to allow hearing a sidetone if desired. By default a 600 Hz tone should be heard. A two paddle key is attached between ditPin/dahPin and ground. I use P0, P1 for the paddle, P2 for the keyer output and P27 for RF/Speaker output. Please change to suit your needs.
To use as a transmitter, set Frequency to the transmit frequency. A 600 Hz offset is used by default to allow the transmitter to be heard in the receiver as sidetone. Change the toneFreq constant if you wish to have a different offset. Change ErrorOffset to correct for any transmit frequency error your propeller may experience. This tuning to set the ErrorOffset value should only need be done once by zero beating a frequency standard such as WWV.
A low pass filter for the transmit frequency should be connected to RFPin in order to clean up the square wave output sufficiently to meet regulations about signal purity. I recommend a minimul of a 5 pole filter as described in earlier posts.
Currently only Iambic Mode A is supported. Future versions will include the ability to set the keyer parameters such as keying speed, character speed, frequency and RF pin assignments as well as changing Iambic modes via the paddles.
Here is a photograph of the current lash-up with my Vibroplex paddles hooked to P0 and P1.
The source code can be obtained from https://github.com/ko7m/Keyer. As always comments and suggestions are solicited.
OK, now I am going to have to include a Paddle Jack to my Propeller GUI. Space and pins are available. This will be fun!
ReplyDeleteAccess to you code is easy from the Github, I think I will start using it for my code projects. Thanks.
ReplyDelete