This week, we focused on getting one full board to a usable, testable state. That meant rebuilding the switch matrix with sturdier parts, reshaping and mounting the LEDs to match the hex layout, and writing the software path from “button press detected” to “specific LEDs light up.” The goal was to complete a reliable build for the interim demo.
1. Switch Matrix
We rebuilt the matrix with new buttons mounted in a rigid base and used thicker copper wire. This setup reduces flex on solder joints, which was our biggest reliability issue before. The new assembly is a lot stronger, and I think the second board’s matrix will go a lot smoother.
2. LEDs
Because the board requires LEDs to be placed in a hex shape, we had to cut and re-solder the straight LED strip at every turn to wrap each game tile. We also left physical clearance for the dowel attached to each house piece so it can press the button underneath. This step was definitely one of the most time-consuming parts of building the game board.
We initially used duct tape to keep the LEDs attached to the game board, but it didn’t end up being strong enough, so we decided to hot glue each section of the LED strip to the board. Additionally, we wanted to use a single GPIO pin for the entire strip; however, the joints kept breaking, so we ended up splitting the strips and using two GPIO pins.
3. Software
On the software side, we now have a script that reliably detects button presses and another that can address specific LED indices. We’ve verified that all buttons can be detected and all LEDs light up as expected. We also have a script that will take the button press and light up the corresponding LED index. The only thing that is missing is the mapping table from button press to LED index. Once we assemble the boards on top of each other, we will be able to record the correct mapping and test the code.
4. Dice Plate
The dice plate currently reads faces on a black-and-white die using our computer vision pipeline. It works, but it isn’t consistent due to noise and lighting variation. We believe we need to train a small, task-specific model (or at least collect a dataset under our exact conditions) to improve robustness. This is currently our biggest technical challenge. Once we assemble the boards with the camera, we will collect images and label them, so we can train the model on the actual conditions of our game board.
Plan for next week:
- Align the game board (with the LEDs) with the buttons below it
- Record which button maps to which LEDs
- Ensure that pressing a piece on the game board accurates presses the button on the switch matrix
- Begin working on the second game board
- Finish the switch matrix
- Finish restructuring the LEDs
- Start working on training a new model for the dice plate
