Introduction: The Reusable and Wireless Igniter

About: I am a master's student studying Electrical Engineering and an alumni of FIRST robotics. I also love to tinker on my own, which is mostly inspired by the amazing people on this website!

This project uses a simple RF link and two Arduinos to ignite something from up to 90 feet away! I always found it annoying to mess with a bunch of wire, so I felt like creating something to fix that problem. A wireless connection is not only safer, but also A LOT cooler. This wireless ignitor can be used to ignite fireworks, model rockets, and more!

This is PART ONE of a three part project! See the other parts by visiting my page!


Disclaimer: This is not intended to be used as anything but a safe way to ignite fireworks, a model rocket, etc. Be cautious whenever you are building this or using this device. I take no responsibility for any harm done due to any carless action or a failure to follow the proper safety measures.

Step 1: Materials

Components:

Sparkfun wish list with all of the parts here

ComponentSupplierPrice
Arduino x2 Sparkfun buying guide, Radioshack $50-60
RF link modulesSparkfun/Sparkfun $9
Enclosure x2Sparkfun, Radioshack $7-12
Toggle switchSparkfun, Radioshack $3-5.50
On/off switch x2Sparkfun, Radioshack $.75-4
Speaker(optional) Sparkfun, Radioshack $2-4
Glow plugAmazon $6
LEDsSparkfun, Radioshack $1-5.50
5V RelaySparkfun, Radioshack $2-5
Assorted resistorsSparkfun, Radioshack $8-$15
8-Pin SocketsSparkfun, Radioshack $1-2
Total ~$85-130

Tools:
--Wire (for antennae)
--Perfboard
--A few male headers
--Something to use as a cushion for the arduino, or some standoffs
--Drill
--File and/or sandpaper
--Soldering iron/solder
--Wire cutter/stripper
--Miscellaneous screws, nuts, etc.
--Big alligator clip
--Battery holder for 2 AA batteries (will be modified)
--9V Battery with connectors
--1.5V AA Batteries x2

Step 2: Getting VirtualWire

All of the code involved in this project is centered around an Arduino library called VirtualWire, by Mike McCauley.  This library pushes the cheap RF link modules to their limits.

1.)  This library can be downloaded directly from here, or on the website here.

2.)  Find the location of your Arduino sketchbook by checking your Arduino preferences.

3.)  Make a folder called "libraries" if it's not already there and place the VirtualWire folder in it.

4.)  Open arduino and you're done!


Step 3: Creating the Virtual Wire

Receiver Code

Download the code here


//  Receiver by Noah DC
//  This code is built around the VirualWire library which 
//  can be found here: http://www.airspayce.com/mikem/arduino/
//  Visit my instructable for the wiring, explaination, etc.
//  
https://www.instructables.com/id/The-Reusable-and-Wireless-Igniter/

constint recieverPin = 2; //to reciever module
constint ignitionPin = 3; //to igniter
constint activeIndicatorPin = 5; //to green LED
constint inactiveIndicatorPin = 6; //to red LED
constint buzzerPin = 4; //to the buzzer
#include <VirtualWire.h>
boolean liftOff= false;

voidsetup(){
  Serial.begin(9600); //for debugging
  pinMode(activeIndicatorPin, OUTPUT);
  pinMode(inactiveIndicatorPin, OUTPUT);
  pinMode(ignitionPin, OUTPUT);
  vw_set_ptt_inverted(true); //normal setup stuff
  vw_setup(2000);
  vw_set_rx_pin(recieverPin);
  vw_rx_start();
}

voidloop(){
  while(liftOff == false){
    digitalWrite(activeIndicatorPin, HIGH); //shows that igniter hasn't been used yet
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    if (vw_get_message(buf, &buflen)) {
      Serial.print("Got: ");
      Serial.print(buf[0], DEC); //only one byte in the array (it should be 97)
      Serial.println(" ");
    }
    if (buf[0] == 97){ //checks if the letter "a" is recieved (ASCII number is 97)
      liftOff = ignition();
    }
  }
}
int ignition(){
  tone(buzzerPin, 500, 300); //5 second countdown
  delay(1000); //it's not necessary, and can be removed
  tone(buzzerPin, 500, 300); //4 (I relize it's not exactly a second)
  delay(1000);
  tone(buzzerPin, 500, 300); //3
  delay(1000);
  tone(buzzerPin, 500, 300); //2
  delay(1000);
  tone(buzzerPin, 500, 300); //1
  delay(500);
  //ignition!!
  digitalWrite(ignitionPin, HIGH);
  delay(2000);
 
  digitalWrite(ignitionPin, LOW);
  digitalWrite(activeIndicatorPin,LOW);
  digitalWrite(inactiveIndicatorPin,HIGH); //shows that igniter has been used
  returntrue; //prevents other ignitions for safety purposes
}

Transmitter Code

Download the code here


//  Transmitter by Noah DC
//  This code is built around the VirualWire library which 
//  can be found here: http://www.airspayce.com/mikem/arduino/
//  Visit my instructable for the wiring, explaination, etc.
//  
https://www.instructables.com/id/The-Reusable-and-Wireless-Igniter/
constint transmitPin = 2; //pin to the transitter module
constint buttonPin = 3; //pin to ignition button
constint armedPin = 4; //pin for indicator LED
#include <VirtualWire.h>
voidsetup() {
  pinMode(armedPin, OUTPUT);
  digitalWrite(armedPin, HIGH); //shows that igniter is armed
  vw_set_ptt_inverted(true); //setup stuff
  vw_setup(2000);
  vw_set_tx_pin(transmitPin);
}
voidloop() {
  char *msg = "a"; //going to send the char "a"
  if (digitalRead(buttonPin) == 1) {
    digitalWrite(13, HIGH); //blink LED to show it's working
    vw_send((uint8_t*)msg, 1); //sends the char
    vw_wait_tx(); //wait until the char is sent
    digitalWrite(13, LOW);
    delay(500);
  }
}

Step 4: Schematics

Follow the schematics shown in the pictures and build your circuit. I realize I forgot to draw the arrows on the LEDs, that's why they're marked.

This circuit is designed so when the switch is flicked on the transmitter, the signal is received and triggers a 5-second countdown before it ignites the fuse.

Note: I found that the wire size required for the glow plug to work properly is thicker than a normal jumper wire, or even the breadboard tracks.  Therefore, it might be necessary to connect the glow plug leads directly with a few alligator clips.

Step 5: Setting Up the Igniter

The glow plug I'm using is designed for use in a RC car to ignite an air-fuel mixture.  It runs perfectly off of 1.5V and burns red-hot on its inner coil.  It might be necessary to provide a step-up material (something that ignites at a low temperature, but burns at a higher one), such as flash cotton, or stick a small piece of your fuse inside the plug's coil.

One AA battery proved not to supply enough current for the glow plug to run properly, so I decided to create a battery holder to make two AA batteries run in parallel.  I then soldered the glow plug to an alligator clip:

The battery holder:
1.)  Take off one of the springs from its connector
2.)  Solder that spring to opposite side. Both springs should be on the same side of the holder
3.)  Make sure each side of the battery holder is connected, then solder a wire coming from each
4.)  The final product can be seen in the materials step


The glowing alligator clip:
1.)  Flatten out the sides of a big alligator clip
2.)  Drill a hole 15/64" in diameter on only one side of the clip
3.)  Screw the glow plug inside the hole and solder it at a high heat (I used about 400°C)(or, as suggested by The Lightning Stalker use a nut if you can find the correct size: 1/4 x 28 nut)
4.)  Feed two wires through the alligator clip's neck
5.)  Solder one wire to the end of the glow plug and the other to the body
6.)  It should look similar to the GIF in the pictures


Step 6: Putting It in the Enclosure

First, drill a few holes and file out the edges to fit the parts you are using.  Make sure to drill an array of holes for the speaker if you decide to use one.

To neaten things up, I made a small shield to fit over the arduino.  I also wanted to reuse the receiver and transmitter, so I put them on a split IC socket, as shown in the pictures.

I used some foam I cut to hold the arduino in place, but standoffs and screws would work too.

Step 7: Conclusion

I hope you enjoyed learning how to make a reusable wireless igniter!!

Here's a little clip showing it in action:



Be sure to leave feedback!