WinKeyer USB

QAS-log supports the WinKeyer USB and WKmini CW keyer via the Web Serial API. This lets you send CW directly from the logger without separate keyer software.


Requirements

  • A WinKeyer USB or WKmini device connected via USB
  • A Chromium-based browser — Chrome 89+, Edge 89+, or Opera 75+ (desktop only)
  • An HTTPS connection (or localhost for development)

Web Serial is not supported in Firefox, Safari, or any mobile browser. If your browser doesn't support it, an alert will appear in the WinKeyer modal explaining this.


Connecting

Step 1: Open the Panel

Press Shift+W or click WKUSB in the Settings dropdown. The WinKeyer modal opens.

Step 2: Choose Your Device Type

If you're using a WKmini, check the WKmini checkbox. This switches the app to use browser-stored message macros instead of the device's firmware message banks.

Step 3: Select a COM Port

Click Choose COM Port. Your browser's serial port picker appears — select the port for your WinKeyer device.

Step 4: Connect

Click Connect. The app opens the serial port at 1200 baud (8N1, no flow control) and automatically enters host mode:

  1. Port opens
  2. Host Open command sent (0x00, 0x02)
  3. Device responds with its firmware revision
  4. Default register configuration is loaded
  5. Controls section becomes active

The status badge in the header updates through: Disconnected → Connected → Host Mode Active.

To disconnect, click Disconnect or close the modal.


CW Speed

Speed Slider

A range slider controls your sending speed in WPM. The current speed is displayed next to the slider.

Min/Max Limits

Click the min or max WPM badge (shown at either end of the slider) to edit the speed range. Enter a new value in the prompt dialog. Valid range: 5–99 WPM.

The slider is constrained to your min/max range. Default range: 10–35 WPM, default speed: 20 WPM.

Speed Pot

If your WinKeyer has a physical speed knob, the device reports knob position changes. However, the UI slider reflects your software-set speed only — it does not track the physical knob.


Message Slots

Six programmable message slots are available, accessible via buttons in the modal and a compact toolbar that appears when connected.

WKmini Mode

In WKmini mode, messages are stored in the browser and sent as text over serial:

Slot Default Message
1 CQ CQ DE W1AW
2 W1AW
3 TU 73
4 599
5 QRZ?
6 TEST

Edit messages in the text fields below the buttons. Changes save automatically. You can also right-click a message button to configure:

  • Repeat count — how many times to send (0 = once, 1–10, or infinite)
  • Interval — delay in seconds between repeats (0–10)

WKUSB-AF Mode

In standard WKUSB-AF mode, messages are stored on the device itself across 2 users and 2 banks (4 message sets total). Use the User and Bank radio buttons to select a set. Message editing happens on the device, not in the app.

Sending

  • Click a message button (1–6) in the modal or toolbar
  • Or press F1–F6 on your keyboard (when connected and in host mode)

The toolbar buttons are disabled while the keyer is busy sending. Hover over a button to see its message text (WKmini) or bank number (WKUSB-AF).

Press Escape to abort the current transmission.


Keying Controls

The controls section (visible after connecting) includes:

Key Mode

Mode Description
Iambic A Standard iambic keying (default)
Iambic B Iambic with dot/dash memory
Ultimatic Last paddle pressed takes priority
Bug Semi-automatic (manual dashes, auto dots)

When Ultimatic is selected, an additional Priority dropdown appears: Normal, Dit priority, or Dah priority.

Options

Checkbox Effect
Paddle Swap Swap dot and dash paddles
Autospace Insert correct spacing between characters automatically
Contest Spacing Reduce inter-character spacing for contest operating
Sidetone Enable device sidetone output

Output

Checkbox Effect
KeyOut 1 Enable primary keying output
KeyOut 2 Enable secondary keying output
PTT Enable push-to-talk output line

Sidetone

A tone slider adjusts the sidetone frequency (displayed in Hz).


Settings Storage

WinKeyer settings are stored in the app-settings localStorage object:

Key Type Description
wkusb-wkmini-mode boolean WKmini mode enabled
wkusb-wkmini-messages string[6] Custom message texts
wkusb-wkmini-repeat number[6] Repeat count per message (0=off, 1–10, -1=infinite)
wkusb-wkmini-interval number[6] Delay between repeats in seconds (0–10)

Only WKmini messages, repeat counts, and intervals persist across sessions. Speed, key mode, and register settings are sent to the device on connect and reset to defaults on reconnect.


Response Log

A text area at the bottom of the modal shows a timestamped log of all serial communication. In debug mode, binary representations and byte interpretations are included. Useful for troubleshooting device communication issues.


Troubleshooting

Problem Solution
No ports appear in the picker Check that the device is plugged in and recognized by your OS. Try a different USB cable or port.
"Web Serial API not supported" Switch to Chrome, Edge, or Opera on desktop. Mobile browsers and Firefox/Safari are not supported.
Connection drops mid-session Check USB cable. Click Choose COM Port again to re-select the device, then Connect.
Keyer is busy / buttons disabled Wait for the current transmission to finish, or press Escape to abort.
Speed doesn't match physical knob The UI slider reflects software-set speed only. Physical knob changes are reported but not synced to the slider.

Related