Prop Bomb




Introduction: Prop Bomb

About: i like things that blink and buzz

My friend and i built this prop for airsoft/paintball matches.  Its sort of like capture the flag only disarm the "bomb".
How it works is there is a predetermined time limit (which u can change in the code) and the opposing team has that much time to find the code and the bomb and disarm it.  How they find the code is up to you... capture a person? sure!  Find it hidden somewhere? sure! or whatever!  When the bomb is turned on it asks for a code and you can enter in any four number combo and that is the disarm code for that round.  If the person puts in the wrong code it will add 1min 30sec to the time when the time runs out? BOOM! well thats what it says on the screen and it makes a funky noise = ]  This is version 1.0 hopefully in the future we will add wires to unplug to disarm it and some other neat things but for now this is perfect and works well for what we want!  I hope you enjoy the instructable!

Step 1: Supplies

You will need the following electronic components:

1 Arduino                          (We use duemilanove and you can buy these everywhere online)
1 Arduino Proto-Shield  (or if you want just a breadboard or protoboard)
1 LCD Screen 16x2       ( we used this one from sparkfun!
1 Numeric KeyPad        ( we used another one from sparkfun!
1 Potentiometer             ( we used a 50k i believe! bought from raidoshack awhile ago)
1 8Ohm Speaker           ( tore one out of an old toy, but you can find them EVERYWHERE!)
1 Green LED 
1 Red LED
4 1k Ohm resistors

Other Materials:

Some sort of case ( we found ours at a thrift store but i think they sell them at walmart)
a chunk of wood   ( this is to bring the arduino off of the bottom of the case and up towards the top)
Screws                    (to attach the arduino to the chunk of wood)
Heat shrink tubing

Tools you'll need:

Soldering Iron
Wire     (we used alot of old computer cable so it would stay kinda together)
Wire Cutters
Hot Glue Gun
Hot Glue
Screw driver

Step 2: Cutting Up Your Box

This is basically up to you how you want the layout to be ... you could have everything inside so when u open it up u can see all of the nice hardware and it looks more low budget (as if this isn't low budget enough!) or you can make it clean where you only see the keypad and such.... anyways its all up to you its really just a style thing.
We cut the square out for the lcd screen and then drilled the holes for the LEDS, then cut out the keypad and we just eyed everything as far as positioning. We did all our cutting with a dremel and razor blade.

We then cut the slots in the back:  First we cut a hole for the potentiometer to fit through, then we cut another hole in the back just for the power adapter hole and then also a hole for the USB cable just for programming if we needed to we wouldn't have to take the arduino out.
all of these holes and such are your call for style so just do a layout of everything until you get it how you like it then make the cuts.

Step 3: Placing the Arduino

This again will depend on your case height and such as you can see here we had to use a piece of scrap wood to pull the arduino off of the case.  We glued the wood to the case and then screwed the arduino into the wood.  You'll notice the way the wires sag in this photo ... thats a good thing you'll want them to be longer than you need in order to open and close the box without pulling the wires or breaking connections!

Step 4: Wiring and Such

You'll have to just follow the schematic we unfortunately didn't make a step by step on this.   
Heres a quick outline to go along with the schematic
Arduino pins :

DPin 0 = Nothing
DPin 1 = Nothing
DPin 2 = Pin 8 on keypad
DPin 3 = Red LED
DPin 4 = Green LED
DPin 5 = Nothing
DPin 6 = Nothing
DPin 7 = Pin 4 LCD
DPin 8 = Pin 6 LCD
DPin 9 = Speaker +
DPin 10 = Pin 11 LCD
DPin 11 = Pin 12 LCD
DPin 12 = Pin 13 LCD
DPin 13 = Pin 14 LCD
APin 0 = Pin 2 Keypad
APin 1 = Resistor to Pin 3 Keypad
APin 2 = Pin 4 Keypad
APin 3 = Resistor to Pin 5 Keypad
APin 4 = Resistor to Pin 6 Keypad
APin 5 = Resistor to Pin 7 Keypad

LCD Screen Pins:

Heres the missing pins on the LCD
LCD pin1 = Potentiometer 5v
LCD pin 2 = Potentiometer GND
LCD pin 3 = Potentiometer Middle 
LCD pin 5 = GND
LCD pin 15 = 5v
LCD pin 16 = GND

That should be all of them .... on the spark fun website if you follow the links on the supplies page there are some really great tutorials that explain how to hook up the pad and the lcd.  

Step 5: Uploading the Code

Heres the code you will need to get it to work the way ours does as always feel free to make it better!

/*Airsoft Bomb
Version 1.1Creators:
Chase Cooley&&&&&&&&&&&&
Joey Meyer*/

#include <Keypad.h>#include <LiquidCrystal.h>
#include <Tone.h>
#define pound 14
Tone tone1;int Scount = 0; // count seconds
int Mcount = 0; // count minutesint Hcount =0; // count hours
int Dcount = 0; // count daysint val = 0;
long secMillis = 0; // store last time for second addlong interval = 1000; // interval for seconds
char password[4];int currentLength = 0;
int i = 0;char entered[4];
int ledPin = 3; //red lightint ledPin2 = 4; //green light

LiquidCrystal lcd(7,8,10,11,12,13);const byte ROWS = 4; //four rows
const byte COLS = 3; //three columnschar keys[ROWS][COLS] = {
byte rowPins[ROWS] = {18, 2, 14, 16}; //connect to the row pinouts of the keypadbyte colPins[COLS] = {17, 19, 15}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as outputpinMode(ledPin2, OUTPUT); // sets the digital pin as output
tone1.begin(9);lcd.begin(16, 2);
lcd.setCursor(0,0);lcd.print("Enter Code: ");
while (currentLength < 4){
lcd.setCursor(currentLength + 6, 1);lcd.cursor();
char key = keypad.getKey();key == NO_KEY;
if (key != NO_KEY){
lcd.print(key);password[currentLength] = key;
if (currentLength == 4){
lcd.home();lcd.print("You've Entered: ");
lcd.clear();currentLength = 0;

void loop(){
char key2 = keypad.getKey(); // get the keylcd.setCursor(0,0);
timer();if (key2 != NO_KEY)
{while (key2 == NO_KEY)
{key2 = keypad.getKey();
}if (key2 != NO_KEY)
lcd.setCursor(0,0);lcd.print("Enter Code: ");
while (currentLength < 4){
lcd.setCursor(currentLength + 6, 1);lcd.cursor();
char key2 = keypad.getKey();if (key2 != NO_KEY)
entered[currentLength] = key2;currentLength++;
lcd.setCursor(currentLength + 5, 1);lcd.print("*");
lcd.setCursor(currentLength + 6, 1);lcd.cursor();
if (currentLength == 4){
if (entered[0] == password[0] && entered[1] == password[1] && entered[2] == password[2] && entered[3] == password[3]){
lcd.home();lcd.print(" Defused ");
currentLength = 0;delay(2500);
lcd.setCursor(0,1);lcd.print("Reset the Bomb");
lcd.print(" Wrong ");lcd.setCursor(0,1);
lcd.print(" Add - 1:30 ");if (Mcount < 14)
{Mcount = Mcount + 1;
}if (Scount < 59)
{Scount = Scount + 30;
currentLength = 0;}

void timer(){
if ( Mcount >= 15 ){
while ( Mcount >= 15){
lcd.home();lcd.print(" !BoOm! ");, 200);digitalWrite(ledPin, HIGH); // sets the LED on, 200);delay(10); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED, 200);
delay(10); // waits for a seconddigitalWrite(ledPin2, HIGH); // sets the LED on, 200);delay(10); // waits for a second
digitalWrite(ledPin2, LOW); // sets the LED, 200);
delay(10); // waits for a secondchar key4 = keypad.getKey();
if (key4 != NO_KEY){
while (key4 == NO_KEY){
key4 = keypad.getKey();}
if (key4 = '#'){
lcd.clear();lcd.print("Reset the Bomb");
}if ( Mcount == 60) // if Mcount is 60 do this operation
{//delay (32); // good place to fine tune timing
Mcount = 0; // reset McountHcount ++;
}if (Hcount> 23)
Hcount = 0; // have to reset Hcount to "0" after 24hrs}

lcd.setCursor (0,1); // sets cursor to 2nd linelcd.print ("Timer: ");
lcd.print (Dcount);lcd.print (":");
lcd.print (Hcount);lcd.print (":");
lcd.print (Mcount);lcd.print (":");
lcd.print (Scount);
if (Scount >59) // if 60 do this operation{
Mcount ++; // add 1 to McountScount = 0; // reset Scount
//delay (58); // changes ms per min}
if (Scount < 60) // do this oper. 59 times{
unsigned long currentMillis = millis();//delay (988); // changing by one = 60 ms a min
if(currentMillis - secMillis > interval){, 200);secMillis = currentMillis;
Scount ++; // add 1 to ScountdigitalWrite(ledPin2, HIGH); // sets the LED on
delay(10); // waits for a seconddigitalWrite(ledPin2, LOW); // sets the LED off
delay(10); // waits for a second}

Step 6: Testing!

Heres a quick video on it working

If you like this plz vote for me!  This is my first contest entry thanks for looking at my instructable!
MakerBot Challenge

Participated in the
MakerBot Challenge

1 Person Made This Project!


  • Electronics Contest

    Electronics Contest
  • Go Big Challenge

    Go Big Challenge
  • Tinkercad to Fusion 360 Challenge

    Tinkercad to Fusion 360 Challenge



5 years ago

hello, what battery powers the project?


5 years ago

Hi, is the need to have Arduino Proto-Shield, breadboard or protoboard? Thank you for answer


5 years ago

k =(-} A=(+) at the displai 1 at - and 2 at +


7 years ago on Introduction

Can I use instead of the Arduino ?


7 years ago on Introduction

hi, there is way how to make defusable with wires cutting?


Reply 7 years ago on Introduction

He says he might put pull out wires inside for defusing.

I am not even a novice in electronics so I don't know if this is possible but if I could I would ... have 3-8 wires of different colours connected to the circuit and have it set a random wire as the defusing wire (preferably in conjunction with a keypad+LCD) so that when you carefully pull it out it "diffuses" the bomb. This will allow the people with the bomb a chance to win in the last few seconds even though they don't have the code but a low enough chance that its not normally worth it early on.

To have cutting wires it would be the same just with wires screwed in on both sides for easy restocking but this does mean wasted wire which is kinda pointless for a game.


Reply 8 years ago on Step 3

Here i can show you:


Reply 11 years ago on Introduction
also more information at
its basically a tiny computer

aversione beta
aversione beta

9 years ago on Step 5

the code does not make me see the time, why?
Can you give me a hand? Thank you!


8 years ago on Introduction

same error as black engel, too bad you cannot respond to solve this


8 years ago on Introduction

After nearly 4 hours of rewriting the code, I made it work, and added a few improvements, like making the timer count down, instead of up, which I think looks better for a bomb scenario, I plan on releasing the code once I've rewritten everything.


9 years ago on Introduction

This is exactly what i've been looking for!! exactly for the same reason too. but...anyway to do this using a duel 7 segment display instead of the lcd screen?
just want the red led to signify wrong code and green to signify the correct code.


Reply 9 years ago on Introduction

You could do this with a 7 segment fairly easily, and changing the code to just do red as wrong and green as good will be extremely easy.
on the website there is a good section on controlling 7 segments


10 years ago on Introduction

Hello everybody,

First of all I've got to say that I've never used Arduino, but I'm very interested in this aprticular project, because I'm an airsoft player and I've been looking for a timed bomb for a long time.

Well, then is time for my question: Could it be posible to use this to activate a relay? (Which in turn, activates a piezo siren)

If it is possible, could someone help me with the code? I'm totally green in programming.

Thanks and sorry for my poor English.


Reply 10 years ago on Introduction

Hey Fixerized,
Thanks for your interest in the project. There is no reason i can see that you couldn't use a relay with this project. That said I dont believe it will be a problem of coding, but rather a Hardware problem. Here are a few sites and other instructables that might be helpful.
let me know if you have more questions.


Reply 10 years ago on Introduction

Thanks for the help,

AFAIK, I should get a digital pin to high level when i want the relay to activate, this is easy.

The problem comes when we get to the programming part... I don't know what should I change in the code to activate the relay instead of emitting the tone.

Oh, and I don't understand something... What does the potentiotemeter do?

Lot of thanks!