Repository navigation
Operating CW
Everything on this page works in both builds and runs in the browser. Switch the rig to CW or CW-R and the CW bar appears under the scope.
Text typed in the CW bar's input, or sent from a macro, is keyed by the radio's own keyer (CI-V has a "send this text" command but no key-down, which is why the page cannot key a paddle element by element). wfweb paces the text to the radio so the keyer never runs dry and never overflows; a ^XX prosign is sent as one character. Characters the keyer has no code for are dropped before they reach the radio.
- Speed: the arrows or the field in the bar set the radio's keyer speed, within the range the radio allows.
-
Macros: ten of them, with
[CALL]and[QSO]filled in from the CALL and QSO fields when sent. Edit with the bar's EDIT / SET. On the Server build the macros live in the settings file and every browser sees the same set; Standalone keeps them in the browser. - STOP cuts the radio and the tone and drops what is pending. Escape does the same from the keyboard; Backspace in CHR mode (characters go out as you type) cuts the one being sent. Characters already handed to the radio's keyer cannot be taken back.
- LOG opens the QSO entry pre-filled from the CALL and QSO fields; see Logbook.
The bar's BK-IN button is the radio's break-in setting: OFF (the keyer sounds its sidetone, nothing is transmitted: practice mode), BKIN (semi), F-BKIN (full), labelled as on the radio's screen.
There are two possible sidetones, and you want exactly one.
- TONE (in the bar, on by default) is made in the browser at the radio's CW pitch and at the VOL level, in step with the text as it is keyed and with a paddle connected to wfweb. Over LAN it is the only sidetone there is. Its delay is that of the audio output: through Bluetooth headphones it is too late to send a paddle by ear, and the button turns amber to say so.
- The radio's own sidetone reaches the browser only over USB, and only with MENU › SET › Connectors › ACC/USB AF Beep/Speech… Output = ON (ships OFF; the radio's beeps come along). It is the one that follows a paddle plugged into the radio's key jack, and gives true full break-in with the received signal between the elements, delayed by the RX buffer only. For that setup, switch TONE off.
Both on means every element twice.
The decoder starts by itself when the rig enters CW with audio running, and the decoder button in the CW bar switches it off and on. It runs in the browser on the RX audio around the CW pitch. The engine is the DeepCW neural model on ONNX Runtime Web, fetched on the first press (about 27 MB, cached by the browser after that). It decodes a sliding window of the last 12 seconds every tick: the newest text is dim and may correct itself; a word older than about three seconds is committed and never changes. A browser without WebAssembly SIMD, or one too slow to keep up (a Pi-class tablet), falls back to the ggmorse engine, and a GGMORSE tag on the text line says so. The decoded text and what you sent are also what the video recording shows as a conversation.
The filter band on the decoder's tone waterfall is where it listens; keep the signal in it. The decoder does not know prosigns.
A paddle is text entry, not keying: the iambic keyer in the browser (mode A or B, paddles swappable, or a straight key with adaptive speed) sounds through TONE at once, decodes your elements into characters, and hands each character to the radio's keyer, which sends it one character behind your fist. A slip goes out as its nearest character rather than a gap. The radio's own late sidetone is muted while you send. Paddle input is ignored outside CW / CW-R; the first contact opens the CW bar.
PADDLE, at the end of the CALL/QSO row, opens the paddle settings with a lamp per contact to check the wiring. A paddle reaches wfweb through:
- A USB keyboard adapter (VBand, Vail adapter in keyboard mode): the contacts are the left and right Ctrl keys. Works in every browser, phones included. Switch it on with USB KEYS; while a contact is down in CW, other keys are held back so no Ctrl shortcut fires mid-character.
- A MIDI controller's paddle jack (below).
Chrome, Edge and other Chromium browsers; Firefox asks for a site permission; no Safari. FUNC › MIDI shows while a controller is plugged in: presets for the CTR2-MIDI (normal and Extended BTN mode) or MIDI learn for any controller. The knob tunes (fine and coarse); knobs, sliders and buttons can drive AF and RF gain, squelch, TX power, CW speed, band, mode, span, P.AMP/ATT, NB, NR, notch, tuner, BK-IN, CW stop and PTT. Until the browser has been granted MIDI once, the window is reached from PADDLE › MIDI…. A controller unplugged mid-transmission unkeys the radio.
The Icom keyer does not key exactly 1200 / WPM ms per dot: measured on an IC-7300, each speed has its own dot length, up to 1.3 % off the textbook value. wfweb's pacing and the browser sidetone follow the radio's table on Icom rigs, so the tone and the transcript stay in step with what goes out.
Getting started
- Choosing a Build
- Standalone
- Installing the Server
- Docker
- Rig Compatibility
- Icom Menu Settings
- Troubleshooting and FAQ
Operating
Reference