Introduction: Das Blinken Bonken! an Arduino Ball Throwing Game Platform.

Picture of Das Blinken Bonken! an Arduino Ball Throwing Game Platform.

This is a fun and pretty easy project that I built as a Christmas present for my kid who loves throwing things. Watch the video to see what it can do.

It's built out of a regular Arduino UNO, pressure sensors made from velostat, and RGB LED strip, and 7 segment LED display.

Source code for the games is available on github.


Step 1: Gather Materials

Materials List:
  • 2'x2' sheet of 1/4 inch luan for the target segments
  • 2'x2' sheet of 3/4 inch faced plywood as a backing board.
  • a sheet of Pressure-Sensitive Conductive Sheet (Velostat/Linqstat) for the pressure sensors (
  • any old 5v arduino of your choosing (I used an uno)
  • a big 7 segment display (
  • a strip of 24 individually addressable RGB LEDs (
  • some solid core wire
  • 4 1K resistors
  • some thin foam or thick cloth to act as a shock absorber. (1/8" foam used in construction to separate 2by material from concrete available at any building supply works great)
  • fine metal mesh (like from a screen door, though should be metal, not plastic)
  • scotch tape
  • small brass screws and washers for attaching the target to the backer board
  • Female headers to make connectors to plug into the Arduino and the 7 segment LED display. (
  • 2 power supplies, one for the Arduino (9 or 12v) and one 5volt for the LED strip. (The arduino 5v vcc doesn't provide enough current for the LED strip).
  • Section of 2x2 pine or other wood for legs of the backer
  • Jigsaw for cutting out curves in the target backer board
  • Pull saw or other fine saw for cutting the target pieces
  • Hole-saw for cutting the center target piece
  • Hand saw or circular saw for cutting the backer board
  • Sand-paper or orbital sander
  • soldering iron
  • hot-glue gun
  • drill with various sized bits
  • Razor blade or utility knife and scissors for cutting foam shock absorber

Step 2: Measure and Cut the Target

Picture of Measure and Cut the Target

On the luan, draw a circle. (I used a mixing bowl as my template that happened to be a good size, about 16" in diameter).

Then find the center of the circle. I used this technique:

Next divide the circle into three equal parts like a Mercedes Benz logo. I used this technique:

Before you cut the pieces, mark them so you can get them back together as they originally were. Your cutting won't be perfect, but it all works fine if the pieces remain in the same relative order.

Now, use the jigsaw to cut out circle. It helps to clamp the circle on your work-surface and go slow.
Then use the hole-saw to cut out the center piece of the target.

Now, use the pull saw to cut the three other pieces of the target. Again, clamping the luan as you cut makes this much easier.

Finally use the sander to clean up the cut edges of the target.

Drill holes in the center of each target piece to a size slightly bigger than a single LED on your LED strip.

Step 3: Cut and Mark the Backer Board

Picture of Cut and Mark the Backer Board

Cut your 3/4" plywood to a size bigger than your target. I cut mine to 20"x20". Then I used a tin can as a template to round off the corners, and I used the jig-saw to cut those edges off. This makes it look nicer. Use the sander to clean up edges of the plywood.

Now use the same circle template to draw the target circle on the backer board. Remember not to do this on-center as a the LED strip goes across the top of the board. Place the target segments on the board in their final position separating each piece from the other by about 1/4". Poke a pencil through the LED holes to mark where the sensors will be attached to the backer board.

Finally, with the target pieces in place, drill pilot holes for the screws that will attach the pieces to the backer board, and then drill bigger holes in the target pieces (but not in the backer board) so that when the screws are in place the target pieces can depress easily and won't be hindered by the screws.

Step 4: Build and Install the Pressure Sensors

Picture of Build and Install the Pressure Sensors
To build the pressure sensor:
  1. cut 4 equal size squares of the velostat and 8 equal size squares of the wire mesh about 1/2" smaller than the velostat squares.
  2. cut 8 lengths of the solid core wire and strip about 4 inches off the end of each
  3. curl the stripped part of the 8 wires into a spiral.
  4. now make a sandwich that goes: mesh, curled wire, velostat, curled wire, mesh. It's easiest to do this one side at a time by placing the curled wire on top of the velostat, and the placing the mesh over that, fixing them all in place with scotch tape, then flipping it over and doing the same.
To install the sensors:
  1. Place them over the marked LED holes from the previous step
  2. For each sensor, mark a spot where you will drill a big hole for the sensor wires (as well as the LED strip leads) to pass through to the back of the board. For the center target piece make sure this mark isn't near the pilot holes you drilled from the previous step.
  3. Take the sensors off, and drill the holes.
  4. Warm up your glue gun, put the sensors back in place, this time passing the wires through the drilled holes. Use just a tiny bit of hot-glue on each corner of the pressure sensors to fix them to the backer board.

Step 5: Install Shock Absorber on Target

Picture of Install Shock Absorber on Target
The back of each of the target pieces has a thin layer of foam to spread out some of the impact of the balls on the pressure sensor and to protect the LEDs and their wires.
  1. Cut out foam pieces the same size as the target pieces.
  2. Hot glue them onto the back of the target pieces but don't get any glue near the center of the pieces where the LEDs go, nor along where you will route the LED wires toward where the leads will go through the hole in the backer board.
  3. Using a razor blade or utility knife, cut out channels in the foam for the LEDs and their wires.

Step 6: Make the LED Strip for the Target

Picture of Make the LED Strip for the Target
The LED strip consists of 24 LEDs. The first 20 in the strip act as the level bar, and the last 4 light up the center of the targets, but they all must be in a single strip for the purposes of the code that is addressing them. Thus you need to cut off the last four only to re-solder them back together with longer leads.
The hardest part about making the LED strip is thinking through routing the wires so you get the right length.

  1. Cut a length of the 24 LEDs from the strip and then cut off the last 4 LEDs individually. Make sure to cut right along the cut line on the strip.
  2. Make a long length of 3-wire by cutting about 4 feet of CAT-5 Ethernet cable, and unwinding one of the twisted pairs and then re-twisting one of those wires back into into another one of the twisted pairs to make a 3-wire.
  3. Plan the routing of the wires around the the target so you can prepare the right lengths of 3-wires. Don't forget to account for the fact that the wire goes through holes that are not on the center of target pieces because the sensors are in the way.
  4. Solder the 4 cut LEDs back together with segments of long 3-wires. Pay careful attention to the direction of the arrows on the LED strip to keep them matched and all going in the same direction.
  5. Now mark which LEDs go to which target piece and then cut the wires in the middle, but as you do, mark one side of the cut wires so you can maintain the directionality! You need to do this to be able to pass them through the holes in the backer board, and you will have to re-solder them yet again in a later step...
  6. Finally you can use a bit of hot glue to glue the LEDs in place for each target piece.

Step 7: Attach Target and LED Level Strip to Backer Board

Picture of Attach Target and LED Level Strip to Backer Board

You can now pass all the target LED wires through the same holes you drilled for the sensor wires in the backer board and screw the target pieces in place. Make sure the screws are not too tight or too lose. Just tight enough that you can press on them and feel the foam squishing. Later you can calibrate the tightness with the calibration routine.

Determine the position along the top of the backer board where you want the LED level strip to go. Measure it's length, and then drill holes for the leads on either end of the strip. Solder a length of the three wire to each end of the 20 led strip, and pass them through each of the holes, making sure that the base of the arrow end is nearest the side where you will be mounting the Arduino. Use the hot-glue gun to fix the level bar in place.

Step 8: Make and Install 7-Segment Backer

Picture of Make and Install 7-Segment Backer
I decided to have the 7 segment LED stick up above the backer board on it's own small board. I liked this aesthetically, but also because it means that 7 segment display could be flush with the backer board.

  1. Cut a piece of luan a little wider than the LED display, and a good 3 inches taller.
  2. Measure and drill out space for the female header from the back of the LED display to go through the board.
  3. Measure the overlap needed so the display will have a nice border of wood all around it.
  4. Drill pilot holes for the screws that will attach the LED display backer onto the back of the backer board and then fasten the board on the the backer board.
  5. Finally attach the LED display to the backer board by marking the holes in the corner and drilling pilot holes. In the pictures you can see that I put nails in place and thought I would use hot glue, but that didn't work because of the vibrations of the ball strikes. In the end I found some very small screws that worked better.

Step 9: Cut and Install Backer Board Legs

Picture of Cut and Install Backer Board Legs
  1. From the 2x2 stock, cut 4 segments about 2.5" long as the legs.
  2. Drill a hole in the center with a spade bit about half way through the leg.
  3. Now glue and screw the legs onto the corners of the the backer board.
  4. After the glue has dried, you can take out the screws, and then drill a pilot hole all the way through to the front of the backer board. Then, from the front you can use that hole for your mounting screws when you want to mount the whole blinken bonken on a wall!

Step 10: Wire It Up

Picture of Wire It Up
Now it's time to wire this mess together!
The pressure sensor wires
  1. Solder together one end of all four of the resistors to one lead that will go to ground.
  2. Cut 4 lengths of wire that will reach from where all the sensor wires come together to where you will mount the arduino.
  3. Solder each of these four wires, along with one side of the sensor wires, to each of the four resistors.
  4. Solder together all of the other wires from the sensor to a wire that will go to VCC
LED strip reunited
  1. re-solder the cut wires from target pieces LED strip, make sure to get the direction right once again!
  2. solder the 3-wire from the target pieces strip to the lead from the level bar strip to reunite the strip back into one 24 LED strip!
  1. Use female headers make a connectors to go between the 7 segment display and the Arduino
  2. Solder the four wires from the pressure sensor to a female header to connect to the analog input pins of the arduino
  3. Use female headers to create a power to the VCC and ground pins of the arduino.
Connect them all together according to the wiring diagram. Note that the one incorrect thing on the diagram is the power (5v) for the LED strip, which needs to go to a separate power source, not the 5v pin on the arduino.

Step 11: Get the Code Installed, Calibrate, and Enjoy!

Download and install the software on the arduino from the github repository:
You can do this by cloning the repository (if you are familiar with git) or by clicking the "Download zip" button.
The readme has pointers to the libraries you'll need to install. Kudos to the folks at Adafruit for great code that this project is built on.

If it's all installed and everything was hooked up correctly, when you power up the Arduino, you should see the word "AIM" spelled out on the display. Navigate the menu by pressing on the top two target segments until you see the display read "CAL" Now press the target center to activate calibration. This mode simply reads the amount of pressure being detected on the pressure pad you press on. You can use this mode to adjust the tightness of the screws so all the pads are roughly equal. I'm not sure if this makes much of a difference, but it seems cool!

To get back to the menu press the top two target segments simultaneously. For instructions on the game, watch the video in the introduction. The current games are: Aim, Speed, Fill, & Red vs. Blue

Please write me if you create any new games for the Blinken Bonken. Or submit a pull request on github and I'll include them!


zachthebassman (author)2017-11-29

Hey Zippy, it's me again. I was wondering, what version of the arduino IDE were you using when you built this project?

Nevermind. I did some looking around and found that the month you posted the youtube video (Early January 2014) the current version of the Arduino IDE was 1.0.5

zachthebassman made it! (author)2017-11-15

hey there zippy!

I've been working on a version of the blinken with a friend of mine. It's an awesome project! But we've been having some difficulty. It seems on our model the menu items are not changing with hits to the pads.

I've been running tests and have confirmed that the idependantly the LEDs, the display, and the pads work fine.

Right now the velostat is bare on top of the wooden platforms. We haven't added foam padding on top yet. Do you think that might contribute to our model being unable to cycle through the menu items?

Further, can you think of any other common mistakes we might have made connecting the pads to the circut?

Thanks a lot in advance! I know I'm not giving you much to work with here for troubleshooting.



Hi again Zippy,

So I've been doing some more testing and it seems I'm closing in on the problem I described above. I added in the following code to the main loop to help with debugging:


void loop() {

currentMillis = millis();

if(currentMillis - prevMillis >= 1000){

Serial.print("left 0: ");



Serial.print("right 1: ");



Serial.print("center 2: ");



Serial.print("bottom 3: ");




prevMillis = currentMillis;





Before running this debugging I verified that the pads I was testing were working properly with a simple Serial.println(analogRead()) script.

Anyway, the results in the serial monitor were pretty strange when I included the above code in DasBlinkenBonken.

This is what it looked like in the serial monitor:


left 0: 1023

right 1: 1023

center 2: 1023

bottom 3: 1023

left 0: 108

right 1: 452

center 2: 588

bottom 3: 746

left 0: 58

right 1: 15

center 2: 80

bottom 3: 126

left 0: 0

right 1: 0

center 2: 21

bottom 3: 29

left 0: 0

right 1: 0

center 2: 0

bottom 3: 0

left 0: 418

right 1: 317

center 2: 184

bottom 3: 43

left 0: 1008

right 1: 1023

center 2: 1011

bottom 3: 970


So pretty strange. It fluctuates repeatedly and regularly between 0 and 1023. It also sometimes gets held up between reports. The serial communication reports are supposed to be once a second, but it's sometimes way longer than that.

While I was testing, I only had the velostat pads plugged into the arduino. I was also using a dedicated 6vDC power supply for the velostat pads.

I also conducted tests using the 5v pin on the arduino, and received more strange results.


left 0: 6

right 1: 153

center 2: 386

bottom 3: 174

left 0: 6

right 1: 153

center 2: 391

bottom 3: 166

left 0: 6

right 1: 152

center 2: 393

bottom 3: 170

left 0: 6

right 1: 150

center 2: 391

bottom 3: 167

left 0: 6

right 1: 151

center 2: 395

bottom 3: 165


As you can see a lot of fluctuations. Some pads, like the left pad, will respond consistently to input. But the values when it's hit aren't much outside of it's regular fluctuations (4-5 flux; 5-6 hit).

Any chance you could shed some light on these difficulties? The fluctuations, or the strange time delays over serial communication? Help would really be appreciated :)

Anyway, sorry for the long message. And thanks for your time!


MikeH364 (author)2017-09-28

Hello again!!

If i could bother you for a solution to this it would help in the completion of your project.

Arduino: 1.7.11 (Windows 8.1), Board: "Arduino Uno"

In file included from Adafruit_SPITFT.cpp:17:0:

Adafruit_SPITFT.h:12:17: fatal error: SPI.h: No such file or directory

#include <SPI.h>


compilation terminated.

Error compiling.

This report would have more information with

"Show verbose output during compilation"

enabled in File > Preferences.

zippy314 (author)MikeH3642017-09-28

SPI was a standard library for arduino. I guess either you don't have it installed, or you have it deactivated. I'm not too sure, I haven't played with this for a while and I know the arduino ide has evolved over the last years... But I would guess it's because that library is missing for you.

MikeH364 (author)2017-04-18

Hi, I'm working on the build and notice in the diagram that you say later the only difference is the LED strip needing its own power supply. Is this diagram what you mean. As well will it's connection to the arduino and power be independent from the rest of the connections. So basically this overlapping your diagram?

zippy314 (author)MikeH3642017-04-18

I don't think I tied the LED strip second power supply back into the arduino. It goes just to the strip. If you look at:

you will see that there is a red/black pair coming from the big power cable that goes out the bottom, that doesn't go to the arduino, it just goes through the hole in the board. That's the two wires from the second power supply. The red and black coming out of the arduino go to the 7-Segment LED and the pads.

Good luck! Be sure to post an I-built-it link, as I'd love to see how yours turns out@

MikeH364 (author)2017-03-24

This is a great project and I'm about to spend some time this weekend putting one together. I have read through a couple times and keep wondering and I'm sorry if I missed it but is there any particular reason behind the brass screws?

zippy314 (author)MikeH3642017-03-24

Nope, it's just what I had lying around and I thought they looked pretty. In fact, countersunk screws would be better because the ball sometimes hits them and bounces in a weird way.

rmetcalfe (author)2016-09-14

Hi - This is an amazing project I followed all of the instructions, after uploading the code and resetting the arduino nothing is happening on the 7 segment display. I have tested it individually and all the led's are working.

Is there a button combination or method to start it or should the led display come on at boot.

Can you help ?

zippy314 (author)rmetcalfe2016-09-14

It should just come right on. It's possible that the libraries have changed a little since I wrote the code, so you should look at that and see if there's any other steps they've added.

rmetcalfe (author)zippy3142016-09-26

Thank you I will have a look through the code

Airness1 (author)2016-04-26

how would I program for 5 targets instead of 4 target?

mabreu francescoli (author)2014-04-20

lets gonna play, i like to through things too!

stumitch (author)2014-01-12

EXCELLENT! I will do this with my class. Your son did a great job presenting as well.

zippy314 (author)stumitch2014-01-14

Thanks! It was all on the first take too! I look forward to seeing your version and any mods you come up with.

dieferman (author)2014-01-12

Nicely Done !!!!
Thanks For Sharing !!!!
Only suggestion would be, to set a push-button in parallel with the "Back" and "Forward" ("Reset") Sensors at the top or sides of the board to make it easier to reset and change games (Specially if it is intended to be used by kids!)

zippy314 (author)dieferman2014-01-14

Yah, that's not a bad idea. At one point I had it mounted high on the wall, so then it was even harder because you had to be tall to reach the top two pads...

eleones (author)2014-01-12

Would it be difficult to add audio (or musical) responses for correct hits/misses, etc?

zippy314 (author)eleones2014-01-14

My original intention was to add a Wave Shield ( to the project for that purpose, but I didn't get around it. So it's not hard, just more to do...

joelongstreet (author)2014-01-13

wow, this is incredible. amazing work.

dtrotzjr (author)2014-01-12

that's awesome! Thank you for sharing!

amaituino (author)2014-01-12

cool project :) loved the menu

jxrgen (author)2014-01-12

This is a fantastic project. Thanks a lot for sharing it!

Penolopy Bulnick (author)2014-01-11

This is awesome! Nicely done, I could throw balls at that for hours!


Quadrat (author)2014-01-09

I live in Poland, write where you live, if shipping does not kill my wallet, I will cut off those parts and send them to you by mail, I need only the dimensions and where the holes are.

Quadrat (author)2014-01-08

i've got plenty laing round so that why i have thought of it

zippy314 (author)Quadrat2014-01-09

Where do you get it?

Quadrat (author)2014-01-08

Awesome project. my suggestion if i may would be:using sandpaper plexi panels instead of the plywood, that way the whole panel would lite up for better visual effect.
but anyway it is great idea for kids and adults to have some workout.

zippy314 (author)Quadrat2014-01-08

Yah, that's a great idea. I did think of that, just didn't have any at hand.

About This Instructable




Bio: metacurrency geek
More by zippy314:Magpi: The Micro Arduino Gaming Platform InterfaceDas Blinken Bonken! An arduino ball throwing game platform.
Add instructable to: