Close
0%
0%

Mat@ir - A Robotic Spherical Chessboard

A spherical chessboard where a robotic arm plays moves from an online game.

Public Chat
Similar projects worth following
A spherical chessboard where a robotic arm plays moves from an online game.

The goal of this project is to create a spherical chessboard where moves are played by a small robotic arm moving along a circular track.

The robotic arm will execute the moves made by players in an online chess game.

Our broader vision is to build multiple chessboards across different campuses of our school, allowing players to compete remotely. Each robotic arm will replicate the moves made by players in real-time on their respective boards.

  • 1 × ESP32-DevKitC-32E
  • 128 × neodymium magnet 12mm x 3mm round neodymium magnets with a screw hole
  • 3 × NEMA17 Stepper Motor Quimat Nema 17 Stepper Motor 17HD48002H-22B
  • 1 × Nextion 3.5 inch display DISCOVERY SERIES NX4832F035
  • 2 × DRV8825 stepper motor driver

View all 19 components

  • 3D Modeling and Mechanical Design PART V : Cart and robotic gripper

    Nasser03/25/2025 at 15:40 0 comments

    The Cart Sub-Assembly

    An essential sub-assembly of the entire system is the cart.
    It needs to house four actuators, remain compact and precise, while smoothly moving along the curved rail and constantly counteracting gravity.

    Components of the Cart:

    • 1 stepper motor — to drive the cart along the rail

    • 1 linear actuator — to extend and retract the gripper

    • 1 servo motor — to rotate the linear actuator

    • 1 servo motor — to open and close the gripper

    We use those cheap ender 3 wheels with 8mm column for our cart, the rest is 3d printed.

    For the design of the cart body, we drew inspiration from these two videos:


    First prototype

    This was our initial iteration: 

    • This version did not include the gripper or the rotation servo for the linear actuator.
    • Its main goal was to test the wheel spacing and check if the cart could move correctly along the rail.

    To validate this, we also 3D printed a small section of the rail:

    The tests confirmed that the cart could indeed move properly along the track


    Second Prototype

    Building on our first test, we developed a second version: 

    • At this stage, the gripper was still not integrated.
    • We focused on figuring out a reliable way to rotate the linear actuator.

    • Our first attempt was to use a gear system, where a servo drives a gear that in turn rotates a second gear connected to the actuator.

    However, we were not fully satisfied with this solution. It felt too complex and introduced too much potential for failure.


    Third Prototype

    We then developed a third version of the cart:

    • In this version, we opted for a four-wheeled design to improve stability when moving along the rail.
    • Mechanically, this iteration was similar to the second one, but we aimed to simplify the actuator rotation.

    Still, the gear-based rotation system felt overly complicated.

    Final Version

    In our final design:

    • We simplified the mechanism by having the servo motor drive the actuator directly, eliminating the need for intermediary gears.

    We were finally satisfied with this design and decided to move forward with it.



    Gripper design

    Designing the gripper was also a crucial step.
    A poorly performing gripper would make the entire machine unreliable, as it must securely grab and release the chess pieces.

    We based our initial concept on this very compact design from a reference video:

    Here’s our own CAD version of the gripper:

    • The gripper is shaped to fit the body of the chess pieces.
    • It features a razor-like shape on each side to improve grip.

    • We plan to 3D print the gripper in TPU to maximize adherence and flexibility.

    • The gripper assembly includes a mounting interface at the bottom, designed to connect directly to the linear actuator.



    Final Cart Assembly

    Here is the complete cart assembly : 

    And here’s the cart sub-assembly integrated and moving within the final full assembly :

  • 3D Modeling and Mechanical Design PART IV : The curved rail

    Nasser03/25/2025 at 15:39 0 comments

    he next major component we tackled was the curved rail.

    Due to its large size and the need for durability, we chose to laser-cut it from plywood instead of 3D printing it.


    Dimensions:

    • Outer Diameter (OD): 560 mm

    • Inner Diameter (ID): 450 mm

    The rail is composed of four layers, all secured together with M5 screws:

    1. Two outer planks — 5 mm thickness each

    2. Inner plank — 10 mm thick, this is the guide surface where the cart wheels will slide

    3. External gear layer — 5 mm thick, this gear will be driven by the cart to move along the curve

      • The design of this driving system is inspired by this mechanism: 

    Rail Support: Feet and Top Part

    To hold the rail securely:

    • We designed robust 3D-printed rail feet and top supports.
    • These parts are fastened with multiple M8 bolts to ensure structural integrity.
    • Since these components support the entire assembly, their design was particularly focused on strength and rigidity.

    Here is the final assembly showing the curved rail, feet and top parts, stepper motor, the spherical chessboard, and the chess pieces: 

  • 3D Modeling and Mechanical Design PART III : Making the chess pieces

    Nasser03/17/2025 at 00:33 0 comments

    TNow onto the second most important element of a chess game—the chess pieces.

    We needed to model each piece: King, Queen, Rook, Knight, Bishop, and Pawn. We decided on a height of approximately 60mm ± 10mm, with each piece featuring a circular base of around 20mm in diameter, each piece also need to have a similar shape and profile to ensure the to be designed gripper will be able to reliably grasp and manipulate them.

    Additionally, each piece includes a hole of 12mm at the bottom to accommodate a magnet.


    Here are some of our design for the chess piece:

    KINGQUEENKNIGHT
    PAWNBISHOPROOK

    as you can see, we chose a steampunk style for the chess pieces, as we felt it complemented the final aesthetic we envisioned for the chessboard. This design choice also aligns with our original inspiration, the NKD Orb Chess, which features a similarly steampunk-inspired look.


    Now, let's talk about how the chess pieces will stay attached to the board. As hinted in previous logs, the pieces will be held in place using magnets. Magnets allow the pieces to self-center when placed on the board.

    During planning, we realized that the project would require a large number of magnets128 in total:

    • 32 for the chess pieces
    • 64 for the chessboard squares
    • 32 for the capture zone

    To meet our needs, we chose 12mm x 3mm round neodymium magnets with a screw hole in the center, allowing for secure attachment to the pieces and board.

    The hole in the middle of the magnet allows us to securely attach it to the chess piece using a screw, avoiding the need for glue.

    After choosing the magnets, we also needed to determine the optimal thickness of plastic between the sphere’s embedded magnets and the pieces' magnets when placed on the board. Since neodymium magnets are very strong, allowing them to directly touch would make separating the pieces extremely difficult.

    Our goal was to find a thickness where the pieces remain firmly attached even during sudden movements—or when the board is tilted or flipped upside down—while still allowing smooth piece removal.

    To achieve this, we built a small test bench:

    The test bench featured a gradually increasing plastic thickness, ranging from 1mm to 5mm

    To measure the force required to separate each piece, we added a ring to a chess piece and used a luggage scale to pull it off the board. This allowed us to quantify how much force was needed at each thickness level.

    In addition to measuring force, we also tested whether the pieces remained securely attached under two key conditions:

    1. Abrupt movements—simulating sudden shifts in position.
    2. Upside-down stability—ensuring the magnets held even when the board was flipped.

    After conducting our tests, we obtained the following results:

    (The infamous inverse square law is back at it again, see our log on the small hydraulic arm •_•  )

    Based on the data, we decided that a 3mm plastic thickness between the piece magnet and the chessboard square provided the best balance. It ensured that:

    • The pieces remained securely attached even during sudden movements or when the board was tilted upside down.
    • The force required to remove a piece was comfortable and consistent.

    With this decision, we updated the sphere design accordingly to incorporate the 3mm thickness.

  • 3D Modeling and Mechanical Design PART II : Making the chess board

    Nasser03/08/2025 at 16:56 0 comments

    After finalizing the design, we began by working on modeling the most crucial component: the chessboard, as it serves as the foundation for dimensioning other parts, such as the rail, gripper, and pieces.

    According to our design constraints, the spherical chessboard has a diameter of 20 cm.

    For inspiration, as mentioned in our first log, we looked at Orb Chess by NKD Puzzle :


    We first began modeling the spherical chessboard :

    For ease of manufacturing, since the chessboard will be 3D printed, we designed it to be assembled from two identical half-domes. Since the sphere will be mounted on a threaded rod, it can be securely fastened with nuts on both sides to form the sphere when put together.


    Additionally, each square of the chessboard will be inserted into designated holes on the dome, completing the playable surface.

    The squares features holes on the inside for inserting magnets, allowing the pieces to stay securely attached while still being easily movable.



    Here is the fully assembled spherical chessboard with all components in place, the two half-domes, and inserted chess squares.

  • 3D Modeling and Mechanical Design PART I : First design

    Nasser03/08/2025 at 16:56 0 comments

    After successfully developing the online game and server, and establishing data exchange between the game and the ESP32, which serves as the brain of the chessboard, the next step is to design and build the physical chessboard.

    Following several brainstorming sessions, we finalized this design for the chessboard :

    How It Works:

    Each square on the spherical chessboard is accessible through two movements: rotating the sphere to navigate through the files and moving along the rail to traverse the ranks (if the sphere is visualized as a flat plane). 

    Movement Sequence:

    1. Positioning: The cart moves along the rail while the sphere rotates to align the linear actuator with the piece's current position.
    2. Grabbing the Piece: The linear actuator extends, and the gripper secures the chess piece.
    3. Moving to the Target Square: The cart moves along the rail, and the sphere rotates to align the linear actuator with the desired position.
    4. Releasing the Piece: The linear actuator extends, and the gripper releases the piece onto the target square.
    5. Capturing a Piece: The cart moves to a fixed position above the capture zone (a rotating gear at the bottom). The linear actuator rotates, extends, and places the piece in the capture zone. The zone then rotates to make space for the next captured piece.

    Key Elements of the Design:

    • Sphere : 20 cm diameter, tilted at approximately 25°, will be 3d printed.
    • Chess Piece : 60 mm in height, held in place with magnets on both the sphere and the capture zone, will also be 3d printed.
    • Rail : The rail will be made of mutiple layer of laser cutted wood.
    • Motors and Actuators:
      • 3 stepper motors (sphere rotation, capture zone rotation, cart movement on the rail).
      • 1 linear actuator.
      • 2 servos (one for linear actuator rotation, one for the gripper).
    • User Interface: A small screen for displaying information and configuring the chessboard, similar to modern 3D printers.

  • Building the Backbone: Our Server & Network Infrastructure

    Nasser02/26/2025 at 02:23 0 comments

    Since the goal of the project is to allow people from different parts of the country to play against each other on their devices and on separate spherical chessboards, we needed to design a server-client infrastructure where the server relays requests between clients—the clients being both the game and the ESP32 microcontroller.

    After analyzing how all the components (game, server, ESP32) should interact, we created a diagram to illustrate how communication will take place.

    Our system is built around a server-client architecture using WebSockets for real-time communication. It consists of three main components:

    1. Game Clients (Web-based Chess Game) – Players interact with the game through their web browsers, sending move requests and receiving game updates from the server. Spectators can also connect to watch ongoing games.

    2. Server (Python WebSocket Backend) – The central hub that manages all game sessions, player connections, and communication between devices. It validates moves, relays commands, and synchronizes game states.

    3. ESP32 (Robotic Chessboard Controller) – The ESP32 microcontroller controls the robotic arm and executes chess moves on the physical spherical chessboard based on commands from the server.

    How It Works

    • Player Connection: Players authenticate using an ORB code, which links them to a specific chessboard. If an ORB is already in a game, they continue; otherwise, a new game is created.

    • Spectator Mode: Users can join as spectators by selecting an active game from the server's game list. The server continuously sends game state updates.

    • Move Execution:

      1. A player makes a move in the web game.
      2. The game client sends the move request to the server.
      3. The server validates the move and checks if the robotic chessboard is ready.
      4. If valid, the move is sent to both the opponent and the ESP32, which executes it on the physical board.
    • Game Synchronization: Any change in the game state is immediately broadcasted to all relevant clients.

    • Error Handling & Timeout: If an ORB disconnects or a player loses connection, the server resets the ORB and updates the game state accordingly.

    • Game Termination: Players can close a game, which triggers a reset command for the ORB and disconnects all clients.

    After implementing this Infrastructure (4000+ lines of code), we had a fully functional online game, with data being sent between the game, server, and ESP32 in real time.

    Code of the game can be found here : Github link

    Code of the server can be found here : Github link

    Code of the esp32 can be found here : Github link

  • Developing the Chess game

    Nasser02/26/2025 at 02:22 0 comments

    For our project, since we are playing on a spherical chessboard, the rules of chess are not the same as in classical chess. A variant of chess will be played. Given the spherical nature of the board, we had the choice between two variants: 
    Spherical chess (link), which fully utilizes the unique properties of the chessboard.

    Cylinder chess (link), which is typically played on a cylindrical board but can also be adapted to a spherical one.

    After researching both variants, we decided to settle on cylinder chess for two main reasons. First, it is much less confusing and easier for players to understand. Second, since we will be coding our chess game from scratch, implementing cylinder chess is significantly simpler. It is essentially standard chess but without the horizontal "walls," allowing pieces to wrap around the board horizontally.

    As mentioned, we will be developing the game from scratch for two reasons:

    1. We couldn't find any good open-source examples that fit our needs.
    2. Since the game must be playable online, designing the code from the ground up will allow us to easily integrate the networking functionality later.

    The game will be developed using GameMaker Studio, as we are already very comfortable with the software. It also provides solid networking capabilities and supports HTML export, which is essential for making the game playable in a web browser.

    Making the game was pretty straightforward; it was essentially like coding a normal chess game, except that whenever a position exceeded the chessboard limits, it would wrap around to the other side. In GameMaker, we implemented it like this:

    And as a said the rest was just coding a normal chess game, this was the final result :

    (Chess Set - Pixel Art)

    The next step was to implement networking into the game.

  • The goals of the project

    Nasser02/26/2025 at 02:22 0 comments

    The goal of this project is to create a spherical chessboard where moves are played by a small robotic arm moving along a circular track.

    The robotic arm will execute the moves made by players in an online chess game.

    Here is a rough draft of our vision for the final product :

    Our broader vision is to build multiple chessboards across different campuses of our school, allowing players to compete remotely. Each robotic arm will replicate the moves made by players in real-time on their respective boards.

    Our main inspiration is the OrbChess by NKD Puzzle: OrbChess – NKD Puzzle.

    We will first focus on the software aspects of the project—the chess game, game server, networking, etc.—before moving on to the hardware.

    For the implementation:

    • We'll use an ESP32 DevKit (full pinout) as the brain of the chessboard.
    • GameMaker Studio will be used to develop the chess game.
    • The game server will be built with Python using WebSockets for real-time communication.

    This project is ambitious as it covers IoT, mechanical design, game development, and networking.

View all 8 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates