Chopsticks Game
A board with a screen and capacitive pads to play the common hand game, chopsticks, with a perfect algorithm!
Created by
wldd2211
Tier 5
2 views
0 followers
wldd2211
submitted Chopsticks Game for ship review ago
Shadow
requested changes for Chopsticks Game ago
user req
wldd2211
submitted Chopsticks Game for ship review ago
wldd2211
added to the journal ago
Make firmware
Using some AI and manual research, I created a sample python firmware script (using CircuitPython) to print debug text on the I2C screen. I will add more to the script after building and testing with the PCB.

wldd2211
added to the journal ago
Modified edge of board to remain under 100mm width
When I viewed the PCB in a Gerber viewer, I realised it was 102.5 mm in width, which would make the JLCPCB cost much higher. So, I did some simple modification to the right edge of the board and made it exactly 100mm x 66mm instead of 102.5mm x 66mm

wldd2211
added to the journal ago
Routed the PCB
That took even less time than I thought, nice! I routed all the traces real quick and added silkscreen labels to everything, and the board overall. I also changed the keepout areas around the pads to work properly.

After that, I also added a ground net to not only make it slightly easier to connect the chip's ground to the screen, but more importantly, to add a clearance gap ("guard ring") around the pads so that they work better? I think? AFAIK that's helpful, so I added it.

wldd2211
added to the journal ago
Completed PCB layout
I finished the layout for the board. I like using exact and precise positioning, so I spent extra time making sure every thing was lined up perfectly. Here's a few of the things I made decided and made sure of, off the top of my head:
- The two rows of pads and the screen and all aligned perfectly horizontally, and have equal horizontal (between the pads) and vertical spacing (between the rows and screen)
- The Edge.Cuts outer rectangle has 5mm of room around all the components on all sides of the board, except the one with the XIAO, so it can be plugged in easily.
- The XIAO chip is exactly 10mm to the left of the left-most point of the top row's first pad.
- The XIAO chip is exactly halfway between the Y-position of the top row of pads and the screen.

The only thing I'm not very happy about is how much bigger the pads are compared to the screen, but I realise that's just because the screen is really tiny. The biggest pads (circular) are 1.6mm in diameter, which is already very small, and I had decided, just small enough to look nice and be compact but just big enough to work properly as a button.
Routing shouldn't take long, since it's a very simple board!
wldd2211
added to the journal ago
Created Schematic
I designed the schematic for the PCB. Most of the work on this project was done before starting the project, so the components were all chosen already.
- A Seeed Studio XIAO RP2040 as the MCU
- An SSD1306 I2C OLED screen (128x32 pixels)
- 7 capacitive pads as inputs
I found and imported some symbols and footprints, and made some myself to make the project.

wldd2211
started Chopsticks Game ago
3/26/2026 - Created Schematic
I designed the schematic for the PCB. Most of the work on this project was done before starting the project, so the components were all chosen already.
- A Seeed Studio XIAO RP2040 as the MCU
- An SSD1306 I2C OLED screen (128x32 pixels)
- 7 capacitive pads as inputs
I found and imported some symbols and footprints, and made some myself to make the project.

3/27/2026 - Completed PCB layout
I finished the layout for the board. I like using exact and precise positioning, so I spent extra time making sure every thing was lined up perfectly. Here's a few of the things I made decided and made sure of, off the top of my head:
- The two rows of pads and the screen and all aligned perfectly horizontally, and have equal horizontal (between the pads) and vertical spacing (between the rows and screen)
- The Edge.Cuts outer rectangle has 5mm of room around all the components on all sides of the board, except the one with the XIAO, so it can be plugged in easily.
- The XIAO chip is exactly 10mm to the left of the left-most point of the top row's first pad.
- The XIAO chip is exactly halfway between the Y-position of the top row of pads and the screen.

The only thing I'm not very happy about is how much bigger the pads are compared to the screen, but I realise that's just because the screen is really tiny. The biggest pads (circular) are 1.6mm in diameter, which is already very small, and I had decided, just small enough to look nice and be compact but just big enough to work properly as a button.
Routing shouldn't take long, since it's a very simple board!
3/28/2026 - Routed the PCB
That took even less time than I thought, nice! I routed all the traces real quick and added silkscreen labels to everything, and the board overall. I also changed the keepout areas around the pads to work properly.

After that, I also added a ground net to not only make it slightly easier to connect the chip's ground to the screen, but more importantly, to add a clearance gap ("guard ring") around the pads so that they work better? I think? AFAIK that's helpful, so I added it.

3/29/2026 6:18 PM - Modified edge of board to remain under 100mm width
When I viewed the PCB in a Gerber viewer, I realised it was 102.5 mm in width, which would make the JLCPCB cost much higher. So, I did some simple modification to the right edge of the board and made it exactly 100mm x 66mm instead of 102.5mm x 66mm

3/29/2026 6:33 PM - Make firmware
Using some AI and manual research, I created a sample python firmware script (using CircuitPython) to print debug text on the I2C screen. I will add more to the script after building and testing with the PCB.
