Bluetooth controlled ignitor for a spudgun (android app + arduino)


Here is something I built a while ago.
It’s essentially a bluetooth controlled ignitor for a spudgun.
I wrote a simple app for andoroid (using MITs app inventor). The app is also a calculator for stoichiometric mixes of air and propane/butane. The app has a safety and once disangaged there is a ‘FIRE’ button. Once pressed it sends a string ‘boom’ :slight_smile: over bluetooth.
The app can be downloaded here → fueling_app(2).apk - Google Drive
(you have to check a box in settings on your phone so that it would accept apps from outside google play)

Arduino board with a bluetooth module waits for a char ‘b’ to apear over serial and if gets it the board switches one of the pins HIGH for 1000ms. The circuit is really simple. Though I found that I needed to put a cap because the ignitor created lots of EMF that caused arduino to crash.

The ignitor (ie. part that creates high voltage) is an off the shelf module for gas cookers. A relay (driven by ULN driven) closes the circuit and that’s how it’s switched on. The bluetooth module is a class 1 module so theoretically range is 100 meters. When connected with a class 2 device (ie. what you find in like every mobile and has max range of like 10 meters) it works up to 20 meters but only if both the devices are in direct LOS. However, it can go through two cinderblock walls but that’s about it.

Two videos:

This one is with the ignitor disconnected

Here is with the high voltage ignitor attached

ohh and here is the code

/*for use with my fueling app... for more details visit
Based on PhysicalPixel from examples  */

const int Pin12 = 12;
int incoming; // a variable to read incoming serial data into

void setup() {
// initialize serial communication:
// initialize pin12 as an output:
pinMode(Pin12, OUTPUT);


void loop() {
// see if there's incoming serial data:
if (Serial.available() > 0) {
// read the oldest byte in the serial buffer:
incoming =;
// if it's a 'b', turn on PIN12:
if (incoming == 'b') {
digitalWrite(Pin12, HIGH);delay(1000);digitalWrite(Pin12, LOW);


Nothing special I know but it was fun to make and I learned a few things in the process. Hope you like it :wink:
Now I have to recreate this using atttiny and a perfboard.
ohh and as you might have noticed I changed the pin from PIN13 to PIN12 after taking the two videos. That’s due to safety reasons - in case you don’t know it yet the Arduino board flashes its inbuilt LED (and thus pin13 goes HIGH) when powered on. Since this thing is a freaking ignitor it’s not a good idea to have something that can accidentally go off :stuck_out_tongue:

Very nice! Could you post the values for C1 and K1 (I honestly don't know what K1 is).

k1 is an SPDT relay - that's connected to the power supply of the high voltage module/ignitor

C1 is just a decoupling capacitor - it's 47uF & 36V IIRC

I needed a decoupling cap as the wires from the ULN driver to the relay coil acted like antenae and picked up EMF. If you think of it the high voltage module/igniter can easily fry arduino ;-) and it creates some really nasty EMF. occasionally it even did something to USB ports on my desktop (you can hear it the second video - I get the same sound it makes when I insert new USB devices). Even though arduino was not connected through USB cable and the entire circuit was placed like 3 meters away

I managed to upload the program to ATtiny2313 and the circuit works as expected... so now it's just a matter of moving the circuit from breadboard onto the perfboard

I concluded that using the etire ULN2004 chip to drive just one relay is kind of wasteful so I am gonna rearange the circuit a bit to make use of the remaining pins on the darlington driver.

There is one thing I haven't decided on yet... 9 V battery would probably be the best power source but what would be the best voltage regulator for the circuit ?? What do you guys think of LM2931AZ-5 - it regulates down to 5V at 400 mA max - any idea if that would be enough ??

I'm looking for a solution that would be fairly energy efficient - AFAIK switching regulators are more efficient but I don't know if it wouldn't be an overkill for this application?