Skip to content

v1.1.1-rp2040 — bot-thinking pulse + SSL stability

Pre-release
Pre-release

Choose a tag to compare

@semichcsc-byte semichcsc-byte released this 11 May 17:25
· 8 commits to main since this release

Patch release

Adds the bot-thinking breathing pulse on rank 8 (the bot's back rank) without breaking the WiFiSSL TLS handshake.

Why this matters

The earlier attempt at this animation (in v1.1) called clearAllLEDs() + showLEDs() ~20 times per second from inside the SSL read loop. Each NeoPixel show() disables interrupts for ~2.5 ms (bit-banging the WS2812 protocol), and the cumulative effect during the SSL handshake / read killed every Stockfish API call: Failed to connect to Stockfish API on EVERY move.

Fix: slow sine-wave breathing at ~5 fps (8 brightness buckets), with a redraw skip when the bucket hasn't changed. NeoPixel writes during the request drop by ~95 %.

Verified end-to-end

Played a real game on the physical board: e2-e4 → breathing pulse plays for ~2 s → Stockfish responds with e7e5 → bot move displayed correctly. Multiple subsequent moves including a capture, a castling attempt, and an invalid-move recovery all worked.

Known issue (deferred to v1.2)

The serial debug log still prints chess notation that's mirrored across the rank axis (a move from e2 to e4 is logged as from e7 to e5). Internally the firmware tracks the position correctly and Stockfish receives the right FEN — only the human-readable serial print has a row-axis mirror, the same kind of bug that was fixed for columns in v1.1. Will be fixed in v1.2 by aligning chess_bot.cpp and chess_moves.cpp print helpers with the standard FEN row convention.

Verified

Sketch uses 148200 bytes (0%) of program storage space.
Global variables use 44640 bytes (16%) of dynamic memory.
=== Self-tests complete: 10/10 passed ===

Tested on Arduino Nano RP2040 Connect, WiFiNINA firmware 3.0.1, Concept-Bytes PCB v1.

How to flash

Drag-and-drop OpenChess-v1.1.1-rp2040.uf2 onto the RPI-RP2 USB drive after double-tapping the white reset button. See the Quick Start for details.

Source

Branch fix/v1.1.1-thinking-pulse