Clean CW on the Raduino
by Don Cantrell,
ND6T
Although the original Raduino v 1.01
sketch included a CW mode I wasn't pleased with the signal produced from the
side tone insertion into audio. Even when filtered to where it sounded
acceptable there were multiple artifacts accompanying the tone. Since I like a
700 Hz tone there were three additional harmonics spread across the spectrum
within the 2.8 KHz spectrum. These are attenuated by the degree of filtering
but unless I used active filtering they were quite evident. Additionally, there
was the suppressed carrier and the opposite side band both showing at several
milliwatts. All this would not be detectable if my signal was quite weak, but
there are many times when nearby stations will be annoyed by these
“companions”.
The T/R relays are keyed by placing a
2N7000 NMOS transistor from ground to the PTT pin on the microphone jack.
Source to ground, Drain to PTT, and Gate to P3 pin 1 of the Raduino.
Another 2N7000 is placed across R44,
the base of Q4 to ground. Source to ground, Drain to the base side of R44, and
the Gate tied directly to the gate on the 2N7000 T/R driver that was just
installed. This transistor disables the post-mixer transmit buffer in order to
eliminate the remaining carrier and anything coming in from the microphone.
The result is a clean and clear CW
tone.
In my software I use a side tone that
matches my transmit offset. A 700 Hz offset will produce a 700 Hz side tone,
making it easy to spot my transmit signal in the receiver. This side tone appears
on P3 pin 2 on my build and is injected into the speaker jack through a 1 uF
capacitor. Those users who have chosen to remove C113 from the audio output
amplifier can use that capacitor: Just lay it on top of the jack and solder one
end to the “tip” connector pin (the brown wire). Want a different level? Then
either change the capacitor to a different value or put a resistor in series
with the 1 uF. Another variable resistor on the front panel, perhaps?
I wrote a primitive little iambic
keyer routine and placed it in a “while” loop. The structure is timed by a
simple iterative count and jumps back out to normal operation after about one
and a half seconds of inactivity. That is the “semi-break in” time out and is
changeable in software to meet your needs. The key inputs are fed into P3; pin
3 for the dits, pin 4 for the dahs.
Two transistors, one resistor, and a
capacitor. Less than $1 USD in parts!
The CW routine is called by holding
the paddle to either side. The relays are operated and the fun begins. Speed is
set in the start of the program as a variable, “wpm”, and is fixed on my simple
sketch. You can set up a simple pot (just like the tuning control) to generate
a number to be directly scaled to the word-per-minute rate and place that
control right on the front panel for speed control. Place the WPM rate on the
second line of your display. Class!
You could do the same thing with the
offset/side tone frequency. Go crazy and amaze your friends!
I can provide a current copy of the
60m sketch that includes the CW program. It is written in simple Arduino, no
fancy C++ calls. I like simple. Also included is the added tuning of 5 to 6
MHz. Nice to calibrate with WWV, listen to trans-oceanic aircraft and
short-wave broadcasts. Write me at ND6T@ARRL.net. An adaptation for 40 meters will also be
available when I get to it.
It certainly serves as a successful
proof of concept. It is not, however, a great CW transceiver.
Yet.
*
Activation of the CW function is awkward and slow. It is delayed by the
iteration of the main loop, including
the display. Solvable by an interrupt routine, perhaps?
* It needs a straight key mode.
* Keying
waveform is too abrupt. Perhaps an keyed integrator in the PA power plug
circuit?
* Receive bandpass it pretty wide for CW. Audio filter?
Plenty of room for improvement and
more modifications. Isn't that the whole point of the project? Incremental
improvements and improvisations, learning (both hardware and software),
collaboration and open-source hardware and software. These are grand times.
de ND6T
Sounds really promising. Is your Arduino code available in github, it's possible that I could help out with the coding ? Thx
ReplyDeleteAndrew: I would be most pleased to send you my sketch. Just email me at ND6T@arrl.net
DeleteThanks, -Don, ND6T
Thanks for thhis
ReplyDelete