K1EL WinKeyer3 User manual

K1EL CW Processor/Keyer WinKeyer3 v30
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 1
Introduction
This document will describe the K1EL WinKeyer3 (WK3) IC and its’ various interfaces. WK3 is a third
generation single chip Morse keyer IC. It is designed to attach to a PC’s USB port and provide accurate
transmitter keying for Windows based logging or other ham radio software packages. Due to timing
latency inherent in the multi-threaded Windows operating system, it is difficult for a PC to generate
accurately timed Morse. WK3 buffers ASCII characters sent by a Windows based software application.
It then translates them to Morse and directly keys a transmitter or transceiver. In addition, WK3 has a
paddle input allowing an operator to break in and send directly at any time. WK3 also provides a speed
potentiometer interface so that an operator can instantly dial any speed desired.
The host PC communicates to WK3 over a simple serial interface which can be a COM or USB port.
Letters to send, along with operational commands, are sent from the host to WK3 over the serial link. A
substantial feature list is provided allowing the user to precisely tailor WK3’s keying characteristics to a
particular transmitter. WK3 has a very low power requirement; in fact, it was originally designed to be
powered from a PC’s serial port. In standby it draws under a micro amp.
K1EL and several other manufactures sell products that utilize the WK3 IC, refer to the k1el website:
www.k1el.com for further information. One popular kit is Hamcrafters WKUSB which includes a USB
interface, speed control, enclosure with pushbuttons, and an internal battery pack for standalone use.
Features
•1200/9600 Baud Serial Rx/Tx Interface
•Iambic CW Paddle Interface
•Two Key Output Ports (high true TTL)
•Two PTT Output Ports: (high true TTL)
•25 ma output sink/source
•Adjustable PTT lead in and tail delays
•Adjustable Speed 5-99 WPM
•Adjustable Weighting and dit/dah ratio
•Adjustable Farnsworth Character Spacing
•Adjustable Keying Compensation
•Autospace and Letterspace Control
•Sidetone output with adjustable frequency
•Standalone K14 Keyer Emulation
•Paddle only sidetone
•Custom configuration for two users
•Dit/Dah Memory Control
•Single Op Two Radio (SO2R) Support
•Adjustable Paddle Switchpoint
•Iambic A, B, Ultimatic & “Bug” modes
•Speed Pot Interface
•Adjustable speed pot range
•Embedded commands
•160 character input buffer
•No crystals or oscillators
•3.3 to 5 volt operation
•Current Draw: < 2 ma in active operation
•HSCW and QRSS Capability
•Automatic power down sleep mode
•Twelve stackable memory slots
•Stored Callsigns
Figure 1 – WinKeyer3 Package & Pinout
Pin 1 – Vcc (5.0 volts)
Pin 2 – Port 2 Key Output
Pin 3 – Port 2 PTT Output
Pin 4 – USB Connected Sense
Pin 5 – Serial Receive Input
Pin 6 – Serial Transmit Output
Pin 7 – Port 1 Key Output
Pin 8 – Sidetone
Pin 9 – Port 1 PTT Output
Pin 10 – Speed Pot Analog Input
Pin 11 – Right Paddle Input
Pin 12 – Left Paddle Input
Pin 13 – Switch Array Input
Pin 14 – Vss (Ground)
6
7
9
8
Winkeyer3
1
2
3
4
14
13
12
11
510

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 2
Theory of Operation
This section will describe how WK3 works. As shown in Figure 1, the host PC is connected to WK3 over a
serial COM port, which can be a USB port supporting a virtual COM port. WK3 is a slave to the PC in that it
receives commands and data from the PC. The PC can send commands while WK3 is sending Morse
allowing dynamic configuration changes. There are four reasons WK3 will transfer data back to the host:
1) lnform the host of a status change in WK3.
2) Inform the host of a speed pot or pushbutton change.
3) Respond to a request for status from the host.
4) Echo back Morse in ASCII as it’s being sent from either the serial port or the paddles.
Figure 2 – WK3 to PC Connection
There are two types of serial data transfer from the host to WK3: Command and Data. Commands modify
WK3’s operation in some way, for example changing operating speed, pausing transmission, or asking for
status. Data can be letters, numbers, or prosigns that are to be sent in Morse. Commands and data are
processed differently in WK3. Data is put into a serial buffer that allows the host to send data ahead of the
Morse being sent. The size of this buffer is 160 characters and is a FIFO which is an acronym for First In
First Out. This means that characters are taken out in the order they were put in. Since there can be a
considerable delay from host input to Morse output, commands bypass the input FIFO and are acted upon
immediately. This allows changes to be made while sending is underway.
Figure 3 – Data and Command Flow inside WK3
Since there are times when you don't want commands to take effect immediately, WK3 allows commands to
be buffered. This means that the command is placed in the serial buffer and won’t be acted on until it comes
out of the buffer. An example of the use of a buffered command would be to send two words at two different
speeds, the first at 15 WPM and the second at 20 WPM. By placing a buffered speed command between the
words, the speed will not be changed until the first word is completely sent. Not all, but many of WK3’s
immediate commands can be entered as buffered commands.
128
byte
FIFO
Input
Parser
Serial Input
Command
Bypass
to input processing
Data
Host
PC Winkeyer
I.C.Serial
Data
Keyboard
Key 1
Sidetone
Keyer Paddle
Display
Speed Pot
Rx
Tx
COM n
Push Button Array
PTT 1
Key 2
PTT 2

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 3
Communication from WK3 to the host operates in a loosely coupled manner. This means that the host never
issues a command and waits for a response. Instead, the host sends a request for information and WK3
queues this request and will respond to the host when processing time allows. WK3 processes tasks in
parallel, there may be other bytes waiting to be sent back to the host before the latest request can be
handled. Rather than wait for a return, the host should divide its WK3 driver interface into two parts, one part
that issues command bytes and a second part that checks for returned bytes and processes them when they
arrive. Following is a bit of pseudo-code that illustrates this concept. It will make more sense as you learn
about the WK3 command set.
Serial Comm Thread {
while (1) {
if (host has a command to send to WK3) {
send command to WK3;
}
else if (WK3:uart_byte_ready) {
wkbyte = WK3:uart_read();
if (( wkbyte & 0xc0) == 0xc0 {
it’s a status byte. (Host may or may not have asked for it.)
process status change, note that it could be a pushbutton change
}
else if ((wkbyte & 0xc0) == 0x80) {
it’s a speed pot byte (Host may or may not have asked for it.)
process speed pot change
}
else {
it must be an echo back byte
if (break-in==1) { it’s a paddle echo }
else { it’s a serial echo }
}
}
}
}
Notice that unless WK3 has something for the host to read, the host continues to process outgoing
commands and other tasks. Also note that speed pot and status bytes can be unsolicited, in other words
WK3 can send these at any time a state change occurs inside WK3. Echo back bytes are also unsolicited as
they are based on asynchronous Morse sending. The host has to be able to handle these as they occur. If
host processing is not immediate, a serial input buffer on the host side is required to make sure no returned
bytes are missed.
Paddle Input Priority
WK3 accepts input from either its serial port or iambic paddle port. Paddle input will always take priority and
will interrupt serial data, automatically clearing WK3’s serial input buffer. When a paddle break-in occurs,
any additional serial data that arrives from the host will be processed, but will be ignored unless it is an
immediate command. After paddling ceases, WK3 will pause for one word space time before it resumes
serial data transmission.
Standalone Keyer Mode
WK3’s primary purpose is to provide accurate Morse keying to a Windows based application. The most
often requested feature from users of WK1 was to also allow WK to be run independently, not connected to
a computer. In response, all subsequent WinKeyer ICs provide standalone operation.
In most respects the standalone keyer is completely separate from the host mode keyer. This means that
the standalone keyer has its own configured state that is overwritten when changing to host driven mode.
Configuration changes issued while under host mode will be cancelled when returning to standalone mode.
A simple Windows application is available from K1EL called WK3MGR which can be used to set the
standalone configuration and message contents from the PC. Alternatively, settings and messages can be
entered by paddle commands in standalone mode.

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 4
Power Up Default State
On power up, WK3 comes up in standalone mode and stays in that mode until it receives a Host Open
command from a PC host. At that time, standalone mode is suspended. When the host takes over, it
normally downloads a block of initialization parameters (see Load Defaults command) to set the operating
state as desired and to sync WK3 settings with those of the host. When shutting down, a host application
that has opened WK3 should always issue an Admin:Close command to return WK3 back to standalone
mode. This allows the keyer to be used in standalone mode while still attached to the PC. When WK3 is
physically disconnected from the host it automatically goes into standalone mode even if a Close command
was not issued.
While WK3 is attached to a PC com port in the closed state, it will accept ADMIN commands. This allows an
application such as WK3MGR to access standalone messages and settings.
WinKeyer3 Lockup Recovery
After WK3 is connected to a host it should not be physically disconnected while the host application is
active. Accidents do happen and if the USB cable is pulled in the middle of a command or data exchange
WK3 can get locked up. It’s not very likely but it can happen. A provision is included to easily get WK3 back
in operation again. Press and hold the command button until WK3 responds with either an ‘R’ or an MN
prosign (dah-dah-dah-dit).
Pushbutton Notification
Starting with WK version 2.0, the pushbuttons can be used in host mode. Normally pushbutons are used in
standalone mode only. One pushbutton is designated as the Command push button and is used to initiate
paddle commands. The other pushbuttons are used to enter or play recorded Morse messages. The host
must issue an Admin:Set WK2 Mode command to enable pushbutton notification. Once the mode is sent,
pushbutton status will be returned in the WK2 status byte. See page 13 for further information.
USB Sense
WK3 was designed with USB interfacing in mind. A USB sense input is provided which should be asserted
high when the USB port is attached and active. If the USB port is switched to standby or disconnected from
the PC, USB Sense should be pulled low. When low, WK3 is allowed to go into low power sleep mode. Note
that while connected to the host with USB sense high, WK3 will not go into low power standby.
Versions later than 22 were changed to handle the case where the host PC goes into standby while a host
application is actively connected to WK. If this happens, WK will not disconnect and will remain in host mode
until the PC comes out of standby. This maintains the link between the host application and WK so that
WKUSB can be used as soon as the PC wakes up and leaves standby mode.
Firmware Update
The firmware image within WK3 can be upgraded in the field. When K1EL releases a firmware update, it can
be uploaded to the WK3 IC through the WK3MGR utility over USB. Updates will be available from
www.k1el.com/wkupdates.html

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 5
Host Mode Command Descriptions
This section documents the commands that are sent from the host to WK3 over the serial/USB interface.
Commands are special hex codes that are sent to WK3. These codes range from 0x01 through 0x1F. In this
document a hex value will be presented in angle brackets, for example <02>. Some commands have one or
more parameters sent immediately after the command code is sent, this will be documented as the
command code followed by a value: <02><nn> where nn is a single byte decimal value. The notation [c]
represents a single ASCII character sent to WK3 as a single serial byte.
Immediate Commands
These commands are processed as soon as they are received, they bypass the input buffer.
●Admin Command <00><nn> nn is a value from 0 to 20
After power-up the host interface is closed and serial status, echo, or pot change data will be not be sent to
the host. The only commands WK3 will accept are Admin commands. Admin commands are received,
processed and any return status or data will be sent back immediately. There are many Admin commands
andthey serve various purposes. With the exception of the Amin:Close command, all Admin commands
should only be issued while the host interface is closed. Following are descriptions of the Admin commands:
0: Calibrate This is an historical command preserved for WK1 compatibility. The command is accepted
but not processed by WK3. The command syntax is: <00><00> pause 100 mSec <FF>
1: Reset Resets the WK3 processor to the power up state. Do not send this as part of the
initialization sequence. Only send this if you want to do a cold reboot of WK3.
2: Host Open Upon power-up, the host interface is closed. To enable host mode, the PC host must
issue the Admin:open <00><02> command. Upon open, WK3 will respond by sending the
revision code back to the host. The host must wait for this return code before any other
commands or data can be sent to WK3. Upon open, WK1 mode is set.
3: Host Close Use this command to turn off the host interface. WK3 will return to standby mode after this
command is issued and standby settings will be restored.
4: Echo Test Used to test the serial interface. The next character sent to WK3 after this command will
be echoed back to the host. <00><04><65> echoes A.
5: Paddle A2D Historical command not supported in WK3, always returns 0.
6: Speed A2D Historical command not supported in WK3, always returns 0.
7: Get Values Historical command not supported in WK3, always returns 0.
8: Reserved K1EL Debug use only
9: Get Cal Historical command not supported in WK3, always returns 0.
10: Set WK1 Mode Disables pushbutton reporting
11: Set WK2 Mode Enables pushbutton reporting, alternate WK status mode is selected.
12: Dump EEPROM Dumps all 256 bytes of WK3’s internal EEPROM.
13: Load EEPROM Download all 256 bytes of WK3’s internal EEPROM.
14: Send Standalone Message Command WK3 to send one of its internal messages. The command
syntax is: <00><14><msg number> where msg number is 1 through 6
15: Load X1MODE Load mode extension register 1, WK1 does not support this register. Note that the bit
assignments of this register are different between WK2 and WK3 mode

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 6
V
alue nn Bits Function
7-4 (MSN) Letterspace Adjustment, upper 4 bits
0 to 15 in 2% increments
3 Standalone cut mode, send 0 as T and
9 as N when set to 1 (ignored in host mode)
2 Unused
1 Enable Paddle Status when = 1
0 Unused
Table 1 – Extension Mode Register 1 (X1MODE) in WK2 Mode
V
alue nn Bits Function
7 (MSB) Select User 0 or 1
6 Select Message Bank 0 or 1
5 Select tune 50% duty when = 1
4-0 Letterspace Adjustment, lower 5 bits
0 to 15 in 2% increments
Table 2 – Extension Mode Register 1 (X1MODE) in WK3 Mode
16: Firmware Update This command initiates an image upload. This feature is protected.
17: Set High Baud Change Baud Rate to 9600 baud
18: Set Low Baud Change Baud Rate to 1200 (default)
Baud rate change must be handled in a specific way. Since most applications expect WK3 to run at
1200 baud, this is always the default and will be reinstated whenever WK3 is closed. If an
application wants to run at 9600 baud, it must start out at 1200 baud mode and then issue the Set
High Baud command. When the application closes it should issue a WK close command which will
reset the baud rate to 1200.
19: Set K1EL Antenna Switch Function not currently documented, reserved for future release.
20: Set WK3 Mode Enables WinKeyer 3 functions; expanded X1MODE and additional X2MODE
register
21: Read Back Vcc Return WK IC power supply voltage. This command returns a single byte which
can be converted to voltage: 26214/byte value = Voltage*100
22: Load X2MODE Load mode extension register 2. This register is active on WK3 mode only.
V
alue nn Bits Function
7 (MSB) Paddle status On when set
6 Fast command response on when set
This applies to standalone PB press.
5 Cut 9 : Substitute N for 9 when set
4 Cut 0: Substitute T for 0 when set
3 Paddle only sidetone when set
2 SO2R mode (PTT1 = radio select)
1 Paddle Mute when set
0 Spare
Table 3 – Extension Mode Register 2 (WK3 Mode Only)
End of ADMIN Commands

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 7
●Sidetone Control <01><nn> nn is a value described below
WK3 Pin 8 functions as the sidetone square wave output and supports the legacy WK1 and WK2 sidetone
schemes. When not in WK3 mode the sidetone selections are governed by table 4 and 5 below. Note that
WK3 frequencies will be slightly different than those shown in the table.
V
alue nn Bits Function
7 (MSB) Enable Paddle Only Sidetone when = 1
6-4 Unused set to zero
3-0 Sidetone frequency N (See Table 4 below)
Table 4 – WK1 and WK2 Sidetone Control Assignments
N
Frequency
N
F
requency
0x1 4000 Hz 0x6
6
66 Hz
0x2 2000 Hz 0x7
5
71 Hz
0x3 1333 Hz 0x8
5
00 Hz
0x4 1000 Hz 0x9
4
44 Hz
0x5 800 Hz 0xa
4
00 Hz
Table 5 – WK1 and WK2 Sidetone Selection Table
The most significant bit of the frequency byte controls the paddle only sidetone feature which was introduced
in WK2. You can choose to only use sidetone for paddle entry and mute it for CW sourced from the host
port. This is called Paddle Only Sidetone and is selected by setting the MSB of the sidetone control value.
In WK3 mode, the sidetone frequency is continuously adjustable between 500 and 4000Hz. All bits of the
sidetone control register are used. The formula for the value is 62500/frequency. For example: nn = 62 for
1000 Hz. Due to integer round off, the setting is approximate and will be within 5% of the frequency
specified. In WK3 mode, the paddle only sidetone control bit is relocated to the X2MODE register.
●Set WPM Speed <02><nn> nn is in the range of 5-99 WPM
Example: <02><12> set 18 WPM
Set a new Morse operating speed, this command takes effect as soon as WK3 receives it. If the speed is set
to zero then WK3 will take its speed setting directly from the speed pot, this is the reset default.
●Set Weighting <03><nn> nn is in the range of 10-90%
Example: <03><32> for weight=50
This command allows a proportional amount to be either added or subtracted from the length of all
transmitted dits and dahs. A value of 50 (0x32) selects no weighting adjustment. Values less than 50
reduce weighting and values greater than 50 increase weighting. Note that weighting does not affect
sending speed because any increase in keyed time is subtracted from spacing time. Reduction in weighting
results in a thinner sounding keying while increased weighting results in a heavier sound. Since weighting
tracks speed, a given weighting will sound the same at all speeds.
Decreased Weighting
Normal R
Increased Weighting
Figure 4 - Weighting Example
●Set PTT Lead/Tail <04><nn1><nn2> nn1=lead in time, nn2=tail time
Example: <04><01><A0> lead-in=1, tail=160
WEIGHTED DIT TIME =
(((WEIGHT×50)/50)×DIT TIME)
WEIGHTED DAH TIME =
(((WEIGHT×50)/50)×DAH TIME)

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 8
Values can be 0 to 250 in 10 mSecs steps
WK3 provides a transmitter PTT output for each key output that can be used to switch a transmitter or linear
amplifier over to transmit mode in advance of actual CW keying. You have control over the time delay
between when PTT is asserted and when CW keying will start, this is lead-in. You also have control over
how long the transmitter will stay in transmit after keying has stopped. These delay settings apply to both
key ports. The trailing delay is handled differently for CW sent by paddle and CW sent by “machine”. Paddle
delay is controlled by the Hang Time setting in the PINCFG register (see the SetPinConfig command). The
Tail setting determines the delay used for CW sent by an internal message or CW sent by a Host
application. The formula to calculate tail time is:
Tail Delay = Three Dit Times + (Tail Setting times 10 milliseconds)
Examples:
At 20 WPM, Tail set to 7, Tail Delay = (3x60)+(7x10) = 250 mSec
At 40 WPM, Tail set to 7, Tail Delay = (3x30)+(7x10) = 160 mSec
At 20 WPM, Tail set to 0, Tail Delay = (3x60)+(0x10) = 180 mSec
At 15 WPM, Tail set to 55, Tail Delay = (3x80)+(55x10) = 790 mSec
Lead-in Delay Tail Delay
PTT
Key
The letter A
Figure 5 – PTT Lead-in and Tail Example
A detailed description of PTT functionality can be found on page 15.
●Setup Speed Pot <05><nn1><nn2><nn3> nn1 = MIN, nn2 = RANGE, nn3 = 0
This command sets the limits for the speed pot. MINWPM sets the lowest value returned; WPMRANGE
indirectly specifies the maximum value returned. For example if MINWPM=10 and WPMRANGE=15, the full
pot swing values, min to max, would be 10 to 25 WPM. Note that the max value is MINWPM+WPMRANGE.
The value of the third parameter is not used but it must be included to maintain backward compatibility for
applications supporting only WK1 keyers. Recommendation is to set this to zero but any value is accepted.
470
10K
.0047uF
WK2 Pin 10
Figure 6 – Speed Pot Circuit
●Set Pause State <06><nn> nn = 01 pause, value = 00 unpause
When WK3 is paused, sending will stop immediately and will not resume until pause is cancelled. The
current character being sent in Morse will be completed before pausing. The Clear Buffer command will
cancel a pause state.
●Get Speed Pot <07> Return WinKeyer3’s current speed pot setting
This command will cause a speed pot command request to be queued which will be acted on as soon as
possible. Depending on current processing load, the pot status byte will be sent within 200 milliseconds after
command receipt. The application should not wait for a response but process the returned data in an
unsolicited status handler. The returned value will range from 0 to 31 and will be the actual speed pot value

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 9
minus the MIN_WPM setting. The speed pot is windowed into a 32 step range between 5 to 99 WPM (see
Setup SpeedPot command). The two MS Bits of a Speed Pot status byte will always be b10:
1 0 6 bit value in WPM
Table 6 - Speed Pot Status Byte Format
●Backspace <08> Backup the input buffer pointer by one character.
This command is only meaningful if there is something in the serial input buffer, otherwise it is ignored.
●Set PinConfig <09><nn> Set the PINCFG Register
Low nibble determines how output pins are mapped
High nibble controls ultimatic mode and hang time
The original WK1 IC was in an 8 pin package in which Pin 5 was a shared resource, it could be assigned as
a PTT output, a Sidetone output, or a secondary Key output: If it was assigned as a PTT output, that meant
it was not possible to output sidetone. Likewise if it was assigned as a secondary Key output, sidetone or
PTT were not allowed. When WK was moved to a 14 pin package, separate outputs were provided.
Bit 7-4 Bit 3 Bit 2 Bit 1 Bit 0
See Below Pin5 KeyOut
Enable
Pin3 KeyOut
Enable
Pin 5 Sidetone
Enable
Pin5 PTT
Enable
Table 7 – WK1 PINCFG Format (for reference)
In the 14 pin package, there is a dedicated sidetone pin, two PTT outputs, and two Key outputs. The pin
config assignments are compatible with WK1 for backwards software compatibility. For example Bit 0
specifies whether PTT should be used, Bit 1 specifies whether Sidetone is enabled, and Bits 2 and 3 select
which key port is active. If Key Port 1 and PTT is enabled, PTT1 will be asserted in sync with KEY1. If Key
Port 2 is enabled, KEY2 and PTT2 are activated.
Bit 7-4 Bit 3 Bit 2 Bit 1 Bit 0
See Below KeyOut 1
Enable
KeyOut 2
Enable
Sidetone
Enable
PTT Enable
Table 8 – WK3/WK2 PINCFG Format
The WK2/WK3 PINCFG register also includes two additional features; Ultimatic Dit/Dah priority and Paddle
hang time. These settings are allocated to the upper four bits as follows:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3-0
Ult Priority
1
Ult Priority
0
Hang Time
1
Hang Time
0
See Above
Table 9 – WK1/WK2/WK3 Priority/Hang Time Format
Ultimatic Priority = 00 Normal Ultimatic
Ultimatic Priority = 01 Send dahs when both paddles are pressed in Ultimatic mode
Ultimatic Priority = 10 Send dits when both paddles are pressed in Ultimatic mode
Ultimatic Priority = 11 Undefined
Hang Time = 00 Wait 1 wordspace + 1 dit before ending paddle insertion
Hang Time = 01 Wait 1 wordspace + 2 dits before ending paddle insertion
Hang Time = 10 Wait 1 wordspace + 4 dits before ending paddle insertion
Hang Time = 11 Wait 1 wordspace + 8 dits before ending paddle insertion
Hang Time is similar to tail time in that it holds PTT on between paddle presses, but it is proportional to
sending speed since it is measured in word space time while tail time is mostly a fixed delay.

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 10
●Clear Buffer <0A> Reset Input Buffer Pointers
This command will reset the input buffer pointers to an empty state. In addition, Tune and Pause are cancelled
by this command.
Clear Buffer can be sent at any time to abort a message, abort a command, or to clear the serial buffer. It
will cancel any Morse character in progress immediately ending it in midstream if necessary.
●Key Immediate <0B><nn> nn = 01 key down, n = 00 key up
Use this command to implement a tune function. Once asserted, key down will remain in effect until either a key
immediate with a zero value is received or the internal tune watchdog timer expires. The tune timer is hard coded
to a value of 100 seconds and cannot be disabled. Key down can be aborted either by the paddles or by a clear
buffer command.
●Set HSCW <0C><nn> nn = the lpm rate divided by 100
WK3 supports HSCW (High Speed CW) transmit rates through the use of this immediate command. .
For example nn=20 selects 2000 lpm and nn=35 selects 3500 lpm. Any rate from 1000 to 8000 can be
picked but only a few are used by radio amateurs. In the US, common rates are 1000, 2000, 4000 and 6000
lpm while in Europe 1000, 1500, 3000, 4000 lpm are common.
●Set Farns WPM <0D><nn> nn is in the range of 10-99
Example: <0D><12> for Farnsworth=18 WPM
Farnsworth spacing is useful for CW practice because it encourages you to learn characters by sound not
individual dits and dahs. When Farnsworth is enabled, letters are sent at a fixed rate of nn WPM while
spacing between characters is determined by the sending WPM rate. When the WPM rate is set above the
Farnsworth WPM, Farnsworth is automatically disabled.
●Set WinKeyer Mode <0E><nn> nn = Mode bit field in binary
Example: <0E><13> set bits 4,1,0, clear the rest
The operational mode of WK3 is controlled by the mode register.
Mode Bit Function
7 (MSB) Disable Paddle watchdog
6 Paddle Echoback (1=Enabled, 0=Disabled)
5 Key Mode: 00 = Iambic B 01 = Iambic A
10 = Ultimatic 11 = Bug Mode
4
3 Paddle Swap (1=Swap, 0=Normal)
2 Serial Echoback (1=Enabled, 0=Disabled)
1 Autospace (1=Enabled, 0=Disabled)
0 (LSB) CT Spacing when=1, Normal Wordspace when=0
Table 10 – WK3 Mode Selection Table
The WK3 mode register is cleared at reset.
Bit 7
WK3 has a paddle watchdog counter that disables the key output after 128 consecutive dits or dahs. WK3
assumes that this is an unintended condition and keying outputs are turned off. Sidetone remains on to alert
the user. Paddle watchdog is on by default but it can be turned off by setting this mode bit.
Bit 6
When this bit is set to one all characters entered on the paddles will be echoed back to the host. From the
host's perspective, paddle echo and serial echo are the same; in both cases a letter sent in Morse by WK3 is
echoed back to the host. The echo occurs after the letter has been completely sent. The host can determine

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 11
the source by the sense of the “break-in” status bit. If this bit is high when the echoed letter comes in, then
the letter’s source was from the paddles, if break-in is low the source if from the serial port.
Bit 5, 4
WK3 supports iambic A, B, Ultimatic, and Bug keying modes. In iambic mode, WK3 sends dits and dahs
automatically based on which paddle you press. In bug mode WK3 sends the dits and you manually send
the dahs. You also can use bug mode to operate in straight key mode or if you want to key through WK3
with a different keyer, simply set bug mode and use the dah input to key WK3.
In either iambic mode, alternating dits and dahs are sent while both paddles are held closed. In mode B an
extra alternate dit or dah is sent after both paddles are released. In Ultimatic mode when both paddles are
pressed the keyer will send a continuous stream of whichever paddle was last pressed.
Bit 3
This bit swaps the operation of the dit and dah paddles. It’s used mostly to accomodate left handed ops or to
correct for a miswire in the keying cable.
Bit 2
Serial Echo Back tells WK3 to echo each Morse letter that originated at the host. It can be used to allow a
host application to stay exactly in sync with Morse letters as they are sent. Each letter is sent to the host
after it has been sent in Morse. This permits the host to track WK3’s progress in real time. Note that buffered
commands and their parameters are not echoed back to the host.
Bit 1
Autospace works in the following way: If you pause for more than one dit time between a dit or dah, WK3 will
interpret this as a letter-space and will not send the next dit or dah until the full letter-space time has been
met. The normal letter-space is 3 dit spaces. WK3 has a paddle event memory so that you can enter dits or
dahs during the inter-letter space and WK3 will send them as they were entered. With a little practice,
autospace will help you to send near perfect Morse.
Bit 0
When contest spacing is enabled, wordspace time is reduced by one dit. Instead of 7 dits per wordspace,
contest spacing selects six dits per wordspace.
●Load Defaults <0F><value list> value list is a set of 15 binary values
This command is used to load all of WK3’s operating parameters to be loaded in one block transfer. The
values are binary and must be loaded in order. The values are exactly the same as those loaded for the
individual commands. The preferred time to issue this command is at reset just after the interface has been
opened. Do not issue this command while WK3 is transmitting.
1) Mode Register 2) Speed in WPM 3) Sidetone Frequency
4) Weight 5) Lead-In Time 6) Tail Time
7) MinWPM 8) WPM Range 9) X2 Mode
10) Key Compensation 11) Farnsworth WPM 12) Paddle Setpoint
13) Dit/Dah Ratio 14) Pin Configuration 15) X1 Mode
Table 11 - Default Value List in order of issuance
●Set 1st Extension <10><nn> nn is in the range of (0 to 250) ×1 mSecs
This command is no longer supported in WK3, it will be accepted but is ignored.

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 12
●Set Key Comp <11><nn> nn is in the range of (0 to 250) ×1 mSecs
Example: <11><B4> sets key comp to 180 mSecs
Keying Compensation allows a fixed amount to be added to the length of all dits and dahs. QSK keying on
modern transceivers can cause shortening of dit and dah elements which is especially noticeable at high
speeds. WK3 can compensate for the shortening by adding a uniform length to each dit and dah element.
The adjustments are made in one-millisecond steps and the maximum adjustment allowed is 250 mSecs.
Key compensation is very similar to Weighting in that an adjustment added to a dit or dah is then subtracted
from the spacing between them so the overall speed is not changed. The difference between weighting and
compensation is that compensation is independent of speed, so if 10 msec of key compensation is selected,
10 msec will be always be added regardless of speed. Be aware that at high speeds, large values of key
compensation can reduce inter-element space to zero.
In the following figure, an R is represented without key compensation (nn = 00) and with 12 mSecs of key
compensation (nn = 12). Note that each dit or dah starts at the same place with compensation on.
Normal R
Key Compensation
Figure 7 – Keying Compensation Example
●Set Paddle Switchpoint <12><nn> nn is in the range of 10-90%
Example: <03><37> for a switchpoint = 55 decimal
This setting controls when WK3 will start looking for a new paddle press after sensing the current one. If
there is not enough delay, the keyer could send unwanted dits or dahs. If there is too much delay, the
operator is held back because they can't paddle ahead. The default value is one dit time (50) and is
adjustable in percent of a dit time. Faster operators report a setting somewhat less than default is optimal.
If the paddle sensitivity is set to zero, dit and dah paddle memory is disabled.
The delay is calculated with this formula:
DELAY_TIME = (SWITCHPOINT×DIT_TIME)/50 where Switchpoint is a value between 10 and 90.
●Null Command <13> This command is ignored
In some situations there is a need to insert a placeholder in the serial data stream. This command provides
that function. It occupies a stream position but is ignored by the Morse processor.
●Software Paddle <14><nn> nn = 00 paddle up, n=01 dit, n=02 dah, n=03 both
This command provides a means to assert the paddle input from the host. The host application can implement a
keyboard paddle by converting PC up/down key codes to Software Paddle commands. Due to the slow response
time of the keyboard, operating system, and serial communication, it can be a challenge to get this scheme to
work above 20 WPM. The paddle watchdog guards this interface in the same way as normal paddle input.

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 13
●Request WinKeyer Status <15> Return WinKeyer status byte
This command queues a request to WK3 to send its current operating state. The status byte returned consists of
a bit field that is defined by one of the following tables, as determined by the current WK mode. The three MSBs
of the status byte are always b110. Note that in WK2 mode mode bit 3 identifies the status byte as a pushbutton
status byte. WK2 and/or WK3 mode is set by ADMIN commands (see pages 5 & 6).
Status Bit Name Definition
7 (MSB) Tag 1
6 Tag 1
5 Tag 0
4 WAIT WK is waiting for an internally timed event to finish
3 KEYDOWN Key down status (Tune) 1 = key down
2 BUSY Keyer is busy sending Morse when = 1
1 BREAKIN Paddle break-in active when = 1
0 (LSB) XOFF Buffer is more than 2/3 full when = 1
Table 11 – WinKeyer Status Definition WK1 compatible mode
Status Bit Name Definition
7 (MSB) Tag 1
6 Tag 1
5 Tag 0
4 WAIT WK is waiting for an internally timed event to finish
3 0 This is a WK Status Byte
2 BUSY Keyer is busy sending Morse when = 1
1 BREAKIN Paddle break-in active when = 1
0 (LSB) XOFF Buffer is more than 2/3 full when = 1
Table 12 – WinKeyer Status Definitions (WK2 Mode)
Status Bit Name Definition
7 (MSB) Tag 1
6 Tag 1
5 Tag 0
4 PB4STAT 1 when PB4 pressed, 0 when PB4 unpressed
3 1 This is a pushbutton status byte
2 PB3STAT 1 when PB3 pressed, 0 when PB3 unpressed
1 PB2STAT 1 when PB2 pressed, 0 when PB2 unpressed
0 (LSB) PB1STAT 1 when PB1 pressed, 0 when PB1 unpressed
Table 13 – WinKeyer Pushbutton Status Definitions (WK2 Mode)
A PB status byte is sent whenever the PB state changes, in other words a byte will be sent when a pushbutton is
pressed and a byte will be sent when the pushbutton is released. Only one press will be detected at a time.
●Pointer Command <16><nn> Input Buffer Command Set
This command allows the host app to manipulate the input buffer for special situations such as “on the fly”
callsign correction. Four commands make up the pointer command set:
nn=00 Reset input buffer pointers to start of buffer, only issue this when buffer is empty.
nn=01 Move input pointer to new position in overwrite mode
nn=02 Move input pointer to new position in append mode
nn=03 Add multiple nulls to the buffer <16><03><number of nulls>
A detailed description of the pointer command is detailed in a separate application note.
●Set Dit/Dah Ratio <17><nn> nn is in the range of 33-66 decimal
Modifies the ratio of dit time to dah time. Standard ratio is 1:3 (dit:dah) when nn = 50

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 14
The formula to determine dah/dit ratio is: DAH/DIT = 3∗(nn/50)
A value of 50 selects 1:3, a value of 33 would select 1:2, and a value of 66 would select 1:4. This causes an
intentional distortion of the Morse waveform. Some ops use this option to make their CW sound less
“machine like” but a little goes a long way !
1:2 Dit \Dah Ratio
Normal Ratio
1:4 Dit \Dah Ratio
Figure 8 – Three ratio settings for the letter R
Buffered Commands
These commands go into the input buffer maintaining their positional relationship to data.
●PTT On/Off <18><nn>nn = 01 PTT on, n = 00 PTT off
This command allows the PTT output to be used for a custom purpose. The command is operational only
when PTT is disabled (see PINCFG command on page 9). PTT can be turned on or off at will and is not
affected by transmit or any other command including Clear Buffer. Typical applications could be a power
level control, antenna selector, or to turn on a cooling fan. Since this is a buffered command, the change in
PTT will happen at the command’s position in the buffer and remain in effect until the next PTT ON/OFF
command is encountered. This command will not stall the output buffer.
●Key Buffered <19><nn> nn = 0 to 99 seconds
Use this command to assert the key output for a specific period of time. Since this is a buffered command, key
down will begin at the command’s position in the buffer and will stop transmit until the timeout has been satisfied.
The key down can be aborted either by the paddles or a Clear Buffer command. The maximum key down time is
99 seconds.
●Wait for nn Seconds <1A><nn> nn = 0 to 99 seconds
This command is used to insert a fixed pause into a message. Since this is a buffered command, the pause will
begin at the command’s position in the buffer and will halt transmit until the timeout has been satisfied. The wait
can be aborted either by the paddles or by a Clear Buffer command. The maximum key down time is 99
seconds.
●Merge Letters <1B>[C][C] Merge Two Letters into a Prosign
You can build "on the fly" prosigns with this command. Issue the merge command followed by two letters or
numbers and they will be merged together: <1B> [A] [R] is sent as AR. Note that nothing will be sent until
both letters have been received. Several common prosigns such as AR, SK, BT, and DN are already
assigned (see page 16). One application of this feature is to send special European language characters.

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 15
●Buffered Speed Change <1C><nn> nn is in the range of 5-99 WPM
Example: <02><23> set 35 WPM
This command places a speed change command into the serial buffer that will be acted upon when it is
taken out of the buffer. The current speed in force will be stored and will be reinstated when the buffered
speed change is cancelled by a Cancel Speed Change command or any of the following: Unbuffered Speed
change, Weight change, Farnsworth change, Ratio change, Compensation change, or Mode change.
This command is useful for building messages with embedded speed changes. In this example the first part
of the message will be sent at 5 WPM, the second at 25 WPM and the last at the current speed:
<1C><05>VVV DE K1EL <1C><19>VVV DE K1EL <1E>END
●HSCW Speed Change <1D><nn> nn = (lpm/100)
This command acts the same as the immediate HSCW command. This allows you to insert an HSCW burst
in a regular CW message or to put HSCW bursts of two different rates into the same message.
●Cancel Buffered Speed Change <1E> No Parameter
This command will cancel an active buffered speed change command. The sending speed that was in force
before the buffered speed change was encountered will be restored. Several buffered speed changes can
be issued within a message but none will alter the original sending speed.
●Buffered NOP <1F> No Parameter
This command will occupy a position in the input buffer but will be ignored when it is processed.
PTT Functionality
WKUSB’s PTT output is used to control an accessory device in addition to normal CW transmitter keying. In
most cases this device is a linear amplifier but it could be an antenna changeover relay or PTT input of the
transmitter. In all of these cases there are delay requirements that must be met to insure that the accessory
device is switched on before transmission begins and is held on until transmission completes. This prevents
damage to the accessory device due to hot switching. WK3 provides three independent PTT delays to meet
this requirement. (See figures on Page 8)
The first of these is Lead-In delay which initiates a keying event. When transmit starts, PTT will be asserted
first and then, after the Lead-In delay expires, the key output will be asserted. Lead-In can be set to a value
from 0 to 250 milliseconds in 10 millisecond increments (0 to 250).
Tail Delay specifies the amount of time PTT will be released after Key is released. Like Lead-In delay, it is
adjustable from 0 to 250 milliseconds in 10 millisecond increments. Tail delay is the sum of two delays, Tail
setting times 10 milliseconds plus three dit times.
Tail Delay = Three Dit Times + (Tail Setting times 10 milliseconds) note: one dit time = (1200/WPM) mSec
Examples:
At 20 WPM, Tail set to 7, Tail Delay = (3x60)+(7x10) = 250 mSec
At 40 WPM, Tail set to 7, Tail Delay = (3x30)+(7x10) = 160 mSec
At 20 WPM, Tail set to 0, Tail Delay = (3x60)+(0x10) = 180 mSec
At 15 WPM, Tail set to 55, Tail Delay = (3x80)+(55x10) = 790 mSec
In setting tail delay there are two considerations, the first is to prevent hot switching and the second is to add
delay to fill in between letters sent by paddle. Most ops don’t want their amplifier to be switched in and out
between letters. An issue arises in that Tail delay is not solely proportional to sending speed. This is
problematic when someone sets a comfortable tail delay at a slow speed and then increases the speed to a
much faster rate. At the faster rate, the tail delay will hold too long after keying stops. Alternatively, if a
comfortable delay is set at a faster WPM rate, PTT will then drop out between letters at a slower speed. To
solve this problem, paddle tail delay is governed by a separate parameter called hang time.

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 16
Hang Time is adjustable in four steps and is measured only in wordspace and dit times rather than fixed
milliseconds. This means that the delay will accurately track sending speed. In other words it will decrease
automatically as sending speed increases and vice versa. The four settings for Hang Time are:
HangTime = 0: wait 1 wordspace + 1 dit before ending paddle insertion
HangTime = 1: wait 1 wordspace + 2 dits before ending paddle insertion
HangTime = 2: wait 1 wordspace + 4 dits before ending paddle insertion
HangTime = 3: wait 1 wordspace + 8 dits before ending paddle insertion
To sum up, Tail delay should be set to provide just enough delay to prevent hot switching for machine sent
CW while hang delay is designed to hold PTT between letters independent of sending speed. PTT will
automatically be held between machine sent letters and words but will drop out quickly after a message has
been sent as long as there is no trailing wordspace.
Unsolicited Status Transmission
WK3 will automatically send two types of unsolicited status to the host: speed pot change, and WK status
byte change. Whenever the speed pot is moved, its new value will be sent to the host. Likewise whenever
there is a change to WinKeyer’s internal status register, a copy of it will be sent to the host. In WK2 mode,
the WK status byte is expanded to include pushbutton status.
Refer to the GetStatus command for a description of the status byte format and GetPot command for a
description of the speed pot status byte format. Since these bytes can arrive at any time and potentially can
be mixed with echo back bytes, they have identifying tags. If the MSB is set that identifies the byte as
unsolicited, if bit 6 is clear it’s a speed pot byte or if bit 6 is set it’s a status byte. In WK2 mode, bit 3
identifies a pushbutton status byte.
The host can request either of these bytes to be returned by using the Get Pot or Get Status commands.
Due to the parallel task handling nature of WK3, a response may not happen immediately, there may be
another byte in the return queue that needs to be sent first. Worst case latency will be 200 milliseconds. It is
not advisable for the host to wait for a response, it is better to handle it as illustrated by the code fragment
presented on page three.
ASCII Code Assignments, Prosign Mapping
WK3 maps several unused ASCII codes to standard prosigns as shown in Table 14. Additional prosigns can
be generated using the merge character command. Some abbreviations are not mapped (null), WK will
ignore these if received. Codes below 0x20 are commands, 0x30 to 0x39 are numerals 0-9, 0x41 to 0x5A
are letters A-Z. All codes above 0x5D are ignored except for | (0x7c) which is the ½ dit pad code.
ASCII Hex Prosign ASCII Hex Prosign
0x20 Is space . 0x2E Is period
! 0x21 Is mapped to (null) / 0x2F Is mapped to DN
“ 0x22 Is mapped to RR : 0x3A Is mapped to KN
# 0x23 Is mapped to (null) ; 0x3B Is mapped to AA
$ 0x24 Is mapped to SX < 0x3C Is mapped to AR
% 0x25 Is mapped to (null) = 0x3D Is mapped to BT
& 0x26 Is mapped to (null) > 0x3E Is mapped to SK
‘ 0x27 Is mapped to WG ? 0x3F Is question
( 0x28 Is mapped to KN @ 0x40 Is mapped to AC
) 0x29 Is mapped to KK [ 0x5B Is mapped to AS
* 0x2A Is mapped to (null) \ 0x5C Is mapped to DN
+ 0x2B Is mapped to AR ] 0x5D Is mapped to KN
, 0x2C Is comma | 0x7C Is ½ dit pad
- 0x2D Is mapped to DU
Table 14 – Prosign/Abbreviations Assignments

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 17
Serial Baud Rate
WK3’s standard baud rate is 1200 baud with an alternate baud rate of 9600 selected by command. The
communication settings are eight data bits, 2 stop bits, with no parity. Some thought has to be given to using
9600 baud. WK3 will always power up at 1200 baud so the host interface must always be prepared to start
the initialization at 1200 and then switch over to 9600 after the baud change command is issued. The baud
rate will revert back to 1200 baud if WK3 is reset.
Gap (Extra Space) Insertion
WK3 interprets the | character (hex 0x7C) as a ½ dit delay time. The | character can be included in a text
string to add extra emphasis to similar sounding sequences. An example is W1OMO, sending it as
W1|O|M|O makes it easier to copy.
Reset WK3/Restore Factory Defaults
As mentioned on Page 4, the command pushbutton can restore WK3 operation if a host lockup has occurred.
If you have a situation where you want to get back to your last saved configuration without having to enter any
paddle commands, press the command button and wait for an Rand then continue to press the command button
until WK3 sends MN (dah-dah-dah-dit). At this point WK3 has restarted and reloaded the last saved configuration
from EEPROM. Note that the standalone message contents are not erased but all other settings will be restored
back to the last standalone settings you had preserved using the X S command.
If you have a case where you want to return WK3 back to factory defaults, there are two ways to do it. The first
requires that the batteries are removed and the unit unplugged from the PC. Press and hold both paddles closed
and then reapply power. A Cwill be sent which signifies that factory setting have been restored and memories
have been erased. An easier way to do this is to use WK3tools. Connect WKUSB to a USB port and start
WK3tools. Verify that you have the com port set correctly with the TestWK button. If you want to save your
current messages click ReadWK. Now press Restore Defaults and then click WriteWK. This will restore WK3 to
factory settings. .
Factory Defaults are:
Fixed WPM: 15 Command WPM: 15 Sidetone: 800Hz Weight: No adjustment
KeyComp: 0 Interchar Spacing: Normal SampleAdjust: None KeyMode: Iambic B
Sidetone: On Autospace: Off OutputMode: KEY/PTT Serial Number: 0001
TX Mute: Off User: 1 Message Bank: 1 Messages: All Erased
Speed Pot Min: 5 Speed Pot Max: 35 First Extension: 0 Farnsworth: Off
Dit/Dah Ratio: 1:3 Sidetone: On Tune Duty Cycle: 100% Extra Letterspace: None
Sleep Mode
WK3 utilizes the low power sleep mode of the PIC CPU. WK3 normally rests in sleep mode and draws about 18
μA of DC current. When either of the paddles or a push-button is pressed, the chip wakes up and goes into
active mode drawing less than 1 ma idle and about 10ma while actively sending and driving sidetone. After the
paddle or push-button is serviced WK3 goes back to sleep after a few seconds. Note that running WKUSB
without sidetone and instead utilizing your radio’s sidetone will extend battery life.
Keyer Lock
See Page 30.

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 18
SO2R Mode
WK3 provides a basic SO2R capablity. When SO2R mode is enabled, PTT operation is modified. PTT1
becomes a radio select output while PTT2 becomes a common PTT output for both ports. To utilize PTT for
two radio setups requires additional gating as illustrated below:
The PTT outputs on WKUSB are open collector so pull up resistors are required to generate logic high and
low conditions. PTT1 will be logic zero when radio 1 is selected and logic one when radio 2 is selected.

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 19
WK3 Host Mode Command Table
Command Name Code Type Description Syntax Pg
Admin 00 Imm Administative Commands <00><type>… 5
Sidetone Freq 01 Imm Set sidetone frequency <01><freq> 6
Speed 02 Imm Set Morse sending speed <02><WPM> 6
Weighting 03 Imm Set key weighting <03><weight> 6
PTT Lead-in/Tail 04 Imm Set up PTT delays <04><leadin><tail> 7
Speed Pot Setup 05 Imm Set up speed pot range <05><m><wr><pr> 7
Pause 06 Imm Pause Morse output <06><0 or 1> 7
Get Speed Pot 07 Imm Request speed pot value <07> 7
Backspace 08 Imm Backup input pointer <08> 8
Pin Configuration 09 Imm Set output pin configuration <09><config> 8
Clear Buffer 0A Imm Clear input buffer <0A> 9
Key Immediate 0B Imm Direct control of key output <0B><0 or 1> 9
HSCW Speed 0C Imm Set HSCW speed <0C><lpm/100> 9
Farnsworth 0D Imm Set Farnsworth speed <0D><WPM> 9
WinKeyer3 Mode 0E Imm Load WinKeyer3 mode byte <0E><mode> 9
Load Defaults 0F Imm Download WK state block <0F><…15 values…> 10
First Extension 10 Imm No longer supported <10><msec> 10
Key Compensation 11 Imm Set Keying Compensation <11><comp> 11
Paddle Switchpoint 12 Imm Setup paddle sensitivity <12><sens> 11
Null 13 Imm Null Command, NOP <13> 11
S/W Paddle Input 14 Imm Software Paddle Control <14><paddle select> 11
WinKeyer3 Status 15 Imm Request WinKeyer3 status <15> 12
Buffer Pointer 16 Imm Buffer pointer commands <16><cmd>… 12
Dit/Dah Ratio 17 Imm Set ratio of dit/dah <17><ratio> 13
PTT Control 18 Buff Turn PTT on/off <18><0 or 1> 13
Timed Key Down 19 Buff Turn KeyOut on for an interval <19><secs> 13
Wait 1A Buff Wait for N seconds <1A><secs> 13
Merge Letters 1B Buff Merge chars into prosign <1B>[c][c] 13
Speed Change 1C Buff Change Morse speed <1C><WPM> 14
HSCW Speed 1D Buff Set HSCW speed <1D><lpm/100> 14
Port Select 1D Buff Select output port <1D><n> n=0 or n=1 14
Cancel Buff Speed 1E Buff Cancel Buff Speed Change <1E> 14
Buffered NOP 1F Buff Null Command (buffered) <1F> 14
Table 15 – WK3 Host Mode Command Table

K1EL WinKeyer3 CW Processor/Keyer
WinKeyer3 IC Interface & Operation Manual 6/11/2017 Rev 1.2 Page 20
WinKeyer3 (WK3) Standalone Mode
Features
•Keyer speed range: 5 - 99 WPM
•HSCW: 1000, 1500, 2000, 3000, 4000 or 6000 lpm
•QRSS: 3, 6, 10, 12, 30, 60 second dits
•Non-Volatile Message Memory: 240 letters in 12
slots with embedded commands.
•Dynamically allocated message memory
•Backspace correction on message entry
•Keying Modes: Bug, Ultimatic, Iambic A or B
•Automatic Serial Number Generation
•Audio Frequency keying mode (PTT)
•Adjustable Weight 25 to 75 %
•Automatic letterspace mode (Autospace)
•Unlimited Message Stacking
•Supply voltage monitor
•
SO2R Support
•Adjustable Letterspace
•Adjustable Keying Compensation 0 to 31 mSec
•Paddle swap command
•Beacon: Programmable interval: 1 to 99 seconds
•Continuously Adjustable Sidetone Frequency
•Two separate Keying/PTT outputs
•Speed control potentiometer support
•Push-button user interface
•39 easy to use commands
•Downloadable messages and settings
•Tx and Rx code practice utility
•Two user setups each with callsign
WK3 will operate in standalone mode when not connected to a host and will closely emulate the K14 keyer
IC in functionality. The most noticeable difference between host and standalone mode is that when in
standalone mode the user can enter commands on the paddles. This is initiated by pressing the command
pushbutton. In host mode the pushbuttons are ignored. Low power mode is activated in standalone mode,
this means that WK3 will go into a low power sleep state when idle. This makes it very battery friendly.
Standalone Pushbutton Functionality
WK3 standalone requires at least one push-button control, this switch is referred to as the command push-button
and is connected to pin 13. It serves two functions, command control and message record/playback control. Up
to five additional message push-buttons can be added to provide a total of six message slots. Be sure to use
normally open switches for the push-buttons. Pin 13 is an analog input which senses the switch network shown
in Fig 22. Message push-buttons 2 through 6 are connected as shown. Use 5% tolerance resistors for the
switching network.
+5V 4.7K
CMD/MSG1 MSG2 MSG4 MSG5 MSG6
2.2K 2.2K 2.2K 2.2K 2.2K
MSG3
To WK2 Pin 13
Figure 9 – Pushbutton Matrix
Standalone Command Mode
If the command push-button is pressed and held, the WK3 will respond after about two seconds with the letter R
in sidetone only. This means WK3 is ready to accept a command, you simply enter the command letter in Morse
on the paddles and the command will be executed. Some commands require additional information which WK3
will prompt you for by outputting the letter E(for enter). All commands provide some sort of feedback to tell you
if the command was understood and executed properly, in most cases an R. If an illegal command is entered
WK3 will respond with a question mark.
Important Note ! When in command mode, transmitter keying is disabled and replies are sent in sidetone only.
Thus in order to use command mode you must have a sidetone speaker of some sort. If sidetone had been
disabled with the Acommand it will be re-enabled automatically when entering command mode.
Other manuals for WinKeyer3
1
This manual suits for next models
1
Table of contents
Other K1EL Microcontroller manuals
Popular Microcontroller manuals by other brands

GigaDevice Semiconductor
GigaDevice Semiconductor GD32F1 0 Series user manual

Microchip Technology
Microchip Technology SAM Series Troubleshooting Checklist

NEC
NEC MuPD754144 datasheet

Broadcom
Broadcom ThingWorx BroadcomBCM943364WCD1 C-SDK Setup guide

mikroElektronika
mikroElektronika Mikromedia PIC24EP manual

Option Audio
Option Audio GTM60 series user guide