How to test for Pyro Channel (Continuity) Short, the ignitor is not connected or the ignitor is bad

Hi, I am working on a Rocket flight computer and I need a bit of help with the design of a Pyro channel. The pyro channel will be used to Ignite the Rocket Moter.

Sometimes the Igniter has a Problem. There is a Short, the ignitor is not connected or the ignitor is bad and will not work. How can I change My design to test for that? Please Keep in mind I am Very Newby.
Here is what I have so far:
Screen Shot 2023-02-20 at 11.41.08 AM

How and Where would I test for (Continuity)? I think that the term I read.

Thanks

What is the 'will not operate' threshold for the igniter? What is it resistance and its tolerance?
Do you want to test manually or automatically?

Good Question, I saw this in a post:

Each Pad Box needs to measure three states of each of the 6 rocket igniters' resistance:

  1. Open (no rocket, >2 Ohm);
  2. Ready (expected to launch, 1 Ohm);
  3. Short (igniter bent/leads touching, < .75 Ohm).

and here is my Pyro so far
Screen Shot 2023-02-20 at 11.41.08 AM

This is all new to me so I hope this Help

Here is the complete diagram

From what I have read so far I would send a very low voltage to the Pyro (3v or 5v 50ma is considered safe) and would read the result.
But I do not understand how to Safely do that.

So would I need a Free pin for each pyro to test?
And how can I prevent damage to my teensy?
If I do not have enough PIN, can adding a 2nd controller do the trick, I think? Not elegant, but should work.

Thanks

At first glance, I'd think you could use the input as a pull-up to test if there's continuity or not. Pretty straightforward. It's a 20k resistor so you'd be getting micro amps.

Then possibly a voltage divider going to an analog input and use ohm's law to calculate the resistance based on known resistor and voltage values. The 41_E you referenced should have 8 analog inputs. I'd have to think a little more on that part though.

I have tried to read pin 2(pyro1)
and I get 0 Shorted or not

void setup() {
  //start serial connection
  Serial.begin(9600);
  //configure pin 2 as an input and enable the internal pull-up resistor
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT);
}

void loop() {
  //read the pushbutton value into a variable
  int sensorVal = digitalRead(2);
  //print out the value of the pushbutton
  Serial.println(sensorVal);

  // Keep in mind the pull-up means the pushbutton's logic is inverted. It goes
  // HIGH when it's open, and LOW when it's pressed. Turn on pin 13 when the
  // button's pressed, and off when it's not:
  if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
  } else {
    digitalWrite(13, HIGH);
  }
}

From your diagram and a 1 ohm in the good pyro I presume the 12V applied will give ~12A or ~144W into the fuse and it's connecting lines.

BTW that is quite a heavy current load, albeit I expect for a short period. How do you provide that; a large capacitive resivoir?

Are the leads are ~0.75 ohm and the pyro is about 0.25 ohms? The pyro then takes ~36W to fire?

Is there a safety risk if you inadvertently fire the pyro and it ignites the rocket motor? As a guess this is an insensitive pyro, so making resistance measurements is not so difficult.

As you didn't answer my question if the establishment of the pyro continuity is to be done under Arduino control, I assume it is. If so you could apply a lower voltage to 12-PYRO through a resistor or constant current source (BTW, I do not see where that power comes from in you circuit diagram) and operate each PYRO switch in turn and measure the voltage drop using the Arduino's A/D.

For the Battery, it connects to CN6 and I was looking at a 12v 3s Battery. I read that I need 12v 2a for the Pyro to fire up. Have not tested that yet. The 12v current will run for 1sec or less to the Pyro.

Yes the establishment of the pyro continuity is to be done under Arduino control.

I do not Know How to Apply your Solution. I am Very Newby. I had to stop to go read what the A/D was. Where in the Pyro Diagram would I add the Resistance, Let us use Pyro 1 for ease.

What I understand or think I understand, Is adding a relay to switch from 12v to 3 v, Connecting a resistor between the relay and the CN10 connector(pyro1), and reading the value the pin give me?

Not sure I am getting this correctly.

OK, let's reduce a rocket igniter circuit to its simplest terms. Keep in mind the actual igniter requires at least 6.0 volts at 2.0 amps.

Rocket Igniter

Key switch closed and the Power LED illuminates. Arm switch closed and the Arm LED Illuminates. Also the Ready LED illuminates through R1 and the igniter completing the circuit but at this point the igniter current is limited by R1 so the igniter won't fire, it merely completes the circuit. Pressing the Launch button will bypass the current limiting to the igniter, the igniter gets full current from the supply and assuming a good igniter it ignites the solid fuel rocket engine. A good igniter has a resistance of about one to two ohms.

What I dislike in the above circuit is that they use a 9.0 volt battery and most people take that as a PP3 type battery. Most good launch systems use a 12 volt SLA 8.0 AH battery.

Now if you want to use a uC for a launch device that can be done. There are several ways but in keeping things simple along the lines of the basic launcher above I guess we could replace the PWR, ARM and READY diodes with a few Opto Couplers. Using a uC set three digital IO channels to Input with internal pullup. Replace the Launch push button with a MOSFET. Using low side switching of the igniter.

These things have actually evolved into using a smart phone and Bluetooth to launch but no matter how complex they all come down to what you mentioned.

How you get the data is just a matter of the design. These things are not that complex or as complex as we want as we add features. I should also point out the basic circuit I used as an example will not indicate a shorted igniter. However that feature can be added having your uC look at igniter resistance.

Ron

OK So Let's say I have an esp32 for the uC(It's the only one I know). If I understand that right. We would use the Pin of the Esp32 for testing the voltage continuity and to Power up, the ARM system, and Eventually Launch the Rocket.

PS> I wrote down the Battery Suggestion. I will use that.

Read up on Octo Couplers Nice, It's like a Digital Switch.

So 2 Octo Couplers+1Mosfet = 3 pins used on the uC

So if I get this right, I would add a 10k Resister and a Diod(not sure what the proper name is. It would prevent the 12V from accessing the uC pin. so the current flow from the uC to the Igniter circuit but not the other way around.) between the Mosfet and the Ignitor. But I do not know how to test the continuity, short, open. Since the diode is one-way, I will not be able to test it that way.

I also assume we can Reduce/Simplify this to get the same result/Funtinalety, using fewer Pins
and test continuity?

I like the extra security feature.
If we can use the esp32, we also get Bluetooth or wifi.

This is getting More and More Interesting.

Before I forget Thank you, Sometimes I forget to be grateful.

Peter

Pretty much covers it. These things can be very simple or as complex as we wish. Yes, you can even use a smart phone with a module like an ESP8266 or ESP32 module. Don't hold me to that since I never actually did it. A simple Google of "model rocket launcher schematics" will bring you up simple as I used in the example to complex using uC control. Heck a Google of ESP 8266model rocket launcher schematics will get more and you can change it to ESP32. The idea is to understand the basics which will get you to understanding the more complex. :slight_smile:

Ron

After a Night of sleep, toning my excitement down and coming to my senses. It's time to get back to my original needs. This computer can be expanded to be used as a Launch control platform (that's why I added an Aux port) but that is not what I need now. The Rocket Motor will be Ignited by the launch platform and not the rocket computer.

I need to test the Igniter continuity for the Parachute ejection charge. 1 primary and One Backup.

The other Pyros are for future use and I do not need them this year, and probably not next year.

So with what I have learned last night, I will try to come up with a modification to the current pyro design. Maybe by Friday I will have something to show and will need feedback.

Thanks
Peter

1 Like

Something like this may do it:

The PYRO_TEST~ (pulled low to activate) will turn on Q1 and can source current of ~50mA (set by R4) through your PYRO device R1.
I have used a PNP bipolar transistor as the collector base junction is reversed biased when you apply the 12V.
Turning on M1, as per your exisitng circuit, will pass this test current through the PYRO.
The voltage drop accross the PYRO (~50mV for a 'good' one) can be measured by the Arduino analogue (i.e. A/D) input. I have added a simple low pass filter to a) reduce possible pick up of noise and b) the resistor with the diode protects the Arduino's input when the 12V is applied to fire the PYRO. The 12V is too higher a voltage, so the diode will clamp it.
I have added R2 to the MOSFET input.
You will only need one of these test circuits for all your PYROs.

What do you think?
Component values are not critical

Thanks, I cannot Pretend I Understand it all Right Now, It will have to Simer a Bit.

What I think I Understand. 5v(Arduino) are 5V power from Arduino Power pin or 5v from Battery.
12v(pyro) is from the external battery
Pyro_test is an Analog pin where I will get a Signal to analyze to determine the state of Pyro.
Analogue Input: ?? no idea. Is that not the same as Pyro_test?
PYROn is the pin to the Pyro for ignition.

So what is the difference between the PURO_TEST and Analogue Input?

I don't understand it all either, despite nealry 50 years of experience (and many mistakes :wink: )

Yes, the 5V can be from your Arduino as it is capable of supplying the test current. 12-PYRO is from an external source.

PYRO_TEST is a digital output from your Arduino. When you want to test you output a logical low signal to turn on the PNP Q1. Then circuit willoperate as I said before.
You must then read the analogue input using the A/D (Analogue to Digital converter within the Arduino).

YES.

You command PYRO_TEST as a digital output to instigate the test and read back the analogue voltage to determine the PYRO's resistance. Then based on the resistance and the consequential voltage across it you can decide if the PYRO is open, short or good to go.

Does this clarify?

Wow Yes, I get it. Very Nice!!

OK, I have More Questions about how I will Integrate this to all 6 Pyros.
So if I understand correctly I will not have to repeat the complete circuit 6 times.

Would I use Octo Couplers that would be placed Before R1, With that, I would select which Pyro to test?

One more question, When I arm the 12v(turn it on) What stop it from going to the analog input?

Nothing, but it is clamped by the diode,D1, to the supply (plus a little bit) and the current is limited by R7. If you read the voltage via the A/D when applyi gthe 12V is will be at maximum 1024, maybe 1023.

I tried to explain this:

Ok, I understand. it's clear now!! Thank you!!

Good. You now have to make it work. Don't ask me for coding help; I'm a newby at that. :slight_smile:

That Is great, I will draw that and then make a simulation to test it out.

The coding Bit, I am not a developer, But not too bad at it. I can help with that part if you need anything.

On to EasyEDA to draw this up. Or maybe I should start learning Kicad and draw it with that.

So many things to learn so little time.

Thank you Everyone for Sharing your Experience. I learned a lot this week.

1 Like