Blueprint

Chopsticks Game

A board with a screen and capacitive pads to play the common hand game, chopsticks, with a perfect algorithm!

Created by wldd2211 wldd2211

Tier 5

2 views

0 followers

wldd2211 wldd2211 submitted Chopsticks Game for ship review ago

Shadow Shadow requested changes for Chopsticks Game ago

user req

wldd2211 wldd2211 submitted Chopsticks Game for ship review ago

wldd2211 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.

image

wldd2211 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

image

wldd2211 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.

image

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.

image

wldd2211 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.

image

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 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.

image

wldd2211 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.

image

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.

image

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.

image

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.

image

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

image

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.

image