Some time back (October '97) I was looking at putting a Linux box on
a remote site. In the UK, the use of a CW ident is required in case the
radio goes for a wander, spurious emmisions etc and the site owner
was keen that the box complied with all the legal bits. The SCC drivers
in Linux of course have no CWID capability - well up to now anyway.
I sent these mods to Joerg Reuter, DL1BKE, but received no acknowledge
so I assume the email address I have for him is out of date. These mods
were applied to version 2.4a but will move to any without too much effort.
You can find the update tgz file on my web site. Not knowing how to further
distribute this information I'd appreciate any guidance on where else I could
upload this to if its felt to be of use to the amateur community in general.
They seem stable after (limited) testing over the last 4 months.
In the mean time, any feedback would be much appreciated.
Extract from the readme file I did...
=======================================================
The modifications are enabled by the #define in scc.h "SCC_CWID". Setting
this enables the modifications in the files sccinit.c (to set the new
parameters in the driver from the /etc/z8530drv.conf file), sccstat.c which
reports the settings of the morse identifier and the driver itself scc.c.
A further modification has been to the way the 'clock' parameter is
interpreted. If this has an unknown value (ie. not one of DPLL, DIVIDER or
EXTERNAL) then it is assumed to be a 16 bit value, the top 8 bits of which
will be written to R11 in the SCC to select the clock source. The value is
otherwise treated the same as DIVIDER.
eg clock 0x6600
will write the value 0x66 to R11
The Makefile requires no changes and the tools and kernel are built in
the same way as currently.
The new commands in the configuration file are as follows shown with
typical values:
cw_dtr yes # toggle DTR at the start and end of each
# ident sequence to switch a tone generator
# into the audio path from the scambled
# modem.
cw_enable yes # yes, we DO want idents on this port
cw_interval 1770 # 30 secs short of half hour - the maximum
# interval. Timed from the end of one
# transmission to the start of the next
cw_inv no # no - my tone generator doesn't require the
# sense of the TX data line to be inverted
# to create tones that are pleasing to the ear
cw_text g8ecj.io91po # this is the text I will send. The '.' is a
# pause between words. Maximum length 20
# characters
cw_wpm 20 # maximum rate recommended
These commands must come AFTER the MODEM commands (speed, clock, mode) but
BEFORE the KISS commands (txdelay, persist etc) for each SCC port that an
ident is required on.
Points to note are:
- the parsing in sccinit is rather simple so silly values could
cause the kernel to go unstable
- only the kernel build has been tested fully. Building as a module
should not cause any problems though.
- version 3 (ie. for experiment kernels in the 2.1.x series) has not
been implemented or tested
Technical bit:
The code works by initiating the interval timer at startup. When it expires
the transmit code is put into the busy state as though data was ready for
transmission. An extra flag is set in case the transmitter is already busy
at the time of the interval timer expiring.
The transmitter then goes though its normal half or full duplex negotiation
for the channel, using persist etc for half duplex, and the rig is keyed up.
Rather than then executing the txdelay period, the new code is exectued.
This puts the SCC into MARK or SPACE mode by switching it to NRZ mode
(otherwise the TX data line toggles) for the dots and dashes of the ident.
The standard formula of a dot is one dit and a dash is three dits is used
with one dit space between dots and dashes within a letter, three dits
between letters and five dits between words.
When the ident is complete, the interval timer is restarted and the transmit
code is taken back to the state as though it had just completed the txdelay
period. This allows it to sent data (if there is any) within the same keyup
period.
The /proc filesystem output has been extended to show the parameters set
with the label CWID and this is used by the 'sccstat -p' display to make the
reporting of the SCC parameters human readable.
=======================================================
--73 de Robin Hub manager gb7ipd
g8ecj.ampr.org. IP 44.131.161.112 Located in Flackwell Heath IO91po NTS: G8ECJ@GB7TVG.#42.GBR.EU AmprNet: mdfktd.vpwldpjxng@nib.fi Internet: tjesjso.taosht@infolytica.com http://www.abmdata.demon.co.uk/g8ecj.htm Shack: (+44) 1628 533311 Fax: (+44) 1628 533399