v1.3.0-rp2040 — runtime difficulty, turn indicator, AI castling, FEN fix
·
3 commits
to main
since this release
UX + AI-mode correctness release. Several issues only surface during a full game vs the bot; this release fixes them and makes turns clearer.
Added
- Runtime AI difficulty — after picking AI mode, 4 centre squares act as buttons: c4 Easy (green), d4 Medium (blue), e4 Hard (amber), f4 Expert (red). No recompiling.
- "Whose turn" indicator — the side-to-move's back rank gently breathes (white for you, red for opponent in HvH), mirroring the bot's blue thinking pulse.
- Blue AI selector LED — the Human-vs-AI menu square is now blue (HvH stays white).
Fixed
- AI mode castling — was impossible before (move-gen never offered it); now both player and bot can castle, the rook is moved internally, and a single blue rook-destination hint is shown.
- Invalid FEN after castling —
boardToFEN()hard-codedKQkq, making the FEN illegal once anyone castled (Stockfish replied "Invalid FEN" and the turn bounced back). Castling rights, en-passant and halfmove clock now come from live game state. - Stockfish parser no longer grabs Cloudflare's
Report-To:header. - Mirrored rank notation in AI-mode serial logs.
- Light bleed — lifting a piece clears the turn-indicator row before drawing move dots.
Changed
- Clean serial output — verbose debug gated behind
DEBUG_VERBOSE/WIFI_VERBOSE(off by default); a short "How to play" legend prints at boot.
Install
Double-tap reset on the Nano RP2040 Connect, then drag OpenChess-v1.3.0-rp2040.uf2 onto the RPI-RP2 drive. For AI mode, compile from source with your WiFi in arduino_secrets.h (the .uf2 ships with placeholders).
Full details in CHANGELOG.md.