Introduction: The Iconic Whack-a-Mole Has GONE WILD

Whack a mole, a worldwide popular arcade game, is truly a classic. However, ever since the video game consoles, PC games, and VR technology emerge onto the market, people seem to turn their attention towards indoor games - without having to visit an arcade club. Arcade machines were soon ruled out of the popular market; people could barely find one in the streets of Taipei. In order to revive my childhood memories, I began a project on combining Arduino technology with the casual, old-fashioned whack a mole game techniques.

Three main goals for this product:

1. Portable.

I want this product to be able to at least match the portability (weight) of the iconic Nintendo Switch, which is known for its convenience - players could carry this device and set up a game at virtually anywhere. I've packed my machine with an USB cable, just plug it into a power source and enjoy the game!

2. Easy to operate.

4 signaling LED light bulbs, in correspond to 4 buttons. 1 hammer. The same exciting experience, on a much smaller platform.

3. Sturdy.

Every single component and cable are secured into place. Unless you bring it to a chainsaw, this product is guaranteed super sturdy and unbreakable.


Here is a full list of all the materials I've used to create this device.

  1. One big piece of thick cardboard (minimum size 60 x 45 cm)
  2. One Arduino Leonardo board (recommended)
  3. Breadboard, for connecting wires and resistors.
  4. Four buttons (diameter 3cm, stepless)
  5. Nine LED light bulbs, 4 for signaling, 5 for scoring (2 different colors, red and yellow work the best)
  6. Four plastic dropping bottles, you can find these in stationery stores
  7. One buzzer, be careful with these, as they could break from the connecting spot easily.
  8. Resistors for the buttons and the LEDs. LED resistor color scheme: gray, red, black, gold. Button resistor color scheme: brown, black, indigo, pink
  9. Dupont wires (M-M, F-M)
  10. 10 pin headers, for connecting the buttons and buzzer
  11. Jumper wires (optional)
  12. One EVA adhesive glue gun (2 tubes of adhesives)
  13. One paper cutter
  14. One compass, for marking out buttons and their positions
  15. 30cm ruler, for drawing lines and assisting in the process of cutting.
  16. 3M adhesive clay, for stabilizing components
  17. 4 labeling stickers (yeah, you know, stick 'em on to make the buttons prettier)
  18. Sheets of colored paper & acrylic paint (decorate the device in your own way!)

If you live in Taiwan or mainland China, then these materials should be fairly easy to obtain. Visit icShop, Taobao, or any local shops to buy these (at a low price, too). However, if you live in other countries, then I recommend to either buy through the Arduino Official Store or other web stores (I'm not familiar with these, but they save your time, cuz visiting one of the stores can take you 1~2 hours by car).

Step 1: Let's Make the Outer Casing!

Here is a demonstration of exactly how to make the external structures of the device.

First of all, take measurements for the Arduino board and the breadboard, just to make sure everything fits in place once you assemble the components. Once you've done measuring the components, start by drawing the outlines of the panels on the cardboard using a ruler.

Measurements of the upper panels: 21 x10, 23 x 4 (two separate panels)

Measurements of the lower panel: 23 cm x 21 cm

Measurements of the side panels: 7cm (height), 19cm (length), 14cm (side)

Then, cut them out with a paper cutter. Take your time, don't rush. Placing the ruler on one side of the blade will assist you in cutting a perfect straight line.

*Do be careful when cutting out the panels, because if you push too hard on the cardboard, the panels will end up looking really ugly.

Here's the entire cutting process in hyper lapse:

Once you've done cutting out the upper panel, take a compass and trace out the position of the buttons. Make sure to leave out space for LED housing. Apply acrylic colors to the upper panel, give it a shiny new look! Then, carefully pierce the buttons through the cut-outs (like the ones in the picture above) until they're firmly fixed on the panel.

For the scoring system I have 5 LEDs as signals, each represents 6 points. However, this part requires a broader, more precise cut-out through the middle, therefore I would have to use the laser cut machine as a help (the machine cannot cut cardboard, therefore I replaced this part of the upper board with a 3mm wooden plate). Evenly mark out the position of the 5 LEDs on the back of the panel, then also apply acrylic paint onto the front.

For the other panels (bottom panel and side panels) I wrapped colored paper around them, just to give 'em a better look as well as a smoother feel. Cut out colored paper in correspond to the size of the panels. Then, use double sided tape to stick them onto the panels, firm and fit.

With all of the above finished, let's move on to wiring and coding.

Step 2: Connecting Wires and Uploading the Code

Above is a picture guide on how to connect the wires to the right places (in correspond to my code). Click file to download the full code and upload it to your Arduino development board.

Connect the 4 red LEDs to pin number 2, 3, 4, and 5. Connect the 4 buttons to pin number 8, 9, 10, and 11. For the buzzer the pin number is 7. And for the scoring system I placed them on the Analog pins A1~A5 (since Analog pins work the same as Digital pins).

I used the breadboard as the base of all my connections, to avoid the tedious process of soldering the components together. Make sure you use the right resistors for the buttons and the LEDS (220 Ohm for LEDs, 10k Ohm for the buttons). Try to not mess up the colors of the wires (as in, for example, use red Dupont wires for positive charges, and black Dupont wires for negative charges), or otherwise it will be hard to debug them if anything goes wrong.

Double check if the wires are in place. Download the code from above and give it a test run.

Step 3: Components, Assemble!

Now that all the components of this device are set, let's put 'em together. Take out the 4 plastic drop bottles and cut them in half (see picture for help). Put them away for now, because you'll have to put the LEDs in place before you secure the housing.

Poke a hole (beside the buttons) through the upper panel (cardboard) using a needle or a screwdriver. Then, carefully install the red LED through the hole, with adhesive clay as support. Repeat this step for the other 3 red LEDs.

Apply hot adhesives to the drop bottles we've previously cut in half, and glue them to the upper panel (they work like hats, covering up the LEDs). The upper panel is now finished.

Again apply hot adhesives to the side panels, and glue them to the bottom panel accordingly. Find a friend / assistant who will hold onto the panels, and keep on gluing them together. *Before the hot glue dries up, do not let go of your hands, or otherwise the outer shell may not look as neat.

Once the panels dry up and have taken shape, place the Arduino board and the breadboard into the box. Put some adhesive clay so they wouldn't move around. Place the orange LEDs on the marked positions of the laser cut wooden panel (yes, use adhesive clay and secure them). Use adhesive clay (again...) to stick the buzzer right beneath the place where the scoring system sits (see picture above). Then, secure the wooden panel (the orange LEDs can easily fall off during this process, so you might wanna apply a layer of tape, or just hope that they won't fall XD).

Do another test run, and check if the wires are connected to the right pin numbers. If the LEDs malfunction, then it's either because the Dupont wires are off, or because the signal from the motherboard failed to communicate with the LEDs. All set, close the upper panel ( I didn't glue this part on, because I thought it will be more convenient to fix broken / bugging components if there's an adjustable panel), and you're done!

Step 4: The Finished Product

Hooray! We've successfully made a portable Whack a Mole game! Invite your friends to play, beat them to high score! I'm sure you'll enjoy it as much as I do.

You can also print out some images relating "whack a mole" from the web, and stick them onto the sides of the device as decorations. The PDF file below is my choice of images.

Also, if you have any advice or questions, please do leave them in the comment section below, thanks!