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.

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.

Moises Status Report 04/12

This week, I focused on developing a fully functional 9×9 capacitive touch grid. I laser-cut and assembled a new version of the grid, incorporating several design improvements for better usability and stability. While maintaining the 9-inch by 9-inch active area, I added extra border space to separate the wiring and relieve pressure on the connections, which had previously caused reliability issues. The extended edge also allows for clamping, making the overall structure more rigid.
For the top layer, I experimented with 1/16-inch acrylic instead of cardstock to take advantage of its rigidity. Although it initially showed some promise, the material ultimately required excessive pressure to register touches, resulting in inconsistent readings. I plan to revert to a thinner, more responsive material and iterate from there.
There was a minor setback this week: one of the MPR121 ICs was shorted during testing. I’ve ordered replacements and will rebuild the grid once they arrive, continuing to refine the material and construction for optimal performance.

Moises Status Report 04/05

This past week was primarily focused on preparing for and presenting at the interim demos. I made a few last-minute adjustments and ensured the capacitive touch grids were functioning as intended. Due to Carnival Week, I wasn’t able to make significant visual or hands-on progress, but I did spend time planning the next steps.

Specifically, I began evaluating materials for the next iteration of the 9×9 grid and started designing how all the components of the project will come together in a cohesive system. I also ordered acrylic sheets for laser cutting to begin prototyping an enclosure. Some initial design work has been completed for the enclosure, though it will require further iteration.

Goals for this upcoming week:

  • Finalize and test a properly functioning 9×9 capacitive touch grid with consistent and accurate touches.

  • Continue iterating on the overall cohesive design of the project.

  • Review and possibly incorporate feedback received during the interim demo into the next design phase.

Moises Status Report 3/29

This week, I focused on building the 9×9 grid, which consists of a 9-inch by 9-inch piece of wood layered with copper foil tape and cardstock. I was able to connect both MPR121 and get them to read values accurately when separated. However, I didn’t initially account for the warping of the cardstock, which resulted in a non-flush integration of the materials. This caused inconsistent sensitivity and readings on the lower layer.

To address this for the interim demo, I decided to keep both grids as separate entities. In response to the warping issue, I also designed a potential enclosure to house the components and ordered acrylic sheets, as acrylic is more resistant to warping than wood. Additionally, I am considering 3D printing clamps to better secure and flatten the layered materials.

With regards to code, I modularized it a little bit more and stored the rows and cols being read as variables that can be used for other parts of the code. I also made it so although I am using interrupts, in order to not oversaturate the number of inputs, it checks this interrupt every couple of seconds (adjustable) leading to a lot cleaner results.

Moises Status Report 3/22

I’ve been focusing on improving the accuracy and reliability of the capacitive touch grid. I identified that the issue was likely caused by the dielectric material I was using—packing tape—which was too thin and didn’t fully separate the rows and columns. This caused interference, leading to false inputs.
To address this, I tested several alternative dielectrics and found that cardstock provided a more reliable solution. Using two MPR121 ICs, I successfully achieved proper functionality with a 3×3 grid of rows and columns.
Next, I plan to scale up to a 9×9 grid. Once that’s complete, I will focus on processing the input data from the MPR121 ICs to enable selection of specific points on the grid.

Moises Status Report

I’ve made significant progress with the 3×3 grid, and the Raspberry Pi is now successfully reading both the rows and columns. While I am able to receive readings and see both inputs, I’m not entirely satisfied with the consistency and accuracy of the touchpad at this stage. Occasionally, the sensor may register an incorrect value due to noise or other factors. For example, when touching row 3, it could mistakenly register rows 0, 1, or 2 before eventually defaulting to row 3 after a brief delay.

In addition to working on the core functionality of the touchpad, I’ve also shifted from polling to using interrupts to capture input. This change has brought some noticeable improvements. Polling involves continuously checking for changes in the inputs, which can be inefficient and lead to slower responses, especially when there are multiple inputs being processed at once. By using interrupts, the system can react immediately when a change occurs, rather than having to constantly check. This approach reduces processing overhead and ensures that inputs are captured more quickly, leading to a more responsive system.

However, there are some trade-offs with using interrupts. While interrupts improve responsiveness, they also require careful handling to avoid issues like missing interrupts or overloading the system with too many triggers. Additionally, using interrupts can sometimes make the system more complex to manage, as it introduces additional code to handle interrupt requests and ensure that each one is processed correctly. Despite these challenges, the benefits of faster, more efficient input handling outweigh the downsides, and I’m confident that this approach will lead to a better overall user experience.

Moving forward, my next step will be to focus on fine-tuning the system and improving the accuracy as much as possible. This will involve further adjustments to the sensor calibration and possibly adding noise-reduction techniques to ensure the readings are more reliable. Once that’s addressed, I’ll shift my attention to incorporating these touch inputs into the Sudoku game system. This will involve using the touchpad to select points on the grid and integrating the keypad for grid selection and number input. By combining the touchpad and keypad, I aim to create a seamless and intuitive interface where users can easily navigate the grid and enter values to solve the puzzle.

Team Status Report 03/08

These past 2 weeks, our team focused on finalizing adjustments to our project based on feedback from our design presentation. We refined how each system component interacts to ensure a cohesive user experience. A major area of focus was improving the method for selecting a new puzzle such that its more intuitive to the user. With these refinements in place, we put together and submitted our design report, updating our design ideas.
On the development side, we made some progress with the Pygame interface. The board now supports cell selection, highlighting selected cells, and inputting numbers from 1 – 9. In addition to this, we received our projector this week, which will enable us to display the board external. The next goal is to integrate the projector so the game board is shown through it rather than just being displayed on a monitor screen.
There were some setbacks these past 2 weeks, particularly with the Raspberry Pi setup for the capacitive touch grid. Due to a lack of prior experience with these microcontrollers, we initially overlooked the need for some additional components. After acquiring the necessary hardware, we were able to get the Raspberry Pi operational and began testing with a small 3×3 capacitive touch grid. While we were able to successfully detect row touches, column detection did not work as expected. This is likely due to how we made the capacitive grid which means making some updates to its integrations. Moving forward, we will remake the capacitive grid with improved alignment and proper column wiring to have better results and detection. This is an essential step before scaling up to a 9×9 grid.

Next Steps:
– Integrate the projector into the system to display the game board
– Redesign and properly wire the capacitive touch grid to support full row and column detection
-Begin intersection handling to prepare for the full 9×9 grid implementation
-Continue refining the pygame interface to improve the UI.

Despite the setbacks we are making steady progress, and our next steps will help us continue moving forward and reaching a minimum viable product.

Moises Status Report 03/08

There were a lot of set backs with regards to making progress on my part this week. Along with interviews that I needed to study for, I was having some issues getting the raspberry pi setup to begin testing the capacitive touch grid. Since I’ve never worked with these microcontrollers, I didn’t take into account extra components we may have needed to get it functioning correctly. After a couple of days I acquired the components and was able to get the raspberry pi working and begin looking at testing the small 3×3 capacitive grid I made. I was able to detect touches for the rows but not for the columns. This can most likely be attributed to how I connected the wires for the columns and may require me to remake the grid to get proper testing completed.  So moving forward, I will remake a grid with more accurate alignment along with proper wiring for the columns and attempt to get intersection handling completed as soon as possible so I can begin working on creating the larger 9×9 grid.