Claire’s Status Report for 3/14

This week I completed the starting and ending sequences. The starting sequence highlights important parts of the board like the river, palace, player’s side, and the opponent’s side. The ending sequence flashes white on the winner’s side of the board for 10 seconds. I switched to using an Arduino Uno 3 to control the data in into the LEDs but I will have to figure out how I am receiving data from the computer vision and the chess engine and see if the fact that these pieces of information may be send over HTTP commands means that I need to switch back to the Raspberry Pi4.

My progress is on schedule . The next week I hope to potentially switch to the Raspberry Pi 4. I am also planning to helping create and capture some board states with the LEDs in order to help the computer vision component. If integration with the other subsystems is ready, I may start the integration and at the very least verify that my subsystem is as complete as possible before the integration if the not possible.

Team’s Status Report for 3/7

Team Status Report for 3/7

A was written by Yoyo, B was written by Claire, and C was written by Charlie.

Part A – Global Factors (Written by Yoyo)

Our product aims to make learning Chinese Chess more accessible to users from different backgrounds and locations. By combining a physical chessboard with a phone-based interface, the system allows players outside of academic environments or those who may not be technologically experienced to interact with the system easily. The phone camera captures the board state while the application provides move suggestions and explanations, allowing players to learn strategies while playing on a physical board. This approach makes the learning process more intuitive and accessible to users worldwide, especially those who prefer physical gameplay over purely digital interfaces.

Part B – Cultural Factors (Written by Claire)

Chinese Chess is a traditional strategy game with deep cultural roots. Our project helps introduce this game to a broader international audience while preserving its cultural elements. The chess pieces include both the original Chinese characters and English translations so that players who are unfamiliar with the language can still understand the game while learning the traditional terminology. By supporting both language systems, the system helps users become familiar with the cultural context of the game while also lowering the barrier to entry for players who may not have prior experience with Chinese Chess.

Part C – Environmental Factors (Written by Charlie)

Environmental considerations are relatively limited for this prototype because the system does not require large-scale energy consumption or manufacturing. However, we still considered sustainability in our design choices. The board is constructed using durable materials such as plywood and acrylic so that it can be reused for extended periods rather than discarded after testing. Additionally, the system relies on a smartphone camera rather than requiring specialized imaging hardware, which reduces the need for additional electronic components. These design choices help keep the prototype relatively resource-efficient while minimizing unnecessary environmental impact.

Project Risks and Risk Management

The most significant risk to the success of the project is the integration of the system’s subsystems. The computer vision system must correctly detect the board state before the chess engine and LED guidance system can function properly. Because both the engine and LED guidance depend on the output of the vision system, errors in board detection could affect multiple components of the system.

Additionally, the LED guidance system depends on the chess engine for calculating the opponent’s moves. This creates a chain of dependencies between subsystems, which may make integration more complex than initially estimated.

To manage this risk, the team plans to begin integration earlier than originally scheduled so that potential issues can be identified sooner. If integration requires more time than expected, the team may reduce the scope of testing slightly. For example, instead of testing 100 random board states and 10 full games, we may test 50 board states and 5 full games while still ensuring that the system performs reliably.

Design Changes

At this time, no changes have been made to the existing system design, requirements, or block diagrams. The current system architecture—including the computer vision module, chess engine, LED guidance system, and mobile interface—remains consistent with the original project plan.

However, the team did make a practical adjustment related to hardware setup. Instead of building a custom phone mounting structure, we decided to purchase a phone holder with an integrated lamp. This change simplifies the setup process and improves lighting conditions for the computer vision system, which should improve image quality and detection accuracy.

Because this change replaces a custom-built component with an off-the-shelf solution, it reduces development time and introduces minimal additional cost.

Updated Schedule

The overall project timeline remains largely on schedule. This week focused primarily on development of the frontend interface and early testing of the computer vision system. Over the next week, the team will begin collecting image data to train the YOLOX model and continue developing the integration pipeline between the vision system and the chess engine.

While subsystem integration remains a potential challenge, no schedule changes are required at this time. The team will continue monitoring progress and adjust the schedule if integration takes longer than expected.

Progress and System Development

The team made several important steps toward completing the system this week.

The frontend user interface was developed using React, allowing users to interact with the chessboard and enabling communication between the frontend and backend systems. Integration tests were also started to verify that board state updates, move validation, and engine responses are correctly synchronized between components.

On the hardware side, the team constructed a prototype chessboard using plywood from TechSpark. Initial tests were conducted using cut-out chess pieces and a partial board to evaluate the performance of the computer vision system. These tests helped identify lighting and material issues that affect detection accuracy. For example, the plywood surface reflects light, which may interfere with the vision model.

To improve image quality, the team plans to use a phone holder with an integrated lamp to create more consistent lighting conditions for capturing images. The next step will be collecting approximately 100 labeled images of the board to train the YOLOX detection model.

These developments move the project closer to integrating the computer vision pipeline, chess engine, and LED guidance system.

Claire’s Status Report for 3/7

This week I worked on the starting and ending light up sequences. The starting sequences lights up the river, palace/fortress, home territory, and palace corners in blue at the start of each game as a reminder to the player of the different regions of the board. The ending sequence flashes white on the winner’s side of the board for 10 seconds. To determine which side of the board is the winner’s requires additional work and integration with the computer vision system so right now it the side of the board to flash is just a variable.

My progress is on schedule. This next week, I hope to make the connections between the strips of LEDs more secure by integrating the LED connectors that I ordered before the break. I also hope to start working on the algorithm to light up the potential moves when the player asks how a specific piece can move. My plan at the moment is to store all the ways a piece can move in a dictionary and then map them onto the board checking that they are in bounds. I will also have to switch the color if an opponent’s piece is already on one of the potential moves.

Claire’s Status Report for 2/21

This week I started to implement the LED system code to index into the different placements on the board. I had used my previously existing code that was meant for our previous idea of using an Arduino so plan to to transfer my existing logic to the Raspberry Pi 4 that we ordered. Right now, I am able to light up a given number of LEDs at a given position at a given color. In the end product, I will have to translate the computer vision’s FEN string into these 3 parameters. We also finished our Design Presentation, which also let us finish planning for the small details of our project like how the different subsystem will communicate with each other.

My progress is on schedule. This next week, I hope to complete coding and testing the starting and ending sequence. These are the small light up “shows” at the beginning of the game to show the player the different zones like the river and also the end to show which side of the board won. I also hope to get started on the logic to figure out which LED’s should light up which color based on how optimal the move is or not.

Claire’s Status Report for 2/14

What did you personally accomplish this week on the project? Give files or
photos that demonstrate your progress. Prove to the reader that you put sufficient
effort into the project over the course of the week (12+ hours).

This week I ordered the LED strips, Raspberry Pi 4, and power source that I need to build the LED light up system. I also wrote some Arduino code that to index into the LEDs using a pre-existing library for these specific LEDs. I hope to test them next week now that they have been delivered. I also discussed the communication protocol between our different subsystem more meticulously with my team and landed on specific protocols/formats like receiving the state of the board as an FEN string instead of coordinates and having the LED light up system communicate directly with the computer vision instead of the chess engine. We also worked on the Design Presentation Slides and talked more about the details like what the different colors of LEDs mean and other details.

Our progress is on schedule.

Next week I hope to test the LED indexing code and tweak it to correctly work for the 9×10 setup of the board. I also hope to get started on the starting and ending sequence code where at it will highlight the different zones of the board like the river and the opponent’s side and player’s side and also flash the LEDs upon a win.

Team Status Report for 2/7

The most significant risks that could jeopardize the success of the project is the integration of all of subsystems not working. We are worried about the format of the input and output files of the computer vision, chess engine, and led system all working together and being the same format. We also want to flush out a better idea of how we will send these outputs to each other’s systems. For example, we know that from the chess engine to the LED system, we plan to use HTTP commands but we want a better idea for all the directions of communication. We will manage risk by deciding on a set format and mode of communication before building our subsystems.

We do not have any changes to the existing design requirements and have no updates to the schedule.

For individual status reports, see:

Yoyo’s Status Report for 2/7

Charlie’s Weekly Report for 2/7

Claire’s Status Report for 2/7

Claire’s Status Report for 2/7

This week I presented our team’s Project Proposal Presentation. I also peer reviewed other team’s and got inspiration on how to better design our project and measure the success of what we have built. For example, from the team building a smaller, more affordable version of concert lights I learned that that angle of our LEDs might matter and we can actually measure the degrees of tilt. I also compiled our parts list and some backups for the parts we want. Unfortunately, it doesn’t look like we will be able to take any from the inventory but our team has more than enough of our budget left so I don’t think this will be an issue for us.

Our progress is on schedule. In the next week I hope to actually order the LEDs and Arduino Uno 3 that I need to make the LED system and actually develop some code that can index into the LEDs so I can immediately test them when they arrive.

Team Status Report for 1/31

The most significant risk that could jeopardize the success of the project is differing perceptions of what our project should do. Ideally, this would not be an issue because we talked about the requirements thoroughly enough but there is always room for error. This may also manifest in different perceptions of how our different subsystems should communicate each other. For example, the LED system may expect a list of coordinates from the chess engine but the chess engine produces an index number. These integration risks will be managed through communication with the team and things like sample output files so everyone can build their own subsystems without actually having the exact communication in place. Our contingency plans for things like hardware issues or integration problems include moving to a more software based experience like having the user type into a webUI instead of voice commands and having the opponent’s moves be shown instead of told as well .

No changes have been made to the existing design.

Claire’s Status Report for 1/31

This week I compiled the parts list since I will be in charge of the hardware connection of the LED system to the board. This entailed figuring out which LEDs to use since we would need to be able to address the lights and make them different colors. With these constraint, I chose the SK6812 strip LEDs which I will control a Raspberry Pi 3. I also finished the Project Proposal Presentation and script, which I will be in charge of presenting. This meant that I also finished creating the schedule for the timeline of milestones in creating the LED system. Since this will reply on receiving which coordinates to light up which colors from the chess engine, I will first start by just connecting the LEDs to a grid and working on parsing a pseudo-output file into the LED addresses. 

My progress in on schedule because our team’s deadlines for this week was the parts list, project proposal presentation, and gantt chart which we were all able to finish.

Next week I hope to submit the parts list to actually order because our team is fairly certain that we will be needing the strip LEDs and we would like to work on the chess engine, LED system, and computer vision component all in parallel. I hope to start getting the code set up for controlling the LEDs as well, but my main focus will be preparing to present our project proposal.

What does our project do?

The system offers several guidance modes. In full guidance mode, the AI waits for the player to place their next move, analyzes their current board position, and provides feedback explaining whether the move was brilliant, excellent, inefficient, or a blunder. The player may also request additional assistance, such as suggesting next moves or strategic advice tailored to their position. Through this fully guided tutoring experience, the player rapidly learns common strategies and apply it in their own gameplay. 

For intermediate players, an assistive mode is available in which the AI will only provide feedback upon request. This mode is designed to promote player autonomy while allowing them to test and refine their skills. For novice players, voice commands can be used to ask which cells the selected piece is allowed to move to. When requested, the board will illuminate valid locations using yellow LEDs, with the most optimal move highlighted in red. 

To track the board state, we plan to mount a camera on top of the board. Since each piece is labeled with a unique Chinese character, computer vision techniques can be used to identify the pieces and update the new game state. If time permits, we also plan to explore the ability to move pieces automatically through voice commands. This can be achieved by attaching steel to the bottom of the piece and using a gantry-mounted electromagnet placed beneath the board to drag the piece to the designated position. Additional stretch goals include expanding the chess engine to support common opening sequences.