Playzing! Video Game Console With Built-in Oven for Chicken Nuggets 🔥

by ohsqueezy in Circuits > Raspberry Pi

1138 Views, 4 Favorites, 0 Comments

Playzing! Video Game Console With Built-in Oven for Chicken Nuggets 🔥

Playzing_instructable_cover.png
Playzing_completed_build.jpg

A few years ago, I started selling chicken nuggets for a dollar each at gaming events. I sell each one with a random jelly bean inside. It's a game of chance 👍 where you get a different flavor every time you play. Despite not having any digital elements, I have called this a video game, and in the loosest definition of the term, I think buying and eating a chicken nugget can be considered a video game ✅. However, I've always wanted to take the video part to the next level.

After KFC announced the KFConsole, the unreleased gaming console which warms fried chicken, I started thinking more seriously about creating a chicken nugget game oven 🧠. At the end of last year, I decided to make one to bring to gaming and music festival MAGFest, a festival run by fans. I put my own retro arcade game on a Raspberry Pi, attached a simple controller, and drilled the Pi with a screen into a DASH brand mini oven. I brought it to the convention, set it up on a table in the lobby, and let people cook a chicken nugget while they played with the console. All things considered (mostly the 400°F oven), it went pretty smoothly, and I sold about 30 nuggets 🍾 in the brief time it was displayed.

Since then, I've unlocked the oven's full potential and made a few more complex recipes, such as an Egg McMuffin, and a banana filled with melted chocolate, all while simultaneously playing a video game. Personally 🙂, there's nothing more I'm asking for (to do, in general, in life), other than more recipes and games, which I plan to start working on as soon as I finish writing this Instructable.

I'm also working on making this the world's most successful open source hacker project 👑, with sales approaching the millions, despite being entirely, radically open and free to copy, modify, distribute, and sell, but I could work my bones to dust without achieving anything because the fruition of this vision ultimately relies on YOU. So make a Playzing, or ask me to make you one 🤙, and you'll have yourself an indoor campfire and be playing video games while cooking good, homemade cheese toast (or warming a bucket of KFC) with your friends.

Supplies

Note: This Instructable involves basic woodworking, electronics, soldering, and Linux admin. The instructions are presented with the intention that beginners will be able to complete all the steps, though some might require help from the internet if the topic is new. The parts involving soldering may be frustrating for beginners, so it is recommended to have multiple prototype boards in case things go awry. The parts with code are commands meant to be run one line at a time at the command line unless otherwise noted.

💽 Install Raspberry Pi Lite OS

pi_imager_home_screen.png

Grab some ☕. Install Raspberry Pi Lite OS on a micro SD card with at least 4MB. Using Raspberry Pi Imager is recommended.

📺 Connect Screen to Pi

Pi_mounted_behind_screen.png
First_boot.png

The Eviciv 5" LCD screen comes with detailed instructions for connecting the screen to a Raspberry Pi 3 or 4. It also comes with a custom ribbon cable for connecting HDMI and a custom jumper cable for connecting to power. Follow the instructions for setting up the screen using the custom cables (so the amount of wiring is reduced 💡), then use the supplied screws to mount the Raspberry Pi to the back of the screen. If using a custom screen instead, ideally the screen should be about 5" with mounting holes for the Pi on the back.

At this point, it's possible to test if the Pi boots to the command line. Connect a USB keyboard to the Raspberry Pi and plug it in to boot it. At the command line, run the configuration script.

sudo raspi-config

Disable the login prompt using

System Options -> Boot / Auto Login -> Console Autologin

🛝 Install the Game

20230221135249.png
20230221141124.png

iBitFit is the first game compatible with the Playzing entertainment device and gamepad. It is able to run using the KMS video driver and can read gamepad input through the Raspberry Pi GPIO interface. It supports an option to rotate the display, which is necessary for the vertically oriented screen.

The Playzing repository has a game launcher in development which is able to display a title logo at boot and launch iBitFit on any key press. First, clone the Playzing launcher repository. Then, from the root of that repository, clone iBitFit, and then run the launcher.

git clone --recursive https://open.shampoo.ooo/shampoo/playzing
cd playzing/games/
git clone https://open.shampoo.ooo/shampoo/ibitfit
cd ..
./Playzing.py --config ",display,rotated,yes"

Test the game using the left and right buttons on the USB keyboard.

Install an autorun script to make the game launcher start automatically at boot 🤖. Create a file at /etc/systemd/system/playzing.service (as superuser, using sudo nano /etc/systemd/system/playzing.service for example) with the following contents, substituting the correct user name for [USER].

[Unit]
Description=Game launcher for the Playzing entertainment device
After=multi-user.target

[Service]
ExecStart=/home/[USER]/playzing/Playzing --go-to-dir --config ",display,rotated,yes"
KillSignal=SIGINT
Restart=always
RestartSec=5s
TimeoutStartSec=5s

[Install]
WantedBy=default.target

Then, enable the the script

sudo systemctl enable playzing.service


Note: Now the launcher will open at startup and will restart itself if it ever is closed or crashes, and it can be controlled through systemd. Since it restarts automatically when quit with the usual quit button, there is also SHIFT + q to permanently quit and get back to the Raspberry Pi console.

🔘 Test Gamepad Buttons on Breadboard

Buttons_on_breadboard.jpg

Two buttons need to be connected to the Raspberry Pi's GPIO 17 and 27, and each also needs to connect to the Raspberry Pi's ground pin. The buttons can be connected with a regular breadboard for testing before being soldered into the prototype breadboard. The black wires in the photo are connected to ground (pin 9 on the Pi). The yellow wire is connected to GPIO 17 (also known as pin 11), and the orange wire is connected to GPIO 27 (also known as pin 13). Connect the wires as shown and test to make sure the buttons are able to control the game.

Note: The photo was taken at a later step. The screen and Pi do not need to be mounted.

🫠 Solder the Gamepad

Buttons_soldered.jpg
Gamepad_circuit_board_soldered.jpg
Gamepad_internal_wiring_glue.jpg

Buttons

Solder the buttons onto the prototype breadboard. The buttons should be centered vertically with a bit of horizontal space between them. Put them through the front of the breadboard, and solder each pin on the back.

Wires

The placement of the JST wires may depend on the breadboard, but it is recommended to connect each wire toward the bottom (closer to the player, shown at the bottom of the second photo) so that the sheathed parts of the wires can lay flat against the underside and emerge from the top (closer to the device). If preferred, the wires can be shortened and re-stripped so they fit without bending, making them easier to solder. The wires should be inserted on the underside and soldered at the top of the board.

Note: If using the same JST connector linked in the supplies, use the smaller section with exposed wires at one end to create the connection between the gamepad circuit and the Raspberry Pi. The other end of the smaller section can be plugged into the male end of the longer cable, which can then be plugged into the Raspberry Pi. Other types of connections are fine as long as one end can plug into the Raspberry Pi pin header.



Solder Bridges

Once the wires are soldered, connect them to the buttons using solder to create bridges between the pin holes on the underside of the board (the long lumps of solder in the second photo). The exact connections will depend on the board, but the ground wire should connect to both buttons (using any of the button pins), the middle wire should connect to the left button, and the last wire should connect to right button, making sure not to directly connect ground to either of the GPIO pins. In the photo, the white wire is ground, the green wire is GPIO 17, and the red wire is GPIO 27.

Connect to Pi

Hot glue the wires onto the underside of the board. This isn't shown in the photos, but the socket end of the three JST wires should be attached to the Raspberry Pi's GPIO pins 9, 11, and 13 (ground, GPIO 17, and GPIO 27). The gamepad buttons should be working to control the game.

📏 Widen Screen Mounting Holes

Screen_mounting_hole_widened.jpg

The mounting holes of the screen need to be widened slightly to fit the screws if using the #6 1-1/4" screws. Alternatively, it's possible that smaller screws can be used as long as they are long enough. To widen the screen's mounting holes, carefully drill a 7/64" drill bit into each hole.

➕ Mount the Screen on the Wood Blocks

Screen_mount_spacers.jpg
Wood_blocks_marked.jpg
Wood_blocks_pre_drilled.jpg
Screen_mounted_with_spacers.jpg

Put the screws through each hole and through the 3/4" spacers (in the photos, screw anchors are being used in place of the spacers).

Stand the wood blocks up with 2 1/4" between them, using the shorter side as the base, and put their backs against a straight surface to keep them aligned. Use the screen and screws to mark where holes for the screws should be pre-drilled. Carefully hold the screen up to the blocks with the screws sticking out and the top screws 7/8" from the top of the blocks. Either carefully press the screws into the wood or mark with a pencil where to drill the holes.

Note: Now would be a good time to jump to step 8 and attach the brackets so the screen can remain mounted, which is what I should have done originally.



Pre-drill shallow holes for the screen screws into the wood block using a thin drill bit. Then drlve the #6 1 1/4" screws through the spacers and into the wood blocks 🛤.

🪛 Attach Brackets

Mount_brackets.jpg

Place the brackets with one on the outer right side of the wood blocks, one on the inner right side, and two on the inner left side. Draw a mark with pencil where the screws will drill into the wood. Unscrew the screen from the blocks temporarily to create access for the drill and pre-drill holes into the wood using a thin drill bit (or if reading ahead, do this before mounting the screen). Drill the brackets in using 1/2" screws and reattach the screen.

Note: the brackets are arranged asymmetrically because the oven has hollow sections that get in the way of the mounting screws under the roof toward the edge.

🕳 Drill Mounting Holes in Oven Roof

Mount_holes_in_oven_roof.png

Place the entire mount on the roof of the oven and draw marks where the holes will be drilled into the roof for the brackets. The rightmost hole should be about 2 3/8" in from the top and 1 1/2" in from the right. The topmost hole should be about 2" in from the top and 3" in from the left. Drill holes through two layers of metal for the machine screws. Start with a thin bit and go up until the machine screws can be screwed into the holes. In the photos, there are only three holes because the lowest mark is above the oven's heating element, so I decided not to risk damaging the heating element with the drill 💸. If drilled carefully, or the mount position is adjusted, it may be possible to drill all four holes safely.

🎩 Mount the Pi and Screen to the Roof

Display_mounted_to_roof.jpg

Screw the 3/4" machine screws in through the top and tighten the nut by hand or with small pliers on the other end by reaching under the ceiling of the oven. The display should be securely attached with the Raspberry Pi and gamepad working.

🐚 Create the Gamepad Shell

Gamepad_router_outline.jpg
Gamepad_finished_shell.jpg

A piece of wood is used to create a shell for the gamepad. The suggested size 3 x 2-1/4 x 3/4" is a good portable size that fits well in the player's hands. However, any size is fine. It is recommended, but optional, to use a router to carve out an inset for the circuit board and attached wires in the middle of the bottom of the wood.

If using a router, trace along the gamepad circuit board where the wood will be carved. In the photo, there are extra marks where the entire wood block needed to be cut. Set the router depth to 1/8" and carve out the parts inside the outline.

Mount the circuit board to the wood by drilling 1/2" screws through the board's mount holes into the wood. If the board's holes are too small for the screws, widen the holes or drill new holes where there is no wiring. If any thin spacers are available, use those between the wood and circuit board to raise the circuit board and provide room for the wiring.

🚧 Add Gasket Tape to Wires for Heat Protection

Wire_screws.jpg
Wire_gasket_back.jpg
Wire_gasket_underside.jpg

Because the surface of the oven can get very hot, it is important to keep the plastic wire sheathing of the gamepad and Raspberry Pi power supply wires from touching the metal 🆖. The gamepad and power wires can be run down the back of the oven along gasket tape to prevent them from touching the oven surface, and screws can be drilled for guiding the wire along the back of the wood blocks.

Find a good position for the power and gamepad wires, and drill two 1/2" screws into the back of the wood blocks to hold them in position.

Cut two long strips of gasket tape for protecting the power and gamepad cables. Cut four shorter strips to tape the wires to the backing gasket.

On the underside of the toaster, tape the gamepad wire to a long strip using three short strips. Cut the long strip where the bottom opens so the oven's bottom can still be opened and cleaned (though that will require re-taping the last short strip).

👾 Let the Games Begin!

Playzing_prototype_pop_up-photo-by-Frank-DeMarco.jpg