Booby-Trapped Jumping Keyboard Prank

Introduction: Booby-Trapped Jumping Keyboard Prank

About: Phidgets make your ideas real. Reliable sensors, motor controllers, relays and more connect computers and technology to the real world. Applications include robotics, data acquisition, monitoring, automation...

This project is a super easy non destructive prank that can be played on a Co-worker. It causes the keyboard to jump up and down when certain booby-trapped keys are pressed, and requires no irreversible modifications to the keyboard itself. Currently it is only programmed to work on Windows, although the hardware is capable of being run on both Mac and Linux.

Step 1: Materials

You'll need some physical materials and software before getting started:


  • Your victim's keyboard
  • Phidget AdvancedServo 8-Motor controller (1061_1)
  • 2 x Small servos, such as the SM-S2313M, with included lever arms
  • Double sided tape
  • A power supply that delivers between 6 V and 15 V
  • A mini-B USB Cable


Step 2: Install the Servos on the Keyboard

You'll want to make sure that the servos are attached firmly to the underside of the keyboard. We did this with foam type double sided tape. Other adhesives, including single sided tape are also options if you don't have double sided tape on hand.

We made sure to install the servos as far apart as possible while ensuring it was still possible for the cables to reach back to the Phidgets servo controller. You'll also want to ensure that the servos are as far back towards the rear edge of the keyboard as you can get them. This will add additional stability and help prevent the victim of your prank from noticing that something is wrong with the keyboard before pressing a booby-trapped key.

Step 3: Find Out How You'll Hide the Servo Wires and Phidget Controller

Finding out how to hide the electronics is crucial to ensuring the prank isn't discovered before it has a chance to work. We happened to find a slight gap in the sections of the desk directly below where the keyboard normally sits, and used this to hide the Phidgets servo controller on the underside of the desk. If your intended victim uses a keyboard tray it should also be possible to covertly sneak the servo wires behind the keyboard to the underside of the tray where all the other electronics can be hidden.

Ultimately This step depends on the type of keyboard being used, and the layout of desk. It'll be up to you as the prankster to use some ingenuity to figure out the best solution for each individual situation.

Step 4: Connect the Servos to the Phidget Controller

Connecting the servos to the Phidget servo controller is as simple as ensuring the white, red, and black wires are arranged in the right order, and then plugging the connector into the rows labeled 0 and 1. Next you'll want to connect the USB and power cables, then secure the board to the underside of the desk if you've decided to hide it in a similar way. We accomplished this with some painters tape.

Step 5: Get the Software Working

Now we'll want run the python script that listens for the keystrokes and moves the servos. It consists of a single python file with a ".pyw" extension and can be found in the zip file below. This ensures the python script runs without a console window, and makes it extra stealthy. Before running the python script it will be necessary to double check that the target computer has the following software installed on it:

The first three get python up and running with the modules necessary for covertly listening for keyboard events, while the second two are necessary to control the Phidget with python.

After this is complete, running the script should be a simple as double clicking the "AprilFools.pyw" file. You may hear some servo noises as the servos move into their initial positions.

We also encourage you to experiment with the keys that are booby-trapped. We chose A,E,T, and I since they are used often. If you want the servos to trigger less frequently, then try using other letters such as Z,Q, or even keys like F1 through F12.

Step 6: Calibrating the Lever Arms on the Servos

Finally, it's necessary to install the lever arms. This is the part that actually lifts the keyboard when the servo moves. To install the lever arms in the correct position you'll want to run the python script, then hit the booby trapped keys a few times to see which servo moves, and how it moves back and forth. If you haven't changed the python source code, then the keys to hit should be A and T for one servo and E and I for the other.

Once you've figured out which keys control each servo hit the key a couple more times to see how the servo rotates by 90 degrees. We want to install the lever arm so that it points to the rear of the keyboard at one extent and perpendicular to the keyboard at the other extent. For the servo depicted below, this means that when the servo has rotated 90 degrees clockwise we want to install the arm pointing towards the backside of the keyboard. Pushing the same key again should cause it to rotate back 90 degrees counter clockwise so that the keyboard will be lifted up if oriented normally. The other servo will be calibrated almost exactly the same way, but the rotations will be mirrored.

Note: Make sure the servo arms do not press up against any surfaces of the keyboard in either position, or they may give off a whining noise that will give away their existance before the prank has a chance to work.

Step 7: Wait for the Surprise

And that's it! Flip the keyboard around to be oriented normally, and test it out with a few sentences or by simply hitting they keys you know to be booby trapped. You can now watch and wait for your co-worker to come back and fall for it.

To shut down the prank they'll need to either unplug the board or end the python process!

April Fool's Contest

Grand Prize in the
April Fool's Contest

Be the First to Share


    • Exercise Speed Challenge

      Exercise Speed Challenge
    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020

    12 Discussions