For the game, we created the traditional Snake game from scratch, with a simple Snake entity that can be controlled by four directional buttons. Randomly, a RED Dot appears on the matrix panel, and we may guide the snake to eat this random red dot using the Directional buttons. In the top right corner, we've also added a score marker, which keeps track of how many red dots our snake has consumed.
Furthermore, the game ends when a snake bites its own body.
This console has an onboard power source, which is a single 3.7V 2600mAh lithium ion cell that powers the device, making it a portable game system that we can take anywhere and start playing.
64x32 RGB Matrix


We are using the 64x32 RGB matrix panel, which creates vivid text, graphics, and animations by arranging 2048 RGB LEDs in a 64 by 32 grid.
You can click the link below to read my brief introduction to this matrix panel.
https://www.hackster.io/Arnov_Sharma_makes/64x32-matrix-panel-setup-with-pico-2-25a3c3
The HUB75 interface, which uses a number of control pins, including RGB, address, clock, data latch, and output enable pins, is used to operate this panel.
The row-column scanning technique is made possible by the HUB75 link, which shifts a row of pixel data into a shift register. A demultiplexer is then used to determine which rows should be displayed. RGB channels, addressing pins A, B, C, and D, a clock signal (CLK), a latch signal (LAT), and an output enable (OE) pin are all included in the HUB75 connector.
We can also link several panels in pairs to create a chain by using the provided IN and OUT connections. Making sure the control solution (PICO 2) we are using can manage the additional data load of two or more displays is one of the difficulties of connecting multiple panels.
This matrix was produced by Waveshare, and more thorough details on the Matrix board may be found at the wiki page below:
https://www.waveshare.com/wiki/RGB-Matrix-P3-64x32
As for sourcing this matrix panel, we got it from the PCBWAY GIFTSHOP.
Console Design






The first stage in this project was to build a 3D model of the console, which has two handgrip-like components installed on the back side of the matrix. We then created a model of the special button board on one side.
The PICO Driver circuit, which is fastened to the Handgrip frame with four spacers, is positioned on the back side of the device.
Using three M3 inserts that are already on the matrix, the two Handgrip frame components are mounted from the back of the matrix panel. Each handgrip has three mounting holes that we added so that M3 bolts can be used to attach the handgrip to the matrix.
Four M2 screws are used to secure the button board to one side of the console.
Once the model was complete, we exported the mesh files for the left and right handgrips and four spacers, then used a 0.6mm nozzle to 3D print them in black PLA.
PCB Design: PICO Driver




Using our PCB Cad software, we first create the schematic for the PICO Driver Board design. In order to connect the Raspberry Pi PICO 2 to the Matrix's HUB75 connector, our setup consists of of a CON 16 connector.
We connected the matrix's HUB75 pins (CON 16) to the PICO's GPIO pins in the following order: A to GPIO19, B to GPIO16, C to GPIO18, D to GPIO20, E to GPIO22, CLK to GPIO11, LAT/STB to GPIO12, OE to GPIO13, R1 to GPIO2, G1 to GPIO3, B1 to GPIO4, R2 to GPIO5, G2 to GPIO8, B2 to GPIO9.
We added a CON5 connector for buttons, and its four pins are connected to PICO's GPIO6, GPIO7, GPIO14, and GPIO15. GND is attached to CON5's fifth pin. Each GPIO will be pulled to GND by the button board that connects to this CON5, and PICO can detect this as a button press.
We also incorporated a power management IC, the IP5306, a fully integrated multi-function power management SoC, to power the entire setup.
It can provide steady 5V 2.1A using 3.7V as an input, which can be used to power any 5V device—in our instance, the matrix and PICO 2.
You can checkout IP5306 Datasheet for more info: http://www.injoinic.com/wwwroot/uploads/files/20200221/0405f23c247a34d3990ae100c8b20a27.pdf
Following the schematic setup, we exported the netlist and created the board file by referring to the CAD file's board layout. The PICO 2, button, lithium cell holder, and USB mini port are all on the top side of the board, while all of the SMD components are on the bottom.
PCB Design: Button Board




Next, we get the schematic for the button board prepared. It has four push buttons, with the 4 and 3 pins of each button connected to GND. Additionally, there is a CON5 connector that is attached to each connector's 1 and 2 for GPIO and 3 and 4 for GND.
After setting up the schematic, we used the PCB editor to prepare the board file by aligning the buttons in the proper location and following exactly to the CAD file layout.
PCBWAY


We made two PCBs for this project: the button board and the PICO driver board. Two orders were made: one for the button board and one for the PICO driver board.
The button board PCB was ordered in white solder mask and black silkscreen, while the PICO Driver PCB was ordered in blue solder mask and white silkscreen.
After placing the order, the PCBs were received within a week, and the PCB quality was pretty great.
Over the past ten years, PCBWay has distinguished themselves by providing outstanding PCB manufacturing and assembly services, becoming a trusted partner for countless engineers and designers worldwide.
Their commitment to quality and customer satisfaction has been unwavering, leading to significant growth and expansion.
You guys can check out PCBWAY if you want great PCB service at an affordable rate.