CW599 TOOL DOCUMENTATION · v1.5

Callsign Trainer Guide

Learn how to practice copying real amateur-radio callsigns, use noise and QRM, and submit a verified challenge score.

Site update · September 7, 2026

The shared page now avoids duplicate analytics initialization and repeated search metadata, and loads account and shop resources only where needed. Training, scoring, audio processing and saved data are unchanged. Analytics still follows your privacy choice and does not collect audio, keying or form contents. The version archive below remains available.

Overview and callsign source

Callsign Trainer develops the ability to copy complete amateur-radio callsigns by ear. Callsigns are randomly selected from a locally hosted copy of the HB9BZA LoTW Users List, so a training round does not wait for the source website.

With thanks to HB9BZA, who compiled and shared this useful dataset with the amateur-radio community.

Practice and Challenge

Practice

  1. Set WPM and Tone Hz at the bottom of the tool panel.
  2. Play a callsign with the Play button next to Submit, type what you copied, and submit the answer.
  3. Optionally enable Background noise, QRM interference, or both below the answer box.
  4. Practice is available without an account and stays out of the public leaderboard.

Challenge

  1. Start a fixed ten-round challenge immediately, without signing in.
  2. Copy each callsign. WPM and interference increase automatically.
  3. Each round allows one replay with a score penalty; skipping counts as wrong.
  4. After round ten the signed score may be submitted. Verified operators use a server-held callsign, members use their CW599 username, and guests choose a nickname, with identity badges.

Guest challenges and leaderboards

Start first, publish only if you choose

Letter Trainer and Callsign Trainer challenges no longer require an account or confirmed email. Start immediately, complete the run, and wait for server verification. The result shows score, correct answers, longest streak, server-measured time and the difference from your best published score. Choose Add to Leaderboard, enter a 2–20-character nickname and optionally remember it on this device. Next time, use Submit as… or Change name. Cancel leaves your verified result unpublished. Signed-in members use their server-held CW599 username; operators with a verified callsign use that callsign. Guest, Member and Verified badges describe identity, not skill.

Ranking and safety

Today starts at midnight UTC; 7 days is a rolling UTC window. Each period shows each identity’s best result, with up to 50 public rows and your own best rank even outside the top 50. Ties use score, correct answers, streak, shorter server-measured duration, earlier completion, then stable record ID. Duplicate nicknames are allowed but do not combine identities. Names are snapshots at publication; changing a nickname does not rename past scores. Guest results are not merged into a later member account.

A two-hour signed challenge is bound to the browser identity or authenticated account. The server recalculates the score from the issued targets and answers, checks plausible elapsed audio/answer time and freezes the result before publication. Each challenge can produce only one published score; network retries return that same result. Basic fixed-window limits are 30 starts/hour and 3 publications/minute or 20/hour per player, with a separate network start limit. This is a casual training leaderboard, not a tamper-proof examination: targets and audio must be available to the browser. Administrators can search nickname or score ID and hide or restore invalid/abusive scores.

Recovery and privacy

If a connection fails, keep the page open and retry verification or publication. The nickname prompt appears only after verification. Expired challenges must be restarted. If the account or browser identity changes, return to the original identity or start again. Callsign answers become available after the full transmission. Blocking local storage uses an in-memory identity for this page; clearing storage or changing devices creates a different guest. Clearing browser storage removes the remembered nickname and browser ID, not previously published scores. Contact support to request score review/removal.

A cryptographically random UUID is stored under cw599.player.id, with creation time and an optional nickname. The server stores a secret-key hash, not the raw browser UUID, in score records. Public leaderboards expose only the display name, identity badge and final summary, never account IDs, browser IDs, private hashes, IP addresses or individual answers. Targets are held privately only until verification or session expiry; answers are processed without persistent storage. Unpublished expired summaries are removed by daily cleanup. Published summaries remain until moderation/removal. No email, fingerprint, geolocation or extra account is required.

Optional first-party analytics follows the existing consent choice and privacy signals. It records tool/version, interface language, identity class, random-browser hash, timestamps, starts, verified completions, successful publications and coarse activity durations—not nicknames, answers, keying, audio, location inputs or full IP addresses. Unique browsers are estimates, not people. Non-competitive tools have usage counts only; CW Room communication identities and access rules are unchanged.

Audio and score mechanics

The target CW, synthesized band noise, carrier interference, and adjacent-station CW are generated locally with WebAudio. QRM is kept weaker than the target and uses a different pitch.

Challenge difficulty is fixed from 5 to 20 WPM across ten rounds. The server binds the short-lived signed session to a random browser identity or authenticated account and recalculates the weighted score before optional publication. Guest scores are supported.

Versions and archives

v1.4 moves the shared Play button next to the answer Submit button, resizes Reset to match the Tone Hz value pill, places the Background noise / QRM interference toggles below the callsign answer box, and adds a space after CW in the Chinese tool name (CW 呼号听抄训练). v1.3 renamed the Chinese tool name across the sidebar, page title, and homepage entry; removed the redundant Mode / Audio / WPM / Sidetone status strip from the page header; and moved the WPM / Tone Hz / Play / Reset control strip to the bottom of the tool panel, directly above the HB9BZA credit line. v1.2 aligns the narrow-screen content gutter with the site header, without changing copying, audio, or score behavior. v1.1 requires a confirmed-email account for formal challenges and labels every leaderboard identity as a verified callsign or CW599 username. v1.0 introduced Practice and Challenge modes, progressive interference, signed scores, and leaderboards; its behavior remains documented here as history.

Leaderboard update · September 13, 2026

v1.5 update: On a fresh page load, Challenge opens the All time leaderboard by default, including when a saved challenge is restored. You can still switch to Today or Last 7 days; your selection stays while using the current page. This changes only the initial view, not scoring, privacy or publication: results are published only when you choose Add to Leaderboard. Previous behavior is retained in Git and private deployment backups; documentation archives remain available.

Navigation update · September 13, 2026

The homepage and shared Morse tool selector now place Callsign Trainer second and CW Abbreviation Finder third. Select either card to open that tool; all other tools keep their positions. This navigation-only update does not change training, audio, scores or privacy. Earlier layouts remain in Git and private deployment backups; existing documentation archives stay available.

Changelog · September 7, 2026

v1.5: Guest challenges without sign-in, optional remembered nickname, server-verified result before publication, single-use idempotent scores, identity badges, top-50 best-per-player boards, own rank, basic limits and participation analytics. The scoring formula is unchanged. Previous versions are documentation archives, not live legacy endpoints; implementation history is retained in Git and private deployment backups.

Site changelog · Spanish support

September 20, 2026: the homepage, all eight Morse Lab tools and their current help pages now support Spanish. State, error, permission and optional leaderboard messages are localized; audio, scoring, identities and saved results are shared and unchanged. Guides, articles, shop, account and legal destinations remain in English and are labeled accordingly. Historical help keeps its original languages. Analytics recognizes Spanish routes and respects the same privacy choices without collecting new fields.

Site changelog · Japanese support

September 22, 2026: all eight Morse Lab tools and their current guides now support Japanese. The existing Japanese homepage and interface copy have been reviewed, including dynamic feedback, errors, accessibility, permissions and voluntary leaderboard publication. Audio, scoring, shared identities and saved results are unchanged. English, Chinese and Spanish remain available. Untranslated destinations are labeled as English. Existing Japanese Letter Trainer archives remain available; other historical guides retain their original languages. No new data fields or permissions are introduced.

Version archive

When a retired release has a runnable snapshot, this list will link both its documentation and the archived tool. Earlier releases without a snapshot are explicitly marked documentation only.

v1.5 2026-09-07 Current
v1.4 2026-08
v1.3 2026-08 Chinese rename and control strip relocation
v1.2 2026-08 Narrow-screen gutter alignment
v1.1 2026-08 Challenge identity update
v1.0 2026-07 Historical behavior documented above