Video here.
Team Status Report 04/26
his week, our team focused heavily on final integration, testing, and polishing the user experience ahead of our final demo.
One major focus was verifying and validating the capacitive touch grid. We systematically tested all 81 squares and conducted limit tests to uncover any potential issues. The grid generally performed well, allowing for continuous use over 30-minute sessions. However, we encountered occasional issues where some intersections would get stuck in a “constantly touched” state. About half of the time the system self-corrected, but the other half required a full reboot. These issues occurred approximately five times over 25 tests. As a result, we are prioritizing crash-proofing the system by implementing a method to reset the MPR121 sensors without rebooting the entire setup.
In parallel, we focused on software updates and improving the user experience. We resolved a bug where error messages lingered on the screen longer than intended, and we implemented a new hint feature that highlights relevant rows, columns, or 3×3 boxes depending on the hint phase. These changes make gameplay feel smoother, more intuitive, and user-friendly. We plan to continue refining the interface and gameplay to polish the final experience.
On the hardware side, we finalized construction of the enclosure. After assembling and positioning all electronics, we measured and laser-cut the top surface, creating 81 individual openings for the touch grid and a dedicated space for the external numpad. Since the laser cutter struggled to fully cut through the material, manual finishing was required. Additionally, we adapted the software to address communication issues between the MPR121s and the Raspberry Pi, which arose after integrating newer gameplay features. We adjusted the code to properly map touches to the selected cell and ensure smooth interaction between the hardware and software.
Heading into the final week, our focus remains on full system integration, robustness improvements, final gameplay refinements, and preparing for our final demo.
Moises Status Report 04/26
This week, I focused on practicing for my final presentation and verifying the functionality of the capacitive touch grid. I systematically tested all 81 squares, performing limit tests to identify any potential bugs or issues. Overall, the grid performed well — I was able to continuously use it for about 30 minutes without major problems.
However, I did encounter occasional issues where some intersections would become stuck in a “constantly touched” state. In about half of these cases, the system self-corrected; in the other half, a full reboot was required. This issue occurred approximately five times across 25 tests, each lasting around five minutes. While the performance is generally stable, some fine-tuning is still needed.
As we enter the final week, I will focus on full system integration and improving robustness, specifically by implementing a method to reset the MPR121 without needing to reboot the entire system.
Michael’s Status Report 04/26
This week, I focused on updating the software and improving the user experience. I fixed a bug where error messages would linger on the screen instead of clearing properly, ensuring that feedback to the user is now timely and accurate. I also implemented a new hint feature that visually highlights different parts of the board: depending on the phase of the hint, the relevant row, column, or 3×3 box lights up to better guide the user toward the correct move. These updates help make the game feel smoother and more intuitive. I plan to continue making small refinements to the interface and gameplay before our final demo.
Winstone’s Status Report 04/26
This week, our team focused on final integration and testing. Continuing from my work last week, I finished building the housing. After all the electronics were positioned in the box, I took measurements of the top surface to laser cut. I cut the 81 individual squares for the user to interact with the capacitive touch grid and a hole for the numpad to fit through. The laser cutter had difficulty cutting through the entire material even with multiple passes, so I ended up finishing the cut with a boxcutter.
Other than the housing, I also worked on bug fixing our software program to communicate with the MPR121s. We had been iterating and testing on a computer for some of our newer features, but once we integrated it again with our hardware, the capacitive touch grid failed to properly communicate with our Raspberry Pi. Our newer code had some changes to the behavior of the selected cell, so I had to adapt the code to allow for the touches to interact with the selected cell. I plan on working on some minor changes to game functions to improve the user experience before our final demo.
Michael’s Status Report 04/19
This week, I focused on adding additional details to the software so that users would be able to have a more smooth and understandable gameplay. One of the key features I worked on this week was the sidebar that was the key part of turning this system into a ‘learner’ beyond just a sudoku game. This was also a pivotal part of the ‘hint system’ that we were trying to go for, as hint button would trigger a blue highlight of all the numbers on that row, column, and 3×3 box in that order along with an explanation on sidebar of the numbers already here and numbers that could potentially be in the selected cell. One of the things that we discussed was how extensive we wanted users to know specific values were wrong. We definitely settled on a system where the game wouldn’t mark users wrong they played a sequence of numbers that weren’t on the current version of the board, since we didn’t want users trying everything from 1-9 for the hint system. Maybe we could think about the possibility of dividing between objective answers and the current, immediate answers.
Team Status Report 04/19
This past week, our team focused on finalizing the capacitive touch design, building the physical construction, and working on software features.
With the capacitive touch sensor, the original grid approach was fundamentally flawed due to how the MPR121 sensor operates. Each time the sensor initializes, it sets a default baseline capacitance, which is significantly influenced by materials in contact with the copper foil tape. To address this, we shifted the design by offsetting the row and column layers and introduced rubber bands for the top layer. However, the rubber bands proved to be too insulating for a finger to trigger a reliable capacitance change. We solved this by wrapping each of the 81 intersection points with small patches of copper foil tape, which made a significant difference and enabled consistent touch registration.
On the physical construction of our project, we needed a container to hold all our electronics, including the Raspberry Pi and MPR121s, and encompass the capacitive touch sensor and numpad. We decided to use a 1/4″ MDF sheet as the base and 1/8″ MDF sheets for the sides and top projection surface. We used a CAD program and a laser cutter at TechSpark to cut out the box joints. We ran into some difficulty because the 1/4″ MDF sheet did not cut easily and caught fire. We put it all together in the woodshop and it is mostly complete. We will have to laser cut holes on the top projection surface for the keypad and the capacitive touch sensor once we test all the components together.
With our software, we created the screen that will display text and give users more information on the game state. We also updated our hints algorithm so that instead of giving the number for a cell, it will first highlight the row, column, and 3×3 box with notes in our side screen telling the user what numbers can potentially go into the requested cell.
Winstone’s Status Report 04/19
After the weekly meeting with our advisor, I put my efforts into the physical construction of our project. We would need a container to hold all our electronics, including the Raspberry Pi and MPR121s, and encompass the capacitive touch sensor and numpad. This container would also be the surface that the projector would display on. I decided to use a 1/4″ MDF sheet as the base and 1/8″ MDF sheets for the sides and top projection surface. These MDF sheets can be laser cut, is very resistant to warping, and sturdy enough to hold its shape and contain all our components. I spent time drawing out the cuts using a CAD program and used the laser cutter at TechSpark to cut out the box joints. I ran into some difficulty because the 1/4″ MDF sheet did not cut easily and caught fire. I had to use a box cutter to finish the rest of the cut. I put it all together in the woodshop and it is mostly complete. I will have to laser cut holes on the top projection surface for the keypad and the capacitive touch sensor once we test all the components together.
Moises Status Report 4/19
This past week, I focused on finalizing the capacitive touch design and getting a reliable system in place. Through testing, I realized that the original grid approach was fundamentally flawed due to how the MPR121 sensor operates. Each time the sensor initializes, it sets a default baseline capacitance, which is significantly influenced by any materials in contact with the copper foil tape. Because of this, stacking multiple layers caused major inconsistencies in readings, especially on the bottom layer.
To address this, I shifted the design by offsetting the row and column layers and introduced rubber bands for the top layer. The idea was that the flexibility of the rubber bands would allow touch pressure to bridge the gap between rows and columns without keeping them in constant contact. However, the rubber bands proved to be too insulating for a finger to trigger a reliable capacitance change.
To solve this, I wrapped each of the 81 intersection points with small patches of copper foil tape. This modification made a significant difference and resolved the detection issue, enabling consistent touch registration.
At this stage, the system only needs some threshold tuning and full integration. My upcoming goals include finalizing the enclosure to house all components cleanly and completing integration with the software side. While there is still work to be done to ensure the system is fully functional, accurate, and cohesive, I’m confident that we are on track to finish before the final demo.
Team Status Report 04/12
This week, our team made progress on multiple fronts despite facing some initial setbacks. We successfully developed a 9×9 capacitive touch grid with an extended border to improve wiring separation and structural rigidity. Though we tested 1/16-inch acrylic as a top layer, it required too much pressure for consistent readings, so we plan to revert to a thinner material. Unfortunately, one MPR121 IC was shorted during testing, and we’re waiting for replacements. On the software side, we implemented an enhanced hint system that highlights existing numbers in the selected cell’s row, column, and 3×3 grid, added footnote functionality for tracking potential candidates, and created real-time explanations of hint logic in the terminal. We also developed a side UI panel with placeholder sections that will improve the user experience and fits within projection width constraints. Moving forward, we plan to rebuild the touch grid, expand the UI with a zoomed-in cell view, add on-screen explanations for Sudoku constraints, create an introductory guide, and determine how to implement different functionalities in the side panel.