🤖 AI CW Bot Help
Run realistic CW QSOs with the AI bot, hear it in CW, and get instant feedback.
🚀 Quick Start
- Open cwbot.php.
- Select Difficulty and QSO Style (Beginner/Standard/Contest, ragchew or DX).
- Set Speed (WPM) and Farnsworth (Eff WPM); toggle Play bot audio if you want CW playback.
- Optional: toggle Hide transcript to mist-out the text while copying.
- Choose Keyboard or Morserino mode.
- Click Start QSO. The bot will send a CQ/opening over.
- Reply with your call/return info, keep overs short, and end with K.
- Click End & Evaluate for score, rubric, and suggestions.
🎛️ Controls
- Difficulty: Beginner (gentle phrasing), Standard (balanced), Contest (brisk, short overs).
- QSO Style: Standard, ragchew-short, Field Day/club, DX check-in.
- Speed: 10–35 WPM, drives bot prompt and CW playback.
- Farnsworth (Eff WPM): lowers effective speed to increase spacing while keeping character speed.
- Audio toggle: Plays bot overs via jscwlib (600 Hz tone by default).
- Hide transcript: Mists out the transcript so you can copy by ear.
⌨️ Input Modes
- Keyboard: Type what you would send in CW, then click Send.
- Morserino: Connect via WebSerial (or push text from a bridge). Decoded text fills the buffer; the bot replies when you send K/SK (or after a pause).
- Keep overs concise: CALL → RST/NAME/QTH → optional WX/RIG → 73.
🔊 Audio Playback (jscwlib)
- When enabled, bot overs play automatically with your selected WPM and a 600 Hz tone.
- Playback starts after a user interaction (button click) to satisfy browser audio policies.
- If you hear nothing, confirm
js/jscwlib.jsloaded and audio output is allowed for the page.
📈 Evaluation
- Evaluation appears after End & Evaluate and uses the “Small” LLM model.
- Score 0–100 plus rubric (copy accuracy, timing/etiquette, flow/completion) and 2–3 tips.
- Evaluations are cached per session; re-running returns the stored result.
🔌 Morserino Notes
- Click Connect in Morserino mode to open a WebSerial port (Chrome/Edge).
- Decoded text is appended to the buffer; the bot replies after you send K/SK (or after a pause).
- No WebSerial? Feed decoded text via
CWBotMorserinoBridge.pushText("...")from your Node-RED/WebSocket bridge. - If you disconnect, reconnect and continue—sessions are tracked by
session_id.
🛠️ Troubleshooting
- Bot silent: Check API key/models in Site Admin → AI CW Bot Configuration.
- No audio: Ensure “Play bot audio” is checked and the browser allowed sound after a click.
- Morserino not connecting: Use Chrome/Edge, confirm USB permissions, or use the bridge pushText helper.
- Stuck session: Click Reset and start a new QSO.