Open source electronic chess board!!!!!!
To preface this, THERE ARE SOOOOOOOO many other projects out there trying to do something similar, but please look at the videos and pictures, look at the level of detail put into a tailor made experience for chess players that plays exactly as a normal over the board game would, and if you like what you see, read the rest, as I truly believe there is something special here that could be completely open source and a great tool for many chess lovers out there
Links to videos/pictures:
https://photos.app.goo.gl/HqvFo6U7UzX6mj138
Links to github:
https://github.com/virtualolsonNo1/ChessBoard
https://github.com/virtualolsonNo1/ChessDesktopApp
Can also be seen on my x account, carlolson_dev: https://x.com/carlolson_dev
A more in depth description of already implemented functionality is below, but as of right now, this functionality exists:
- you can play a game with or without the built in chess clock (i.e. buttons for each player, a reset button, and a 7 segment LCD display)
- This means if you use a time control mode, you must hit a button to signify your turn is over and start the opponent's clock, or if you don't, it'll automatically play a valid move if played after 1 second of verifying the piece is on its final square
- Chess board will light up potential moves for pieces (animated outwards from their starting square).
- This includes either moves your piece can make or if your opponent's piece is picked up first, it'll light up what pieces can take it.
- Furthermore, error handling makes it so it will only allow valid moves to be played, and if anything else is tried to be played, it'll make you put the moved pieces on their previous squares.
- Similarly, if you knock over everything, it'll show you where to put back said pieces.
- Finally, when a game is over, it will pop up a chess.com analysis board window where the game can be analyzed afterwards.
- Games can be played as either white or black on either side, depending on which button is hit first to signify the start of the game (i.e. the side whose button is initially hit is white, the other is black)
- besides the button hit to start the game and signal which side is white, when playing in no clock mode, that and the reset game button are the only buttons that need hit, as otherwise moves will be played after the previously mentioned 1 second delay after a valid move is on the board
Things I want to add with this new revision (pictured above):
- Robot arm to move the pieces!!!!!
- This is why the DC jack, 12V header, RS485 UART header, PWM and 5V header, etc., are all on this new PCB, as all of this is needed for this 3 degree of freedom arm my friend and I have started building
- This is also the reason for the two extra columns on each side of the board, as the board will need to keep track of where taken pieces are placed so the robot arm will be able to re-set up the board after the game is over all by itself!!!
- RGB LEDs
- This is self explanatory lol, RGB LEDs > LEDs from a coolness perspective
- Online games!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- With the addition of the robot arm, being able to play others in online games, as well as other chess boards like this in online games, becomes an incredible reality!!!!!!!!!!!!!!!
Finally, I just want to say all of this will be open source.
- My code is online, my hardware (which I'm far more new to) is in here and will be added to the github shortly, both for my current PCB and this new, much larger revision, etc.
- The CAD files for the robot arm will also all be online, as I want this to be something anyone can order the parts for and assemble at home on their own
- I firmly do not believe chess should be a sport driven by money, so an analysis tool like this would be awesome to get into the hands of many for a fraction of the cost of what's currently on the market.
- I would also LOVE help in trying to do that, as right now this has been a solo effort and while I love doing this, I'm most certainly not the most skilled at it
Support From PCBWay on this journey would be truly incredible in being able to prototype cheaply, quickly, and effectively, as this has been something I've been (trying) to fund and work on solo for over a year now, which has been difficult, and any help I could get in this journey I've been going on alone would be monumental in moving it along.
LONGER DESCRIPTION:
The purpose of this project was initially a rather simple one: my friends and I play A TON of chess over the board, and wanted to have a way to evaluate and learn from games afterwards without writing down our moves as we play.
In order to do so, a board to store the chess moves and a way of viewing this data visually later (as well as a chess engine's evaluation of each position) was necessary
USE CASE
Current functionality:
- once plugged in, chess clock will turn on, displaying default time control of 1:00 for each player
- if either of two outside push buttons are pressed, it will start the opponents timer, signifying which side is white and that the first player must make their move then hit their button
- if the middle button is pressed before the game starts it changes the time control. If the game has already started, it will reset the game so the players can start another one whenever they want
- during this time, the chess clock display will properly display the time control chosen or each player's time if the game has already started
- before the game has started by a player starting white's clock, the piece starting squares where pieces aren't currently on will be lit up as to signify they're missing a piece
- if buttons are hit to start opponent's clock (and signify game is starting), but pieces aren't on their proper starting squares, game will not start and it will stay in this pre-game state where the squares requiring pieces are lit up
Once game has started:
- first piece pickup:
- once a game has started, if a player's piece is picked up, all it's possible moves will light up, animating outward from the piece's current spot
- if a first piece that can be taken is picked up first, all pieces for the active player that can take it will have their squares light up
- one thing to note is that for castling, the square next to and two from the king will be lit up. If the king is moved to the square 2 away from it, in no clock mode a move will not be played till the rook is moved to its (lit up) final square, and in clock mode it will force you to put the king back and replay the move until you move both the king and rook to their respective casting squares properly
- if the rook is moved to its "castling" square before picking up the king, in no clock mode it will play it as a rook move, so be careful in this scenario. In clock mode this isn't an issue, as as long as the clock button isn't hit till the full castling has been played (both king and rook moved), there won't be a problem
- second piece pickup:
- if a valid second pieced is picked up, only that square and the first (either taking or taken) piece's squares will be lit up
- exceptions to this are en passant and castling. For en passant, only the starting and ending square for the piece that's doing the taking will be lit up. For castling, only the ending squares for the king and rook will be lit up
- if any piece is picked up that isn't allowed, pieces are accidentally knocked over, etc., board will enter an error state where the squares that the pieces need to be put back on to resume the normal game will blink on and off every half second until they're put back, after which the game will resume as before
- similarly, if pieces are randomly added back to the board and a move is attempted to be played, the board will force them to be taken back off to resume the current move properly once again
- In no clock mode, the side where "nocl" is displayed on the 7-segment LCD is whose move it is, and will change whenever a valid move is played for 1 second, after which it becomes the other player's turn and nocl is displayed for that other person
- the game, if checkmate, stalemate, insufficient material occurrs, or once reset button is hit, chess.com analysis board will pop up on default browser showing the full game and the board will go back into it's pre-game state of lighting up the squares that need pieces
- will reset back to the time control of the previous game, allowing them to easily play another one without having to navigate back to preferred time control
- Comments(1)
- Likes(0)