-
SOFTWARE & PROGRAMMING
05/10/2025 at 17:07 • 0 commentsWith the mechanical and electronic parts assembled, it was time to tackle the brain of the system—the programming. This is where everything comes together: motors, servos, sensors, and user interactions.
We started by defining the main behaviors the system needed to perform:
-
Homing sequences for all actuators
-
Normal and capture piece movements
-
Communication with the Nextion touchscreen
-
Manual control using the physical controller (two-button interface)
The whole program was written for an ESP32 board using the Arduino framework. Because we had networking code running in the background, it was essential that all motion routines were fully non-blocking.
We structured the code around multiple state machines to control:
-
The cart
-
The gripper system
-
The capture system
-
The chessboard rotation
-
The manual control interface
-
The Nextion screen
We started by writing a simple program to test the controller. Using the two-button interface, we verified that we could successfully send signals to the actuators and confirm that everything was functioning correctly—both electrically and mechanically.
Once that was confirmed, we developed a second program that allowed us to control all actuators via serial commands from the computer. This program was crucial: it helped us identify and fine-tune the exact positions and angles each motor needed to reach every square on the chessboard and each slot in the capture zone.
Using the Nextion Editor, we built the graphical interface displayed on the touchscreen. The interface allowed us to:
-
Trigger homing procedures
-
Display system status
-
Manual control
Here are some screenshots of the custom interfaces we made:
By the end of development, the full codebase for the motion control system totaled over 2000 lines of code. It includes:
- Multi-layer state machines
- Non-blocking motion sequences
- Safety logic for movement constraints
-
-
MANUFACTURING PART 4 : ELECTRONIC
05/10/2025 at 14:43 • 0 commentsWith all mechanical parts assembled, we moved on to the electronics. This step involved wiring, organizing, and preparing all actuators for integration with the control system.
We began by laying out all key components:
-
3 Stepper motors: one for the sphere rotation, one for the curved rail cart, and one for the rotating capture zone
-
1 Linear actuator: to extend and retract the gripper
-
2 Servos: one for rotating the actuator and one for opening/closing the gripper
-
3 limit switches: to detect home positions and aid with calibration
-
ESP32: our main microcontroller handling motion sequences and interface control
-
Motor drivers: 1 L293N, 1 Makerbase MKS SERVO42D, 1 Makerbase MKS SERVO42C, 1 TB6600
-
Power supply : 12V power supply, 5V buck converter
Memory : AT24C256
We then went on to make the circuit diagram
As you can see in the circuit diagram, we have the three limit switches, the two servos, the L293N driver connected to the linear actuator, an AT24C256 memory chip, the Nextion screen, the 12V buck converter, and the three stepper motors with their respective drivers (Makerbase MKS SERVO42D, Makerbase MKS SERVO42C, and TB6600).
You can also notice an additional feature we integrated: a custom controller composed of two push buttons, which allows us to jog the orb manually.
Another interesting part appears in the top left corner of the diagram—the relay connected to the actuator. This section of the circuit is our workaround to detect when the linear actuator is fully retracted. Since the actuator includes an internal limit switch , we decided to solder wires directly to the actuator motor terminals. This setup lets us monitor the voltage across the motor and use a relay to detect when the current drops—indicating that the actuator has hit its internal stop.
Then, we laid out all the components across multiple perf boards to visualize how we wanted to organize the circuit layout.
Once we were satisfied with the arrangement, we began the soldering process.
Another major task was creating the cable bundle that connects the main circuit to the moving cart on the rail. To do this, we positioned the cart at its furthest point and measured out the cable lengths accordingly to ensure proper reach.
To allow for easy disassembly and maintenance in the future, we decided not to solder the cart’s cables directly to the circuit. Instead, we used a 16-pin connector like this one:
We then connected the cart's wires to the male connector and matched them with corresponding wires going to the circuit on the female connector. This was the final cable assembly:
Finally, we installed all the electronics into the base of the system—and with that, the electronics assembly was complete!
-
-
MANUFACTURING PART 3 : ASSEMBLY
05/09/2025 at 21:18 • 0 commentsWith all wooden and 3D-printed components ready, we entered the assembly phase—where each subcomponent of the robotic chessboard came together to form a fully integrated system.
We began by assembling the spherical chessboard. The four 3D-printed dome part were aligned using built-in hinges (and some epoxy glue).Each square was then inserted into its designated slot on the sphere, forming the playable surface. Magnets were added to each square to allow chess pieces to attach.
The cart subassembly was then put together. All components—stepper motor, linear actuator, rotating servo, gripper servo, and gripper—were integrated into the 3D-printed cart body.
Next, we assembled the curved rail, made of multiple laser-cut plywood layers:
These layers were aligned and fastened together using M5 screws. The 3D-printed top and bottom rail supports were then bolted in place using M8 bolts, completing the rail structure.
Finally, we mounted the cart onto the rail and the bottom support to the wooden base.
This phase marked a key milestone, as the physical form of our robotic chessboard was now complete. The next step will be wiring all components and beginning system integration, programming and finally testing.
-
MANUFACTURING PART 2 : 3D printing
05/09/2025 at 20:51 • 0 commentsAfter completing the laser cutting of all wooden parts, we moved on to the second major phase of our manufacturing process: 3D printing.
This stage primarily focused on producing all the custom plastic components of the robotic chessboard. These included:
-
The two hemispheres that form the spherical chessboard
-
The curved rail supports (top and bottom)
-
The squares that insert into the sphere
-
The cart
-
The gripper assembly
We used PETG for most structural components and TPU for the gripper
All the part were printed with a Bambulaba1 mini (bed size of 180mm x 180 mm)
-
-
MANUFACTURING PART I : Laser cutting
05/09/2025 at 20:36 • 0 commentsNow that our full design was completed in CAD, it was time to start manufacturing each part.
We began by laser cutting all the wooden components. Our design was optimized for 5 mm plywood for almost all wooden parts (with one exception). In total, we used:
-
Three 80 cm × 60 cm sheets of 5 mm plywood
-
One 50 cm × 50 cm sheet of 3 mm plywood
Here is how the sheets were arranged for cutting:
5mm plywood 5mm plywood 3mm plywood 5mm plywood And here is the cutting process:
-
-
3D Modeling and Mechanical Design PART VI : Base
05/06/2025 at 22:39 • 0 commentsWe are diving deep into the 3D design of the base unit. This isn't just a stand, it's the command center for the entire spherical chess board, housing electronics, managing captured pieces.
Project Goals for the Base
- To securely house and protect all the core electronics.
- To integrate a system for neatly storing captured chess pieces.
- To provide clean and accessible connection points for other modules like the piece-moving chariot and the display.
- To ensure structural rigidity for the whole setup.
The Main Enclosure
The core of the base is a custom-designed box. This forms the main cavity for all the internal components.
It has holes for connecting the cart’s cables, holes for the Nextion display, a support for the main board, supports at each of the four corners of the base, and a central support to hold the wooden plate and the hole globe and rail that will be placed on top.
The Captured Pieces Zone
This takes the form of a large, gear-like structure. it allows for discrete slots for each piece.
It's directly driven by a stepper motor. The stepper will rotate the gear to present an empty slot for the next captured piece. The connection to the stepper shaft is via a custom press-fit adapter.
External Interfaces & Connectivity
- Chariot Connector Port:
There's a dedicated cutout on the base for the main cart connector. This will be a 16 pins connector where we will use only 14 that carries all signals and power to the cart that moves the pieces on the sphere.
This allows the chariot assembly to be easily disconnected for transport or maintenance.
- Nextion Display Port & Housing:
The Nextion display will be housed in its own small enclosure, which then slots into a dedicated opening on the base.
-
3D Modeling and Mechanical Design PART V : Cart and robotic gripper
03/25/2025 at 15:40 • 0 commentsThe 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
03/25/2025 at 15:39 • 0 commentshe 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:
-
Two outer planks — 5 mm thickness each
-
Inner plank — 10 mm thick, this is the guide surface where the cart wheels will slide
-
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
03/17/2025 at 00:33 • 0 commentsTNow 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:
KING QUEEN KNIGHT PAWN BISHOP ROOK 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 magnets—128 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:
- Abrupt movements—simulating sudden shifts in position.
- 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
03/08/2025 at 16:56 • 0 commentsAfter 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.