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.
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.
Press Shift+W or click WKUSB in the Settings dropdown. The WinKeyer modal opens.
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.
Click Choose COM Port. Your browser's serial port picker appears — select the port for your WinKeyer device.
Click Connect. The app opens the serial port at 1200 baud (8N1, no flow control) and automatically enters host mode:
0x00, 0x02)The status badge in the header updates through: Disconnected → Connected → Host Mode Active.
To disconnect, click Disconnect or close the modal.
A range slider controls your sending speed in WPM. The current speed is displayed next to the slider.
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.
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.
Six programmable message slots are available, accessible via buttons in the modal and a compact toolbar that appears when connected.
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:
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.
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.
The controls section (visible after connecting) includes:
| 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.
| 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 |
| Checkbox | Effect |
|---|---|
| KeyOut 1 | Enable primary keying output |
| KeyOut 2 | Enable secondary keying output |
| PTT | Enable push-to-talk output line |
A tone slider adjusts the sidetone frequency (displayed in Hz).
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.
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.
| 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. |