You're shopping cart is empty

View the range on our website and add products to your shopping cart.

27 July 2023

How To Create Your Own DIY Moving Target On A Budget

At Bunker 501 we designed a moving practice target to stay in shape and help against the boredom in our current situation.

The best part?

You can make one too for around €20!

The main components of this target are an Arduino microprocessor and 6 RC Servos.

What do you need?

  • A pc to program the Arduino (we made the Arduino code for you, so no worries).
  • The Arduino IDE (a program for your pc to put the code on the Arduino)
  • An Arduino UNO (we bought this one)
  • 6 x sg90 Servos or more powerful ones if you have heavier targets. (we bought these)
  • 6 x clothespin to hold the targets. (we used moms)
  • Some jumper wires to connect it al. (we used these)
  • 1 x USB wall adapter for the Arduino Uno
  • 1 x 5V 1 A power source for the servo’s (old USB charger for example)
  • tie-wraps, glue, duct tape (whatever you got)
  • some basic tools like a drill and some drill bits
  • a wooden plank to mount it all.
  • A Airsoft gun. (ffind one here)

How does it work?

The Arduino chooses a random servo to move a target.

After a second and a half, the servo moves back, hiding the card and half a second later the next servo shows its target.

How to build it?

First, you need to mount the clothespins to the Servos.

You can use tie-wraps, hot glue or maybe even some steel wire.

See the pictures below. Note the difference in mounting the clothespins between the left and the right row of Servos.

The Servos and Arduino are mounted on the back of the wooden plank. Use Glue, tie-wraps, duct tape, whatever you got. See the following picture:

Make sure the Servos can rotate freely and the arm or clothespin doesn’t hit the wood.

The vertical distance between the Servos should be a little more than the size of the target, so the targets don’t hit each other. It’s best to mount the Servos in such a way that you can’t hit the clothespin with your replica.

The Arduino is mounted in the middle with some small screws and plastic spacers to keep it off the wood. (Tip: Use some small tubing like aquarium tube for spacers)

Our Servos have three connections:

  • RED = Positive
  • BROWN = Negative/ground
  • YELLOW = Signal

The positive and negative wires should be connected to the power source (not the Arduino). Only the signal wires and one ground wire should be connected to the Arduino. See the pictures below for the pins we used on the Arduino.s

As you can see, the signal wires go to 3, 5, 6 and 9, 10, 11. The left (seen from the back) row of Servos should be connected to wires 3, 5 and 6. The right side (seen from the back) goes to pin 9, 10 and 11.

After you connected the signal wires you can place the power wires for the Servos.


  • 6 positive wires should go to the red wires on the Servos.
  • 7 black ground wires, 6 to the servo’s 1 to the Arduino.

See the schematics below: The signal wires are green in the schematic, ground wires are black and power wires are red.

Programming the Arduino

The last thing you need to do is program the Arduino. You can do this with the Arduino IDE (Integrated Development Environment) which you can download here.

After you have downloaded the program, copy the code below and save the file. There are plenty of good sources on youtube to learn how to use the Arduino IDE.

/* Random Target By Dadudos Made for Bunker501 This code is in the public domain. Please practice safely! Last edit 31/3/2021 By Dadudos */ #include Servo myservo_1; Servo myservo_2; Servo myservo_3; Servo myservo_4; Servo myservo_5; Servo myservo_6; int pos = 0; long servonummer; void setup() { myservo_1.attach(3); myservo_2.attach(5); myservo_3.attach(6); myservo_4.attach(9); myservo_5.attach(10); myservo_6.attach(11); myservo_1.write(90); delay(500); myservo_2.write(90); delay(500); myservo_3.write(90); delay(500); myservo_4.write(90); delay(500); myservo_5.write(90); delay(500); myservo_6.write(90); delay(2500); } void loop() { servonummer = random(0, 7); if (servonummer == 1) { myservo_1.write(0); delay(1500); myservo_1.write(90); delay(500); } else if (servonummer == 2) { myservo_2.write(0); delay(1500); myservo_2.write(90); delay(500); } else if (servonummer == 3) { myservo_3.write(0); delay(1500); myservo_3.write(90); delay(500); } else if (servonummer == 4) { myservo_4.write(180); delay(1500); myservo_4.write(90); delay(500); } else if (servonummer == 5) { myservo_5.write(180); delay(1500); myservo_5.write(90); delay(500); } else if (servonummer == 6) { myservo_6.write(180); delay(1500); myservo_6.write(90); delay(500); } }

I hope you enjoyed my guide on creating your own DIY moving target. Of course, we can take things much further but this was put together on a budget and as fast as possible.

What do you think about our neat solution? Will you be building your own? Let us know!