{"id":18507108,"url":"https://github.com/SimonWaldherr/DIY-Arcade-Machine","last_synced_at":"2025-04-09T03:30:58.833Z","repository":{"id":248589760,"uuid":"829122755","full_name":"SimonWaldherr/DIY-Arcade-Machine","owner":"SimonWaldherr","description":"Play classic arcade games on a 64x64 RGB LED Matrix, powered by the Raspberry RP2040.","archived":false,"fork":false,"pushed_at":"2024-10-19T15:31:41.000Z","size":312,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T12:47:48.873Z","etag":null,"topics":["arcade-game","arcade-machine","diy-electronics","game","hacktoberfest","hacktoberfest-accepted","interstate75","pygame","pygame-games","raspberry-pi-pico","rp2040"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SimonWaldherr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-15T20:04:24.000Z","updated_at":"2025-04-03T15:11:53.000Z","dependencies_parsed_at":"2024-09-14T06:09:58.333Z","dependency_job_id":null,"html_url":"https://github.com/SimonWaldherr/DIY-Arcade-Machine","commit_stats":null,"previous_names":["simonwaldherr/diy-arcade-machine"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonWaldherr%2FDIY-Arcade-Machine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonWaldherr%2FDIY-Arcade-Machine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonWaldherr%2FDIY-Arcade-Machine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonWaldherr%2FDIY-Arcade-Machine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SimonWaldherr","download_url":"https://codeload.github.com/SimonWaldherr/DIY-Arcade-Machine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247973430,"owners_count":21026657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arcade-game","arcade-machine","diy-electronics","game","hacktoberfest","hacktoberfest-accepted","interstate75","pygame","pygame-games","raspberry-pi-pico","rp2040"],"created_at":"2024-11-06T15:01:31.116Z","updated_at":"2025-04-09T03:30:58.828Z","avatar_url":"https://github.com/SimonWaldherr.png","language":"Python","funding_links":[],"categories":["Projects","Recently Updated"],"sub_categories":["[Oct 31, 2024](/content/2024/10/31/README.md)"],"readme":"# DIY-Arcade-Machine\n\n[![Short video of the DIY Arcade Console in action (on YouTube)](https://img.youtube.com/vi/3mumzf_0GiM/0.jpg)](https://www.youtube.com/watch?v=3mumzf_0GiM)\n\n## My Very Own Arcade Machine\n\nWelcome to the DIY-Arcade-Machine project! This is a hands-on project to build your very own arcade machine using the Interstate 75 - RGB LED Matrix Driver from Pimoroni (PIM584), a 64x64 Pixel RGB LED Matrix with a Hub75 connector, and a KY-023 Joystick Module (or a Nunchuck). The project includes several games inspired by the classics: Simon, Snake, Qix, Breakout, Tetris, Asteroid, and Pong, all playable on a vibrant LED matrix display.\n\nDon’t have the hardware yet? You can still try out the games by running the [PyGame Branch](https://github.com/SimonWaldherr/DIY-Arcade-Machine/tree/pygame), which simulates the experience on your PC or Mac.\n\n## Table of Contents\n\n- [Hardware Requirements](#hardware-requirements)\n- [Software Requirements](#software-requirements)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Games](#games)\n  - [Simon](#simon)\n  - [Asteroid](#asteroid)\n  - [Snake](#snake)\n  - [Pong](#pong)\n  - [Breakout](#breakout)\n  - [Qix / Xonix](#qix)\n  - [Tetris](#tetris)\n- [Fun](#fun)\n\n## Hardware Requirements\n\n- **Interstate 75 (W) by Pimoroni (PIM584)**\n  - Available at: [Pimoroni](https://shop.pimoroni.com/products/interstate-75?variant=39443584417875) | [DigiKey](https://www.digikey.de/de/products/detail/pimoroni-ltd/PIM584/15851385) | [Adafruit](https://www.adafruit.com/product/5342) | [BerryBase](https://www.berrybase.de/pimoroni-interstate-75-controller-fuer-led-matrizen)\n- **64x64 Pixel RGB LED Matrix with Hub75 connector**  \n  - [Amazon link](https://amzn.to/3Yadyhh)\n- **Joystick options**  \n  - [Adafruit Wii Nunchuck Breakout Adapter](https://www.berrybase.de/adafruit-wii-nunchuck-breakout-adapter) + [Nunchuk](https://www.amazon.de/dp/B0D4V5JC71)\n- **Wiring and Power Supply**\n- **Optional 3D-printed enclosures**  \n  - [LED Matrix Case](https://www.thingiverse.com/thing:6751325) or [the tilted version](https://www.thingiverse.com/thing:6781604)\n- **Optional Mesh and Diffuser**  \n  - [Mesh](https://www.thingiverse.com/thing:6751323)  \n  - [Satin-Finished Plexiglass](https://acrylglas-shop.com/plexiglas-gs-led-9h04-sc-black-white-hinterleuchtung-3-mm-staerke)\n\n## Software Requirements\n\n- [MicroPython](https://github.com/pimoroni/pimoroni-pico/releases/download/v1.23.0-1/pico-v1.23.0-1-pimoroni-micropython.uf2)\n- [Thonny IDE](https://thonny.org/)\n\n## Installation\n\n### 1. Set up your Microcontroller with MicroPython\n- Follow the instructions for your microcontroller to flash it with MicroPython.\n\n### 2. Connect the Hardware\n- Connect the Interstate 75 to the RGB LED Matrix using the Hub75 connector.\n- Connect the Nunchuck to the microcontroller.\n\n### 3. Upload the Code\n- Use Thonny (or another compatible tool) to copy the provided Python script to your microcontroller.\n\n## Usage\n\n### 1. Power Up\n- Ensure all connections are secure, then power up the microcontroller.\n\n### 2. Start the Game Selector\n- Once powered, the game selector interface will appear on the LED matrix.\n\n### 3. Select a Game\n- Use the joystick to navigate the menu and select a game. Press the joystick button to start.\n\n### 4. Play\n- Refer to the instructions below for controls on each game.\n\n### 5. Exit a Game\n- To exit a game and return to the menu, press both joystick buttons simultaneously.\n\n## Games\n\n### Simon\nA memory game where the player must recall and repeat a sequence of colors.\n- **Controls**: Use the joystick to select the flashed color. Repeat the sequence as it grows.\n\n### Asteroid\nA classic shooter where the goal is to destroy asteroids.\n- **Controls**: Use the joystick to rotate and move your ship. Press the button to shoot.\n\n### Snake\nGuide the snake to eat targets and grow in length, but avoid hitting the walls or yourself.\n- **Controls**: Use the joystick to control the snake's direction (UP, DOWN, LEFT, RIGHT).\n\n### Pong\nA classic two-player table tennis game, where you control a paddle to keep the ball in play.\n- **Controls**: Move the paddle up and down using the joystick.\n\n### Breakout\nBreak the bricks with the ball without letting it fall off the screen.\n- **Controls**: Use the joystick to move the paddle left and right. Break as many bricks as possible!\n\n### Qix\nClaim territory while avoiding enemies. Move strategically to win.\n- **Controls**: Move with the joystick to claim territory while avoiding enemy contact.  \n  - For a version written in Go using the Ebiten engine, [click here](https://github.com/SimonWaldherr/golang-examples/blob/master/non-std-lib/ebiten-qix.go).\n\n### Tetris\nStack blocks to form complete lines and score points.\n- **Controls**: Use the joystick to move and rotate the blocks. Speed them up by moving them down.\n\n### Maze\nA simple maze game\n\n## Fun\n\nEnjoy building and gaming on your very own DIY-Arcade-Machine! If you encounter any issues or need assistance, feel free to open an issue or reach out.\n\n**Happy Gaming!**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSimonWaldherr%2FDIY-Arcade-Machine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSimonWaldherr%2FDIY-Arcade-Machine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSimonWaldherr%2FDIY-Arcade-Machine/lists"}