Difference between revisions of "CW tips"

From Tučňák Wiki
Jump to: navigation, search
(New page: (http://www.ok1rr.com/view.php?cisloclanku=2007122501) Published on 25. 12. 2007 (212 x viewed) Regardless of existence of the cwdaemon (many thanks to Joop. PG4I and others) many softwa...)
 
m (Reverted edits by DelboCdomc (Talk); changed back to last version by Ok1zia)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
''Notes OK1ZIA: Tucnak2 implement own CW keying. Cwdaemon is one of output devices. Informations about kernel settings are usable also for Tucnak.''
 +
 
(http://www.ok1rr.com/view.php?cisloclanku=2007122501)
 
(http://www.ok1rr.com/view.php?cisloclanku=2007122501)
 +
Published on 25. 12. 2007 (212 x viewed)
  
Published on 25. 12. 2007 (212 x viewed)
+
Regardless of existence of the cwdaemon (many thanks to Joop. PG4I and others) many software developers are intended to use a hardware solution, the [[WinKey]] by K1EL. It is sure a good product but there is still no suitable driver for Linux, except winkeydaemon by Rein, PA0R, which is actually a Perl script and, unfortunately, I don't like such interpreted gadgets not very much.
  
Regardless of existence of the cwdaemon (many thanks to Joop. PG4I and others) many software developers are intended to use a hardware solution, the WinKey by K1EL. It is sure a good product but there is still no suitable driver for Linux, except winkeydaemon by Rein, PA0R, which is actually a Perl script and, unfortunately, I don't like such interpreted gadgets not very much.
+
''Note: Native [[Winkey]] support (still very experimental and basic) will be part of V2.17 and later, read more about it in the [[Winkey]] section.''
  
 +
 
Actually, the cwdaemon is very good software trick which does good job if you build your own kernel and you also don't need to fire it up separately with root privileges if you have an addition in your start-up scripts.
 
Actually, the cwdaemon is very good software trick which does good job if you build your own kernel and you also don't need to fire it up separately with root privileges if you have an addition in your start-up scripts.
  
Line 28: Line 32:
 
My Slackware package of the best cwdaemon ever issued is [http://www.ok1rr.com/download.php?soubor=146 here].
 
My Slackware package of the best cwdaemon ever issued is [http://www.ok1rr.com/download.php?soubor=146 here].
  
Start-up without root privileges
+
=Start-up without root privileges=
  
 
There is no need to start the cwdaemon separately with root privileges. Put a little addition to your start-up script and cwdaemon will start without any keystroke. It is a good solution for a ham radio machine, however you may have some problems if you want to evaluate your parallel port for printing or other purposes.
 
There is no need to start the cwdaemon separately with root privileges. Put a little addition to your start-up script and cwdaemon will start without any keystroke. It is a good solution for a ham radio machine, however you may have some problems if you want to evaluate your parallel port for printing or other purposes.
Line 34: Line 38:
 
I added two simple blocks to the /etc/rc.d/rc.local which applies to Slackware GNU/Linux, however your preferred distribution may use another name and location.
 
I added two simple blocks to the /etc/rc.d/rc.local which applies to Slackware GNU/Linux, however your preferred distribution may use another name and location.
  
The first block is used to load parport and parport_pc modules whioch are essential to the cwdaemon. The second block actually loads the cwdaemon. First, it stops the module which can occupy your parallel port - here it was cups. cwdaemon also won't work if lp module is loaded, so unload it if necessary. Next, a device node is created and cwdaemon is loaded.
+
The first block is used to load parport and parport_pc modules which are essential to the cwdaemon. The second block actually loads the cwdaemon. First, it stops the module which can occupy your parallel port - here it was cups. cwdaemon also won't work if lp module is loaded, so unload it if necessary. Next, a device node is created and cwdaemon is loaded.
  
 
  #load parport, parport_pc
 
  #load parport, parport_pc
Line 55: Line 59:
 
         -h            Display this help and exit
 
         -h            Display this help and exit
 
         -n            Do not fork and print debug information to stdout
 
         -n            Do not fork and print debug information to stdout
         -p     Use a different UDP port number (> 1023, default = 6789)
+
         -p   Use a different UDP port number (> 1023, default = 6789)
         -P Set cwdaemon priority (-20 ... 20, default = 0)
+
         -P   Set cwdaemon priority (-20 ... 20, default = 0)
         -s     Set morse speed (4 ... 60 wpm, default = 24)
+
         -s   Set morse speed (4 ... 60 wpm, default = 24)
         -t     Set PTT delay (0 ... 50 ms, default = 0)
+
         -t   Set PTT delay (0 ... 50 ms, default = 0)
 
         -v    Set volume for soundcard output
 
         -v    Set volume for soundcard output
 
         -V            Output version information and exit
 
         -V            Output version information and exit
 
         -w    Set weighting (-50 ... 50, default = 0)
 
         -w    Set weighting (-50 ... 50, default = 0)
         -x   Use a different sound device
+
         -x   Use a different sound device
 
                       (c = console (default), s = soundcard, b = both, n = none)
 
                       (c = console (default), s = soundcard, b = both, n = none)
  
 
I find useful to start the cwdaemon without any sidetone, it seems much better to use the sidetone of your radio rather than the PC speaker.
 
I find useful to start the cwdaemon without any sidetone, it seems much better to use the sidetone of your radio rather than the PC speaker.
  
Enjoy youy cwdaemon!
+
Enjoy your cwdaemon!

Latest revision as of 14:37, 5 December 2008

Notes OK1ZIA: Tucnak2 implement own CW keying. Cwdaemon is one of output devices. Informations about kernel settings are usable also for Tucnak.

(http://www.ok1rr.com/view.php?cisloclanku=2007122501) Published on 25. 12. 2007 (212 x viewed)

Regardless of existence of the cwdaemon (many thanks to Joop. PG4I and others) many software developers are intended to use a hardware solution, the WinKey by K1EL. It is sure a good product but there is still no suitable driver for Linux, except winkeydaemon by Rein, PA0R, which is actually a Perl script and, unfortunately, I don't like such interpreted gadgets not very much.

Note: Native Winkey support (still very experimental and basic) will be part of V2.17 and later, read more about it in the Winkey section.


Actually, the cwdaemon is very good software trick which does good job if you build your own kernel and you also don't need to fire it up separately with root privileges if you have an addition in your start-up scripts.


Poor sounding CW

Sloppy CW from the cwdaemon it depends on kernel settings. I tested it thoroughly because I love CW at higher speeds. Latency of 1000 Hz helped a bit, I was able to run at usual contest speeds up to 36 wpm. Since kernel 2.6.23 the problem seems cured with tickless kernel. Here is an excerpt from my config:

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_SMP=y
CONFIG_X86_PC=y

....

Now I can go up to 60 wpm and the resulting CW is excellent, however I'm using cwdaemon 0.9.4beta1. Versions below 0.8 are actually useless, the worst CW I ever heard was produced by cwdaemon 0.5 and an unmodified kernel.

The newest cwdaemon 0.9.4 depends on the unixcw version 2.3 (or above) which won't compile on my Slackware (and I was not patient enough to track all the dependencies), therefore not tested. Let me believe that the new dependency was a bad step back... I hope that new versions of cwdaemon will continue the way set by the 0.9.4beta1 version (source download here). Anyway, with this version of cwdaemon and custom made kernel 2.6.23 (actually I'm using now the latest 2.6.23.12) I am fully satisfied. I am convinced that any development of CW related software should be thoroughly consulted with high speed freaks, it is rather bad if a developer or tester means he did well if he is limited by 25 wpm...

My Slackware package of the best cwdaemon ever issued is here.

Start-up without root privileges

There is no need to start the cwdaemon separately with root privileges. Put a little addition to your start-up script and cwdaemon will start without any keystroke. It is a good solution for a ham radio machine, however you may have some problems if you want to evaluate your parallel port for printing or other purposes.

I added two simple blocks to the /etc/rc.d/rc.local which applies to Slackware GNU/Linux, however your preferred distribution may use another name and location.

The first block is used to load parport and parport_pc modules which are essential to the cwdaemon. The second block actually loads the cwdaemon. First, it stops the module which can occupy your parallel port - here it was cups. cwdaemon also won't work if lp module is loaded, so unload it if necessary. Next, a device node is created and cwdaemon is loaded.

#load parport, parport_pc
modprobe parport
modprobe parport_pc

# Load cwdaemon
echo "starting cwdaemon"
/etc/rc.d/rc.cups stop
# rmmod lp
cd /dev
mknod -m 0660 parport0 c 99 0
/usr/local/sbin/cwdaemon -x n

Remember the cwdaemon options:

Usage: cwdaemon [option]...
       -d    Use a different device
                     (e.g. ttyS0,1,2, parport0,1, etc. default = parport0)
       -h            Display this help and exit
       -n            Do not fork and print debug information to stdout
       -p    Use a different UDP port number (> 1023, default = 6789)
       -P    Set cwdaemon priority (-20 ... 20, default = 0)
       -s    Set morse speed (4 ... 60 wpm, default = 24)
       -t    Set PTT delay (0 ... 50 ms, default = 0)
       -v    Set volume for soundcard output
       -V            Output version information and exit
       -w    Set weighting (-50 ... 50, default = 0)
       -x    Use a different sound device
                     (c = console (default), s = soundcard, b = both, n = none)

I find useful to start the cwdaemon without any sidetone, it seems much better to use the sidetone of your radio rather than the PC speaker.

Enjoy your cwdaemon!