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.

Team Status Report 02/22

This week was mainly dedicated to the team’s design presentation, which allowed for review and refinement of the project’s design. Michael took the lead in presenting, ensuring the slides conveyed the team’s progress while preparing for potential questions from faculty. Several design updates have been implemented to improve functionality. System diagrams have been updated for better clarity on which components are being used and how they are connected. The team has also streamlined the design by replacing certain components, including no longer using an FPGA, utilizing capacitive touch sensing instead of a keypad for movement, and removing computer vision since it no longer really fit our goals with the project. While these changes do not significantly increase costs, they require additional testing and validation to make sure everything is functional and integration goes smoothly.

The project has encountered some hardware setbacks, (MPR121 sensors and projector) affecting our ability to test the capacitive touch grid and projection. To address these challenges, the team is conducting some preliminary testing, refining the touch grid design, and developing software ahead of hardware arrival to allows us to integrate quickly and begin validation and testing as soon as possible. Given the delay with the projector, simulations using Pygame have been implemented to continued some development.

In addition to the software development and testing, research was made on feeding continuous real-time data into the Vankyo Burger 101 projector. While direct coding progress was limited due to competing obligations, a bit of research was conducted on communication protocols and data interfaces that could be used for this task. The team took into consideration both wired and wireless methods to ensure a steady stream of high-frequency data, while simulations of different data flow scenarios highlighted potential issues such as latency and data integrity. Although all this does is give us some idea but the hardware may function different. A draft technical document was created to outline possible architecture and API requirements, in order to continue improving projector usage.

The project schedule has been adjusted taking into considerations certain issues, with key milestones such as sensor testing, capacitive grid construction, and system integration experiencing slight delays. The team remains proactive in working around different challenges and is prepared to adapt as required. Recent achievements include a design presentation that refined the project’s approach, an improved touch grid layout, and preliminary projection software development. Moving forward, the team will continue testing and optimizing components as hardware becomes available. If delays continue, work will be focused on software elements such as the Sudoku solver and hint generation that don’t require the missing hardware.

Moises Status Report 02/22

This week, I focused on determining the appropriate sizing for the capacitive touch grid, including the spacing required for a 9 x 9 grid system. Since our system only needs to detect one input at a time, rather than handling multiple simultaneous touches, I realized we could allow for slightly more spacing between the capacitors without sacrificing functionality.

Based on this, I designed a 12in x 12in grid using 1-inch-wide copper foil strips, with 0.375-inch (3/8-inch) gaps between each strip. This layout results in 1-inch by 1-inch capacitor squares, separated by 0.375-inch gaps.

Additionally, I plan to test different dielectric materials to determine which works best, including parchment paper and packing tape.

I do feel slightly behind schedule, as I had hoped to have the board built and begin testing with the MPR121 sensors by now. However, since the sensors have not yet arrived,  and I had a fairly busy week with multiple projects, exams and assignments I fell behind.

Therefore my next steps will be to:

  • Start writing pseudocode for the Raspberry Pi to prepare for debugging.
  • Build a test grid to begin preliminary experiments as soon as the sensors arrive.
  • If the MPR121 arrive, do testing as soon as possible and possibly begin working on implementing the full 9×9 grid.

Moises Status Report 02/15

We identified a few components in our project that were difficult to justify and found better alternatives. One of these was the navigation method for Sudoku board selection. Instead of using four directional buttons (up, down, left, right), I explored different ways to implement a touch-based selection system.

The most promising approach is capacitive touch sensing. This would involve creating a 9×9 grid using a conductive material, such as copper foil tape, with rows and columns separated by a dielectric material. This setup effectively forms 81 capacitors. Each row and column would be connected to an MPR121, an IC capable of detecting changes in capacitance. When a user touches the overlapping region of a row and column (a makeshift capacitor), the capacitance increases, which the MPR121 can detect and process.

This solution is cost-effective, requiring two MPR121 ICs ($8 each) and copper foil tape which is approximately ($8).

Overall, I believe this approach will improve the project by making user interaction more intuitive. However, it also introduces new challenges in setup and integration. My next steps include gaining a deeper understanding of the implementation process and beginning assembly once the necessary components arrive.

Our interactive Sudoku system is designed with economic efficiency in mind, utilizing low-cost materials like MPR121 ICs and copper foil tape to reduce production costs compared to expensive touchscreen alternatives. By leveraging Raspberry Pi and open-source software like Pygame, the system remains affordable, scalable, and easy to distribute, enabling cost-effective replication for educators, developers, and hobbyists. Its modular design allows for widespread adoption in schools and learning centers, while its open-source framework supports a DIY market, fostering innovation without high development costs. Additionally, the system holds commercial potential in the  sector of education technology, where it could be produced and sold as an interactive learning tool that will make cognitive training more accessible while aligning with sustainable production and distribution models.