Mosfet Launchpad Igniter Issue

The Rocketry Forum

Help Support The Rocketry Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Joined
May 14, 2023
Messages
15
Reaction score
1
Hi fellow rocketeers. I am certainly new to alot of these things. I have been working on building a clampdown launchpad for my TVC rocket Aurora. My intention is to have the launchpad clamp down the tvc rocket for a fraction of a second after ignition until the motor thrust averages out and then release the clamps allowing the rocket to launch. I have been having some issues figuring out how to get the mosfet to properly ignite the estes igniter. The computer is an arduino mega which is powered by a standard 9v Duracell battery and there is a second power source (2s or 3s lipo) exclusively for the ignitor. I have attached a terrible schematic I drew on my phone in like 2 seconds. The yellow rectangle that says gnd is the arduino ground and the g, d, and s stand for ground, drain, and source (respectively) of the IRF-550 mosfet.

No matter what I try it fires the igniter the second I attach the battery instead of only when the pwm pin sends the brief signal. The only other configuration I tried cause the battery to burn up one of the wires as soon as I attached it and I can't even remember what I did that actually caused that. Any help would be much appreciated.
 

Attachments

  • Igniter_240113_001635.pdf
    414 KB · Views: 3
The G, D and S on the FET are GATE, DRAIN and SOURCE. The N-FET should have a pull-down resistance of, say, 10k-100k from Gate to ground. Sometimes a lower value series resistance (<1k) is also used between control output and Gate. Also, make sure the initial state of the Gate signal from the Arduino is low (0V).

Why do you need a PWM signal to activate the FET? Wouldn’t a simple brief (say, 1 second) logic 1 (5V) do?
 
Last edited:
Google "MOSFET switch". That should be all you need to know, and make sure that the FET is rated at 20A or more.
 
Also please tell us the MOSFET part number and maker. Then we can check data sheet and see if the MOSFET you chose will work.
 
The G, D and S on the FET are GATE, DRAIN and SOURCE. The N-FET should have a pull-down resistance of, say, 10k-100k from Gate to ground. Sometimes a lower value series resistance (<1k) is also used between control output and Gate. Also, make sure the initial state of the Gate signal from the Arduino is low (0V).

Why do you need a PWM signal to activate the FET? Wouldn’t a simple brief (say, 1 second) logic 1 (5V) do?
So a resistor of 1k-10k ohms connected from the gate pin to the source pin of the FET? Do I just start with 1k ohm resistor and work my way up until the battery doesn't fire the igniter as soon as it's plugged in? It's been a while since I have used resistors. I think there is some formula I used last time when I was determining the proper resistor for an led mod on a model train.

"Why do you need a PWM signal to activate the FET? Wouldn’t a simple brief (say, 1 second) logic 1 (5V) do?" - Are you referring to just a regular Analog Pin?
 
So a resistor of 1k-10k ohms connected from the gate pin to the source pin of the FET? Do I just start with 1k ohm resistor and work my way up until the battery doesn't fire the igniter as soon as it's plugged in? It's been a while since I have used resistors. I think there is some formula I used last time when I was determining the proper resistor for an led mod on a model train.

"Why do you need a PWM signal to activate the FET? Wouldn’t a simple brief (say, 1 second) logic 1 (5V) do?" - Are you referring to just a regular Analog Pin?
Whatever you have between 10k and 100k. The value isn’t critical in this case. You just need a highish value pull-down resistance between Gate and ground. In this case, your Source lead is also at ground.
The Arduino output just needs to be a regular digital output signal pin, which is pretty much any of the I/O pins. Just configure it as a digital output in your code.
 
So a resistor of 1k-10k ohms connected from the gate pin to the source pin of the FET? Do I just start with 1k ohm resistor and work my way up until the battery doesn't fire the igniter as soon as it's plugged in? It's been a while since I have used resistors. I think there is some formula I used last time when I was determining the proper resistor for an led mod on a model train.

"Why do you need a PWM signal to activate the FET? Wouldn’t a simple brief (say, 1 second) logic 1 (5V) do?" - Are you referring to just a regular Analog Pin?
The pull down resistor from gate to ground is required to keep the voltage low with no signal or a high impedance source, which is the state when the aduino starts. That should be 1K-10K.

Of coarse you are connecting the grounds of your two batteries together right?
 
The pull down resistor from gate to ground is required to keep the voltage low with no signal or a high impedance source, which is the state when the aduino starts. That should be 1K-10K.

Of coarse you are connecting the grounds of your two batteries together right?
Yes, as you can see in my terribly drawn schematic, the yellow box that says gnd is the arduino ground pin which should connect the ground of the 9v Duracell to the 2 or 3s battery I will be using.

Ok so connecting the resistor from the gate pin to the source pin should work then?

Will setting the signal to be like this work, or is that to long?

(Pseudo code):
Pin High;
Delay (1500);
Pin Low.;
 
BTW, you need a 5V Arduino for the IRF550... the guaranteed maximum gate threshold voltage is 4V, so it may not work with a 3.3V system. It MIGHT work... because the minimum gate threshold voltage is 2V, but you don't want to risk it. If you're using 3.3V, you need to find a MOSFET with a guaranteed maximum gate threshold voltage of 3.3V or below... there are some power MOSFET's with 1.0V/2.0V thresholds around.

There's a reason for all those specs on the data sheets... you need to match the parts to your application.
 
Yes, as you can see in my terribly drawn schematic, the yellow box that says gnd is the arduino ground pin which should connect the ground of the 9v Duracell to the 2 or 3s battery I will be using.

Ok so connecting the resistor from the gate pin to the source pin should work then?

Will setting the signal to be like this work, or is that to long?

(Pseudo code):
Pin High;
Delay (1500);
Pin Low.;
After just re-reading your initial post, it occurred to me that you might be connecting the battery (I assume that you mean the igniter battery) while the igniter is connected to the circuit. If that is the case, then that is a not what you should be doing. The igniter should only be connected when the whole circuit, including Arduino, is powered up and the Arduino has the FET gate pulled down to 0V.

Personally, I would use no more than Delay(1000) in your code.
 
You also need to be cognizant of your igniter current draw. Are you using an igniter or ematch? What will be the current draw? Although not directly related to your problem of firing the igniter when powering on, long term relability can be an issue with MOSFETS. Below is SOA (Safe operating area) of the IRF550.

If you need long latch times to get the ignitor going the SOA applies here, To be conservative make sure you are safe in DC line. With a 2S - 3S lipo you want to be below 11A or so. And its good practice put a heat sink on there or mount the mosfet to somewhere where the heat will goScreenshot from 2024-02-04 18-23-16.png
 
BTW, you need a 5V Arduino for the IRF550... the guaranteed maximum gate threshold voltage is 4V, so it may not work with a 3.3V system. It MIGHT work... because the minimum gate threshold voltage is 2V, but you don't want to risk it. If you're using 3.3V, you need to find a MOSFET with a guaranteed maximum gate threshold voltage of 3.3V or below... there are some power MOSFET's with 1.0V/2.0V thresholds around.

There's a reason for all those specs on the data sheets... you need to match the parts to your application.
Exactly, Spec shows best to have about 6V on the Get-Source to pass Amps through the Drain-Source.
 
I tried a 10k, 100k, and 1M ohm resistor and it still fired. I am not attaching the battery until the arduino is powered on and it is still doing it. I have attached a picture of my wiring. I'm going to just write test code for the mosfet just to eliminate potential errors in the full launchpad code.
After just re-reading your initial post, it occurred to me that you might be connecting the battery (I assume that you mean the igniter battery) while the igniter is connected to the circuit. If that is the case, then that is a not what you should be doing. The igniter should only be connected when the whole circuit, including Arduino, is powered up and the Arduino has the FET gate pulled down to 0V.

Personally, I would use no more than Delay(1000) in your code.
 

Attachments

  • 20240209_175923.jpg
    20240209_175923.jpg
    3.4 MB · Views: 1
Are you sure the mosfet is wired correctly. From the photo it appears incorrect.
The output from the Arduino should be at zero volts as well
 
Last edited:
You should post an accurate schematic of the circuit and your complete Arduino code, not pseudo code. As stated by sghioto, it’s not very clear from your image. You do need to confirm that the gate is at 0V by measuring it.
 
You should post an accurate schematic of the circuit and your complete Arduino code, not pseudo code. As stated by sghioto, it’s not very clear from your image. You do need to confirm that the gate is at 0V by measuring it.
Ok I attached a motor since it's basically a similar concept. Here is the code I used. I am slightly closer but still not quite there. Using the motor, I can vary the speed output via the pwm pin, however even when I set it to 0 as you can see here it still doesn't shut it off.


const int motorPin = 6;// pin connected to IRF550 MOSFET gate

void setup() {
pinMode(motorPin, OUTPUT); // Set motor pin as output
}

void loop() {
analogWrite (motorPin, 256);
delay(5000);
analogWrite(motorPin,0);
delay(5000);

}
 
I wouldn't use PWM for your ignition application. Just use normal digitalWrite().
Here is some code to do that and also use the builtin LED to monitor the process.
This code uses an 'F' input from the Serial monitor to fire the igniter.

const int fetPin = 6; // pin connected to IRF550 MOSFET gate
const int ledPin = 13; // pin connected to Arduino LED

void setup() {
Serial.begin(9600); // Use Serial monitor to send fire command
pinMode(fetPin, OUTPUT); // Set FET pin as output
pinMode(ledPin, OUTPUT); // Set LED pin as output
digitalWrite(fetPin, LOW); // Set FET output to 0V
digitalWrite(ledPin, LOW); // Turn LED off
}

void loop() {
// Wait for FIRE command (F) from serial monitor
if (Serial.available()) { // Check for serial input
if (Serial.read() == 'F') { // If 'F' is entered, then FIRE!
digitalWrite(fetPin, HIGH); // Turn FET on
digitalWrite(ledPin, HIGH); // Turn LED on to monitor process
delay(1000); // Wait 1 second
digitalWrite(fetPin, LOW); // Turn FET off
digitalWrite(ledPin, LOW); // Turn LED off
}
else
digitalWrite(fetPin, LOW); // Make sure it's off!

delay(5000); // Wait a bit before next command entry
}
}

Note that there is a warning in the Arduino manual regarding the use of the PWM output. This might result in a non-zero PWM output to your FET gate.

Notes and Warnings​

The PWM outputs generated on pins 5 and 6 will have higher-than-expected duty cycles. This is because of interactions with the millis() and delay() functions, which share the same internal timer used to generate those PWM outputs. This will be noticed mostly on low duty-cycle settings (e.g. 0 - 10) and may result in a value of 0 not fully turning off the output on pins 5 and 6.
 
Last edited:
OK that looks correct. So using only High and Low commands to switch the mosfet does it work?
Also you can see in the back there is a 1M ohm resistor between the gate and drain pins of the mosfet. No it doesn't work currently. Just stays on. I will try the source code provided above with a new mosfet. Maybe it's possible the mosfet is bad from previous testing, I don't know.
 
Also you can see in the back there is a 1M ohm resistor between the gate and drain pins of the mosfet.
There shouldn't be a resistor from Gate to Drain. A 10K resistor is required from Gate to Source.
With the Arduino not connected to the Gate the motor should be OFF with the 10K resistor installed from Gate to Source.
 
There shouldn't be a resistor from Gate to Drain. A 10K resistor is required from Gate to Source.
With the Arduino not connected to the Gate the motor should be OFF with the 10K resistor installed from Gate to Source.
Oh shoot I meant source. It is from gate to source. It's from the 1st and 3rd pins as you can see. I don't know why I said drain that's definitely not right.
 
OK. Try the motor connected to the mosfet without the wire from the Arduino connected. The motor should be OFF. If not the mosfet is bad.
Do you have a voltmeter for testing?
 
Divide and conquer. disconnect the arduino from the gate. Ground the gate. Turn the battery on, does the igniter still fire? if it does get another fet. Or better put a 1K or lower resistor instead of the igniter. Ground the gate, apply power and measure the drain voltage.

Then and only then when your 'switch' working, add the controller to the system.
 
Note that the catastrophic failure mode (i.e. overcurrent leading to transistor destruction) of FET's is CLOSED, vs. OPEN for bipolar transistors. If per jderimig's suggestion you disconnect the gate from the Arduino and have the 10K resistor from gate to ground, and the ematch fires at power-on, you've fried the FET. That IRF530 FET should easily handle the current draw from an ematch... so if you fry it, you probably connected it wrong originally. Hint: never buy one of any part when you're testing... you don't have a backup if you mess it up, and you end up paying more for shipping than the part,
 
Back
Top