v1.0.0-rp2040 — First tagged release for Concept-Bytes Kickstarter backers
Pre-release
Pre-release
·
14 commits
to main
since this release
What this release is
A drop-in fix-fork firmware for the Concept-Bytes OpenChess Kickstarter board with the Arduino Nano RP2040 Connect. Combines three upstream PRs that the original repo (last commit Aug/2025, 0 PRs ever merged) hasn't reviewed:
- PR #9 — WiFi AP→STA fix: AI mode no longer hangs after
Connecting to WiFi... - PR #10 — 5 quality fixes: medium depth bug, HTTP body parser, bot move validation, MODE_GAME_3 loop, MAX_MOVES_PER_PIECE consistency
- PR #11 — Full chess rules + UX polish + 10 self-tests
What works now
- ♟️ Chess rules: check, checkmate, stalemate, castling (kingside + queenside), en passant, 50-move rule, insufficient material, promotion choice (Q/R/B/N via 4 LEDs)
- 🤖 AI mode via Stockfish.online API (was broken in upstream)
- 🛡️ Bot move validation via local engine (rejects malformed API responses)
- ✨ Sensor debounce (no more piece-flicker on slide)
- 🔋 AP shutdown when not needed (~100mA saved)
- ✅ 10 self-tests at every boot — Fool's Mate, pinned pieces, both castlings, en passant, K-vs-K, etc. Red flash on failure.
- 🆔 Boot banner prints firmware version and fork name to serial
How to flash (no Arduino IDE required)
The .uf2 binary works as drag-and-drop on the Arduino Nano RP2040 Connect:
- Double-tap the white reset button on the board.
- The board mounts as a USB drive named
RPI-RP2. - Drag
OpenChess-v1.0.0-rp2040.uf2onto that drive. - Board reboots automatically into the new firmware.
For arduino-cli users:
arduino-cli upload --fqbn arduino:mbed_nano:nanorp2040connect \
-p /dev/cu.usbmodem201301 \
--input-file OpenChess-v1.0.0-rp2040.binWiFi credentials
Before the AI mode works you need to put your home WiFi credentials in arduino_secrets.h and recompile. The pre-built binaries in this release will not connect to your WiFi out of the box. (We can't ship credentials baked in for obvious reasons.)
If you want to use the binaries as-is, only Human-vs-Human and Sensor Test modes work immediately.
Verified on
- Arduino Nano RP2040 Connect
- WiFiNINA firmware 3.0.1
- Concept-Bytes PCB v1
- arduino-cli 1.4.1, arduino:mbed_nano core 4.5.0
Build stats
- Sketch: 150799 bytes (0% of 16 MB flash)
- RAM: 44640 bytes (16%)
- Self-tests: 10/10 passing
Source code
- This release: branch
feat/rp2040-rules-and-ux - Build documentation: semichcsc-byte/openchess