Team Status Report for 11/22/25

This week we made major progress on both the software and hardware for our synchronized Catan boards. As we implemented and debugged the system, we had to learn several new tools along the way. On the software side, we learned how to get the Raspberry Pi camera working reliably with OpenCV, how to tune the dice-detection algorithm using DBSCAN, how to fix issues with FFmpeg and v4l2, and how to manage socket threading so both boards stay synchronized. On the hardware side, we learned how to fix LED soldering issues, wire neopixel rings more reliably, and use the laser cutter to create updated tiles, dice plates, and structural pieces. Most of this came from informal learning—videos, forums, GitHub issues, and trying small examples until we understood the behavior and could incorporate it into our system.

Several risks still remain, but we have plans in place to manage them. Dice detection can still be sensitive to lighting and angles, so we tuned parameters extensively, redesigned the dice plate, and tested many camera settings. Our fallback is a manual-entry button if detection ever becomes unreliable. Another risk is the two boards falling out of sync, so we built a save-state system and a resync request so the boards can recover automatically if something goes wrong during gameplay. Hardware reliability, especially LED joints, was also a concern, but after fixing the soldering issues and reinforcing the wiring, the system is now stable. Structurally, the board needed more support because we shrank our layout, and our original design only had space for six numbered tiles; we had four extra numbers, so we added them as corner stand-up resource tiles, which required extra wiring. We will strengthen the board next week with magnets and better adhesion.

We also completed several stretch-goal features. We implemented a save-state system, added clear-board logic controlled by physical buttons, and even added support for multiple players on the same board. These features added time, and the wiring for the extra corner tiles increased complexity, but each addition improves the usability and robustness of the final product. All three stretch goals are fully implemented and working.

Throughout the week we steadily integrated all of these pieces. On Monday, we finalized the dice-detection algorithm on the Mac and got messages sending correctly from the Pi. On Tuesday, we fixed camera issues on the Pi, moved the full dice pipeline onto it, laser-cut additional dice plates, and achieved working synchronization between both boards. On Wednesday, we soldered the pin headers, laser-cut the tiles and the base board, assembled the entire physical structure, added the clear-board buttons, and finished the sync and save-state code. At the end of the week, we fixed several LED soldering problems, tuned the dice algorithm, laser-cut the remaining numbered fixtures, added lights for the tokens, and glued all the resource tiles and water pieces for the final board design. We also finished the multiplayer stretch-goal code during this time.

Overall, we are in a strong position. The core system is working, the stretch goals are complete, and only minor debugging, minor aesthetic improvements, and physical reinforcement remain before the final presentation.

Below is a photo of how one board looks like:


Below is a video demonstration of a 3-person game (we have a feature where you can enter the number of players 2-4):

https://drive.google.com/file/d/1aihQ5PfYeqy9WeP17BvGSp3CvyLi_z7i/view?usp=drive_link

Leave a Reply

Your email address will not be published. Required fields are marked *