-
-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Welcome to the MicroChess Wiki! MicroChess is a compact chess engine designed for Arduino-based embedded systems, operating within strict constraints of less than 2K RAM and 32K program flash. It implements full chess rules, including special moves like castling, en passant, and pawn promotion, and uses advanced algorithms such as minimax with alpha-beta pruning for efficient move evaluation. This wiki provides comprehensive documentation to help you understand, set up, and use MicroChess, whether you're an Arduino enthusiast, chess player, or developer interested in game engine design.
MicroChess is an educational project showcasing how to build a turn-based game engine optimized for resource-constrained environments. Key features include:
- Full Chess Implementation: Supports all standard chess rules and moves.
- Memory Efficiency: Uses bit fields and optimized data structures to fit within Arduino’s limitations.
- Visual Output: Displays the game board on an 8x8 LED strip using the FastLED library.
- Serial Interaction: Allows move input and game monitoring via the Arduino Serial Monitor.
- AI Algorithm: Employs minimax with alpha-beta pruning for strategic gameplay.
The project is ideal for learning about chess programming, embedded systems, or algorithm optimization.
- About: Learn about the project’s goals and technical specifications.
- Installation: Step-by-step guide to set up MicroChess on your Arduino.
- Usage: Instructions for playing or watching MicroChess.
- Code Structure: Overview of the source files and their roles.
-
Board Representation: Details on the
board_t
class and memory optimization. - Move Generation: How moves are generated and validated.
- Game Logic: Managing turns, check, and endgame conditions.
- Evaluation: How the engine evaluates board positions.
- Search Algorithm: Minimax and alpha-beta pruning explained.
- Visuals: Understanding the LED strip and serial console outputs.
- Options: Configuring game settings like search depth.
- Statistics: Tracking performance metrics.
- Testing: Unit tests for code reliability.
- Contributing: How to contribute to the project.
- License: Licensing information (MIT License).
- FAQ: Answers to common questions.
- Changelog: Version history and updates.
MicroChess outputs the game state in two ways:
- LED Strip: An 8x8 grid displays the board, with pieces represented by colors. See MicroChessSmall.gif for a demo.
- Serial Console: Move history and board state are printed in the Arduino Serial Monitor. See MicroChessConsole2.gif.
To dive into MicroChess:
- Follow the Installation guide to set up the project.
- Check the Usage page to start playing or observing games.
- Explore the Code Structure and technical pages for a deeper understanding.
For questions or contributions, visit the GitHub repository or see Contributing.
MicroChess | GitHub Repository | License: MIT | Contributing
© 2025 Trent M. Wyatt. All rights reserved.