กลับไปหน้ารวมไฟล์
control-pie-face-wirelessly-with-your-phone-018e44-en.md

Engineering Deception: The Hacked Pie Face Prank

Pranks are often about timing, and the Hacked Pie Face project is the ultimate lesson in precision mechanical timing and wireless control. By reverse-engineering the internal gear-and-wedge mechanism of the popular "Pie Face" game, this project replaces random luck with a calculated, smartphone-controlled trigger, all while maintaining the game's original physical appearance.

Mechanical Sabotage: Bypassing the Gear System

The original Pie Face game relies on a series of random wedges on a central gear that intermittently push an idler upwards to release the spring-loaded throwing arm.

  • Wedge Removal: The hacker permanently disables the game's built-in "randomness" by sanding down the triggering wedges on the main gear.
  • High-Torque Actuation: A standard micro-servo lacked the strength to overcome the internal spring resistance. Instead, a 20 kg high-torque servo is installed.
  • The Fishing Line Linkage: To keep the footprint small and the noise down, the servo is connected to the idler via a high-test fishing line routed through an internal eyebolt. This provides a "silent" trigger that doesn't alert the victim.

Wireless Command and Control Stack

The project bridges the gap between mechanical hacking and mobile software:

  • HC-05 Bluetooth Interface: An Arduino Nano acts as the onboard brain, listening for control signals from the Serial Bluetooth Terminal app.
  • Conditional Launch Logic: To ensure the pie is thrown at the exact moment the victim turns the handle, the system includes a Limit Switch. The Arduino waits for two conditions: a "Launch Enabled" command from the pilot's phone, and a physical click from the limit switch indicating a handle turn.
  • The Delayed Strike: A sophisticated software feature allows the pilot to set a "Delay Count." For example, the pilot can command the game to wait precisely 5 turns before triggering, allowing them time to switch to their phone's camera app to capture the moment.

V2 Design Evolution: The Belly Pan

The 2.0 version of the hack introduces a central belly pan that houses the 5V USB battery pack and the Arduino/Servo assembly. This design improvement ensures that the two halves of the game can be separated for maintenance without snapping the delicate fishing line linkage, making the device reliable for multiple prank sessions across different parties or events.

You can view the basics of how my machine works, and some clips of it in action, in the video below.

This video comprises a holistic overview of my project

In this article I will explain in more detail the process through which I arrived at my current design. For the sake of clarity, some concepts found in the video will also be covered in this article.

The Idea

When I first had the idea to hack Pie Face, I had several design goals in mind:

  • The outward appearance of the game should remain unchanged.
  • The game should shouldn't create a lot of additional noise (i.e. no loud whirring noises from motors or servos.)
  • The game should interface with a mobile phone wirelessly.

In short, I wanted to have complete control over the throwing mechanism of the game, without anyone else noticing. A daunting task to say the least. The main problem being packing everything into a very limited volume.

Reverse Engineering

In order to understand how to hack Pie Face, I first needed to understand how the mechanics of the game worked. And that required some reverse engineering.

This module contains all of the mechanics of Pie Face. As you can see there's a lot going on under the hood of this game. The lever on the right in figures 1 and 2 is what the purple throwing arm attaches to, and the large gear in the center of figure 2 is what is rotated by the knob on the side of the game. If you look closely at figure 2, you can see tiny wedges scattered around the inner track of the gear. As you'll see in the following animation, these wedges are the key element that makes the game run.

Figure 4: Animation illustrating how Pie Face works with only 2 wedges

This animation represents how the mechanics of Pie Face operate. The large gear is turned by the user, once the idler(shown in red) is forced upwards by one of the wedges, the throwing arm(shown in purple) is released. There are only 2 wedges in this animation for the sake of simplicity. As you can see in figure 2, the actual gear has many more wedges scattered randomly around its inner track. This means that Pie Faceisn’t random at all! It’s just designed to feel like it is. In reality, there is a defined pattern for when the arm will be triggered.

Implementation

Figure 5: Animation illustrating how the mechanics of my hacked version of the game work

I hacked the game by doing the following. I took apart the mechanics module, sanded down the triggering wedges, and drilled a hole in the idler. Then I attached a fishing line to the idler, routed the line through an eyebolt, then attached the other end to a servo. Now, the throwing arm isn't ever triggered unless the servo pulls down on the fishing line.

I won't go into detail on why I chose this method to hack the game over others, as that was covered in the video. But I will say that this method willnotworkwithamicro-servo. The torque required to overcome the force of the idler is much higher than a micro-servo can handle. I used a servo with an output torque of 20 kg, and that has worked great so far.

On another note, I was initially concerned that the amount of noise the servo made would tip people off. And after initial testing, I discovered that you can hear the servo when it's turning inside the game, but the sound is so brief that it doesn't raise suspicion.

As far as electronics go, I used an HC-05 Bluetooth module to establish communication between an Arduino Nano, and an app on my phone called Serial Bluetooth Terminal. Many different apps exist for interfacing with Bluetooth modules and an Arduino, but this was the one that worked best for me. Connecting to my Bluetooth module with this app gives me direct access to the Nano’s serial port, which allows for extremely simple commands to be used to communicate with the Nano.

V0.5

Figure 6: ESP8266 WiFi Arduino

During the early stages of development, I used an ESP8266 WiFi Arduino to establish communication between the phone and the Pie Face game. This method worked fine, but I quickly abandoned this approach in favor of Bluetooth, which would allow me to connect to the game even if there wasn't a Wifi network available.

V1

Figure 7: First attempt at hacking Pie Face

Figure 8: Power supply for V1

My first iteration was really rough around the edges. All the connections were hot glued and taped, and the power supply was a AA battery bank I salvaged from an old RC car (figure 8.)

In order to ensure the arm was triggered at the exact moment the user turns the knob (as it does in the original game), I hot glued a limit switch right beneath a protrusion that oscillates back and forth when the central gear is rotated (figures 9-10.) I then programmed the Arduino Nano to wait for both a trigger from my phone, and a trigger from the limit switch. Only when both of these conditions are met does it launch the arm.

I installed the eyebolt for the fishing line to run through right beneath the chin rest (Figures 10-11.) Technically this modifies the outward appearance of the game, but it hides underneath the chin rest quite nicely, and no one would suspect anything if they saw the end of a bolt on the game anyway.

After I took the V1 out for a little test drive (the outdoor game of Pie Face in the video), I decided to rebuild my V1 and make several design improvements.

V2

The V2 was a huge improvement over the V1. I made two main modifications to my original design when I build the V2, namely:

  • I mounted all of the electronics to a central belly pan which attached to the mechanics module (Figure 13.) I did this to allow the two halves of the game to separate completely, which was not possible with the V1 due to the fishing line tying the two halves together due to the way it was attached. I mounted the belly pan by screwing it into standoffs I hot glued to the mechanics module.
  • I replaced the clunky AA battery pack with a low profile 5V USB battery pack (figures 14-16.) This was a much easier to use and cheaper solution to powering the game, as I didn't have to buy new batteries every time I wanted to use it.

Something that is really neat about the software I wrote for my hacked version of Pie Face, is that it utilizes the limit switch to allow me to specify the number of turns I want the game to wait before activating the arm. It's basically a delayed activation feature. This allows me to send the character "5" to the Arduino Nano from my phone (this sets the delay count to 5 turns), then go to the camera app on my phone, and record my friends as they get hit!

All in all the V2 has less potential points of failure, and it worked like a charm in field testing (the indoor game of Pie Face in the overview video).

Final Thoughts and Possible Improvements

If you decide you want to make your own hacked Pie Face game, make sure your power supply has a decent capacity. I mention this because in order for the outward appearance of the game to remain unchanged, I didn't install any kind of power switch. This means the unit must be powered on when assembled, and the battery has to last from the time it's assembled, to the time you start to play the game. The USB battery pack I used has a rating of 2600 mAh, and it can power the game for up to 6 hours when it isn't in use (i.e. it won't power the game for 6 hours while you are playing it, as the servo moving would drain the battery much more quickly.)

All in all, I'm very pleased with the way this project turned out. It was a great engineering challenge, I had a blast doing it, my friends didn't suspect a thing, and I was able to fulfill all my original design criteria:

  • The outward appearance of my hacked game remains virtually unchanged.
  • It doesn't create a suspicious amount of noise.
  • It interfaces with my Android phone wirelessly

If I ever decide to make a V3, I will probably:

  • 3D Print the belly pan rather than using wood.
  • Find an easier way to tension the fishing line. In its current state, it is nearly impossible to fit my fingers in far enough to do so.
  • Add a switch to the RX and TX lines connected to the Bluetooth module. The Arduino doesn't accept software changes when these serial communication lines are in use. In order to upload new software, I have to unplug the Bluetooth module, upload my code, then plug the module back in. A switch would make this process much easier.

Additional images of the V2 are shown above.

Comments, questions, and criticism are all welcome!

ข้อมูล Frontmatter ดั้งเดิม

title: "Control Pie Face Wirelessly with Your Phone!"
description: "I hacked a Pie Face game to give me complete control over if and when the pie is thrown."
author: "HarrisonMcIntyre"
category: "Gadgets, Games & Toys"
tags:
  - "embedded"
  - "prank"
  - "internet of things"
views: 3646
likes: 3
price: 2450
difficulty: "Intermediate"
components:
  - "1x Pie Face"
  - "1x Arduino Nano R3"
  - "1x Hot glue gun (generic)"
  - "1x Scrap Wood"
  - "1x 5v USB Battery Pack"
  - "1x Eyebolt"
  - "1x Fishing Line"
  - "1x Limit Switch, 5 A"
  - "1x Sandpaper"
  - "1x Multitool, Screwdriver"
  - "1x Jig Saw"
  - "2x Accessory, Screw"
  - "4x Standoff, Nickel Plated"
  - "7x Standard Terminal Block, Lever-Nuts"
  - "1x Servo Mounting Bracket"
  - "12x Machine Screw, M3"
  - "1x Soldering iron (generic)"
  - "1x Micro-USB to USB Cable (Generic)"
  - "1x HC-05 Bluetooth Module"
  - "1x Arduino Nano Terminal Adapter"
  - "1x 20 kg Servo"
  - "1x USB-A to Mini-USB Cable"
  - "2x Cable Tie, Belt Ty™ In Line"
  - "7x Small Washers"
  - "1x Jumper wires (generic)"
  - "1x Solder Wire, Lead Free"
  - "1x Tape, Electrical"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x Serial Bluetooth Terminal"
downloadableFiles: []
documentationLinks: []
passwordHash: "20aa9e103763fd9edc5ce98681c05a39f31cc8cdd7ff76c16deede046444795b"
encryptedPayload: "U2FsdGVkX1+dMkpjh85WpyOzb2qdjd+yK+XjU4Ls46auXuj2JGqQD6CUr+Pun8dx/xbpgBAbTaLIsbVEW2YF9pJIsiDUr4tByZHzSs/epYAszQ4fHckDjSLAM2jYAWJ9G4kmmqLZnD8H4ur77MFQ+A=="
seoDescription: "Hack a Pie Face game for wireless control via your phone. Take full command of when the pie is thrown in this fun project."
videoLinks:
  - "https://www.youtube.com/embed/altZYLuHFco"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/control-pie-face-wirelessly-with-your-phone-018e44_cover.gif"
lang: "en"