Linux-Hams archive - January 1997: How to make real CW on Linux ?

How to make real CW on Linux ?

Iztok Saje (spojolo.thesluy@imsican.com)
Fri, 03 Jan 97 10:21:12 EST


Hello friends !

Several years ago I wrote nice contest program, which is still
used by some S5 HF contesters. It is in turbo-pascal 3.0,
upgrade to 4.0 was never stable.... (so much about years...).

One of nice features it has is electronic-key interface. Every
milisecond two input bits are scanned. The program reads keyer and
use this as input, so complete CQ WW CW single-band can be
run without ever touching keyboard. Of course, it is on IRQs,
so CW TX is QRV even when application is busy with disk.

A lot of contesters found it convinient to use
el-key in paralell to keyboard - with el-key you have much
better "feeling" and control over timing, and this can make
difference on the air. Some other programs just scan TX line,
so even classic keyer can be used. Of course, log program must
be able to read this CW and extract as many as possible information
automagically.

There are other HF and VHF contest programs using simmilar
approach - S5 VHF program uses LPT port to free laptop
single COM port for TNC.

I am aware of some toy linux CW programs. But for real use
there are quite a demands for good timing and speeds.
Just for example: PTT should be keyed before TX,
to make relays happy, and QRO to survive.

As something tells me I have to be QRV in this solar cycle,
I am thinking about making new LOG program (and finally
putting old R7 antenna to the roof). Do not ask me for results
before sunspot maximum :-)

Here comes my questions:
- TX output:
How to control individual output pins on RS-232 PC interface
with good timing control ?
- TX timing:
CW TX program should execute at least every milisecond or
have good timing control. One dot is really short when
QRQing at 200 LPM.
- TX key input:
It had to be scanned every milisecond, or IRQ driven with good
time info.

I am afraid of writing complete device driver for CW - based on
HB9JNX baycom code (he solved all my problems there). Is there a
way to do it in user space ? Or are there some nice HOW-TOs
describing what I need ?

Thanks, and HNY
73 de Iztok s52d, wu2d, ok8anp

E-mail: lsgophke@roskapostia.tunk.net
ryweuqpu.tyyj@tamucc.edu
HAM BBS: ihscvo@atlanticbb.net