[Elecraft] K3 choppy CW

Kok Chen chen at mac.com
Thu Feb 26 10:55:25 EST 2009


On Feb 26, 2009, at 7:01 AM, Brian Alsop wrote:
> I think it is a bit ironic that for RTTY,  external TNC's have become
> passe in favor of direct computer decode/encode.

Just a property of how computers handle audio.

USB Sound Cards go through what are called Isochronous Transfer of  
USB.  These are handled by very high priority tasks, with sufficient  
audio buffering in the kernel ensure that there are no audio drop  
outs.  Ditto FireWire sound cards, and on-board codecs.

This is one reason why I had implemented CW in cocoaModem by using J2A  
emission (i.e., audio generated CW) instead of A1A emission.  It is  
the only way, short of using WinKey for A1A keying, to ensure that  
kernel swaps do no interfere with inter-element Morse spacings. (J2A  
also allows one to implement arbitrary waveshaping of the "keying"  
waveform. cocoaModem uses a Blackman window to waveshape the CW pulses.)

Now, the ironic part is that older operating systems such as MS-DOS  
and Mac OS 9 work fine with A1A "bit banging" up to very high CW  
speeds.  With today's computers, assuming you can still run those  
operating system, you can probably run 1000 wpm and still achieve  
close to perfect Morse inter-element timing.

The problem with modern operating systems is that whatever that is  
running in "user space" can be preempted by the kernel.  A key-up or  
key-down could therefore be delayed just slightly -- but often  
perceptible by an ear listening to the CW.

One way to get around modern operating systems is to write a Morse  
"device" to run in the kernel (for example, running a WinKey emulator  
in the kernel).  For Mac OS X, this would be a "kernel  
extension" (kext).  Running as a kernel process comes with the  
associated complexity and dangers (a bug can cause the entire computer  
to crash).

The µH Router, which I wrote for Mac OS X to allow different programs  
to share a microHAM keyer, actually has a built in "WinKey" emulator,  
for use with the digiKEYER that does not have a built-in WinKey chip.   
However, this emulator runs in user space, and now and then you can  
hear a Morse element being stretched so the rhythm is not perfectly  
right all the time when running CW even at a slow 25 wpm, even on a  
dual core computer and even when the emulator is running on a separate  
high priority (user) thread.

73
Chen, W7AY



More information about the Elecraft mailing list