16 Rocket Semi-Simultaneous Launch Controller

Thread Starter

LydaRA

Joined May 6, 2021
37
Just general comments. The voltages that your trying to measure are too small. They would require amplification.
....
So, my suggestion starts with a current source and tries to get the voltages out of the noise floor.
....
So, I'm guessing you want open, in range and short.
Open seems easier to do of the max voltage is known. And better yet, if the voltage is regulated below what would cause ignition.
I definitely liked the idea of limiting the firing time.
That's what I am thinking...

So, if you have a display, you could display % nominal resistance or "Power expected"
Yes, the RSO Box will have a small display. Thought is that I might show more info (all three igniter states) on it than we try to show to the Scouts/LCOs (just simple On/Off LED). Then again, We could make those RGB LEDs, and show all three states--letting the Scouts/LCOs "own" even more of the experience. But to date, we've kept the electrical wiring, continuity & misfire diagnosis, and corrections out of their hands. Reduces risk, and speeds throughput... But while one leader works the circuit, another always explains what was wrong, what is being done to correct it, and how this generally relates to engineering--and to overcoming challenges in life generally!
 

Thread Starter

LydaRA

Joined May 6, 2021
37
Haven't read the whole thread, and maybe you already did this, but have you posted over at https://www.rocketryforum.com ?
Yes, thanks. https://www.rocketryforum.com/threads/16-rocket-semi-simultaneous-launch-controller.165991/

Trying to get input from as many more practiced "subject matter experts" as I can. _Definitely_ have to produce something safe. But I am also trying to avoid wasting money. (I am currently unemployed, and will build & donate this from my own pocket.)

My from-scratch electronic circuit building as as a teenage Red Cross volunteer....some almost 30 years ago. So you professional EEs might be able to do in your sleep what I'm re-learning. Going to visit an auto parts store and an aircraft service guy, so they can help show me real usage of specific fuses, relays, & connectors.

I've only done one production use of Arduino. So again, I know that I'm going to seem "slow"....no matter how quickly I read my cache of Arduino books.

And of course the primary usage here is rocketry. So have looped in NAR, TRF, and even an Estes (et. al.) Facebook group (although I _was_ trying to swear off the whole "antisocial media" scene).

Anywhere else you might point me to learn from? Thanks.
 
Is my understanding of RS485 wrong. I'll admit that I only worked with it once. One day, after everyone basically gave up, iI managed communications. There's lots of information out there and one piece was extremely useful. Nomenclature changes.

It's my understanding that you have RS485 full and half duplex. I've seen a ground in some implementations.

See https://www.raveon.com/wp-content/uploads/2019/01/AN236SerialComm.pdf

There can be Hubs in an RS485 implementation too. See https://cdn.shopify.com/s/files/1/1014/5789/files/hub-485-4.pdf
There is also isolated transceivers: https://www.maximintegrated.com/en/...vers/isolated-rs-485-rs-422-transceivers.html

Since these things will be connected and disconnected frequently, I'd make sure they have ESD protection.

Not sure if it would make your job easier or harder, but MODBUS is something to consider especially if there are libraries written. https://www.arduino.cc/en/ArduinoModbus/ArduinoModbus

Later, if you so desired you might be able to use wireless Ethernet or wired ethernet.

With software design which I did a fair amount of, I like to:

1. Pretend I had all the resources and money in the world and design in everything I could possibly want.
2. What must I have?
3. What might be predicted?

You can do it for hardware too. When you have all the possible options covered, you can make programming such that it would be "easy" for add the future options without a total re-write.

I managed the development and designed a software package that lasted 17 years before it was upgraded again.
No changes were made to that system.

There was another project where management dictated that the project HAD to use NuBus cards. That bit them in the end.
there were 5 slots in a MacII, then suddenly 3 slots. Oops! I wanted the I/O totally outside the computing platform.
 
Last edited:

Thread Starter

LydaRA

Joined May 6, 2021
37
Since these things will be connected and disconnected frequently, I'd make sure they have ESD protection.

Not sure if it would make your job easier or harder, but MODBUS is something to consider especially if there are libraries written. https://www.arduino.cc/en/ArduinoModbus/ArduinoModbus
Yes, I am planning to use Modbus, over RS485, over either STP CatX or XLR/DMX cables. The Arduino Modbus library should take care of everything up to the app layer. Then (for added safety) my code will send double byte data packets....DestinationID, CommandID, ChannelSelectionBits, Checksum.
 
You might want to make pins 6 & 9 test points. You might want to use Phoenix contact pluggable terminals for the ignitor.

No idea what the resistor on pin 10 of the relay is all about? No idea what the resistor after the current source is all about?

Your limited to 200 mA with 1 LT3092.

Is the processor 3 or 5V? You need to check whether FET will turn on?

Would you want to put an LED and resistor across the relay coil?

The thing your drawing is the "slave device", right?

Will each have an independent battery? Put a series diode, so you can;t hook it up backwards? Schotkey or ideal diode controller. e.g. https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4372-4373.pdf

You have 12V going into your processor?

Make the input to U7 a voltage source like the LT3042, so you can more easily detect open.

the app note earlier had a differential amplifier which you can use. You cab use an LM7705 https://www.ti.com/product/LM7705 to generate a slightly negative power supply voltage, so you can get 0V out for 0V in. You can put your differental amplifier at pins 4 and 9 of the relay with resistors to ground to sink the bias current.

At least when 0 is at mid supply, you can read small voltages better.

Are you thinking of an A/D converter and driving LED's or a stand-alone comparitors?

if your using an A/D converter, you might want to reference 0v to 1/2 the power supply voltage and use the ratiometric reference. What would be the range of the A/D?

Microchip has some I2C dual slope converters: http://ww1.microchip.com/downloads/en/DeviceDoc/21686a.pdf
e.g. The TC510: https://www.microchip.com/wwwproducts/en/TC510 It does have differential inputs. No stock at Digikey. Not good. $5.00 USD. You might have to measure the supply instead of using a regulator to get the difference voltage across the current source.

Bi-color LED? An LCD display might actually be better because it's readable in bright sunlight. There are some inexpensive LCD displays here https://wiki.seeedstudio.com/Grove-16x2_LCD_Series/ for Arduino with a library.

What about two of them.
One for your count down clock and one for status messages, errors in reverse video?

There are always I2C port expanders to get more digitl ports if you need them.

Something else to think about is some sort of battery test. Maybe measure ESR. Two ways I know of:

1) Impress a small AC voltage and measure the AC current and voltage
2) Use two loads and ΔV/ Δ I

the latter is probably easier.

Would an encoder be neccessary? or have that sort of information done at the master CPU?

This is all what I would call "thinking out loud". This is where you throw out all ideas no matter how absurd and then whittle it away.

This could be one of these "added features". Don't add the parts right away, but you can add them later.

For controlling the FET, there is a photovoltaic optocoupler that is sometimes used. It actually uses an LED and generates a voltage. You have such things as a high side driver e.g. https://www.rohm.com/products/power-management/ipds/smart-high-side-switch-ics/bd1hc500efj-c-product It has an integral charge pump, so it can turn on a FET fully. Vgs of the FET is hen the FET just starts to turn on. You have to look at the graphs to make sure it turns on at say 5V or 3.3V.

i wonder if you can use a FRAM memory chip. It doesn;t require power or have a write limitation in a way such that when the RS485 goes away, the board gets locked. It can't work without the main processor.

Heartbeat? Watchdog timer?

How would a slave report to the master that something is wrong? What if you added two wires or more going to the slave for interrupts. I forget how DEC did it, but the interrupt line was daisy chained or passed through each device. Interrupts also had a priority. if the slots were empty you had to add a bus grant card.

it's probably in here http://web.frainresearch.org:8080/projects/pdp-11/lsi-11.php somewhere. Interrupts are described here. https://en.wikipedia.org/wiki/PDP-11_architecture#Interrupts

So, just maybe you could daisy chain the slaves somehow and implement interrupts where a slave card would assert the interrupt and it's up to the master to find out who. If you in the middle of a countdown and something happens, the card has a way of telling the master it needs to stop the count and then the master would poll to figure out what went wrong.

What about your fire button on the slave unit?

This is a lot of stuff to munch on.
 

Sensacell

Joined Jun 19, 2012
3,451
Latest update... Thoughts?

The extra resistor in-line with the current source serves no purpose.
The pot on the relay- why?
The buzzer in series with the ignitor- why? It will not fire.
Switching both ends of the ignitor - why?
The continuity voltage straight to the Arduino? The continuity voltage is too low to be measured by the ADC correctly.
The ADC inside the ATMEGA168 is 10 bits, if the full-scale range is 5V, each bit represents 0.0048 Volts, a "good" ignitor will read only 12 counts, out of 1024...
If your "auto-reset fuse" is a PTC type fuse, you need to rate them much higher than the intended operating current, else they will "nuisance trip" when no fault is present.
The IRF 540 is a poor choice for 5V gate operation, it will probably work here, but there are better parts for the job.

Note that RS485 really does need a ground, your link shows only 2 wires.
 

Thread Starter

LydaRA

Joined May 6, 2021
37
You might want to make pins 6 & 9 test points. You might want to use Phoenix contact pluggable terminals for the ignitor.
Pins 6 & 9 on what?
If I end up with separate PCBs for the core logic versus each igniter channel, yes, Phoenix connectors between boards.

No idea what the resistor on pin 10 of the relay is all about? No idea what the resistor after the current source is all about?
To adjust the range on the continuity measurements, I made both the pre-igniter resistor and the post-igniter resistor adjustable pots. Would also let it be tailored for different ignitors. Someone suggested instead of simple trim pots to use rotary knobs with positive incremental stops. Not sure....haven't seem simple pots "drift" inside of a box.

Your limited to 200 mA with 1 LT3092.
Yes, and want to take that down to like 25mA (half of what Estes says is safe for testing). But then do I need one per channel....since variable number of channels may be active at any time? Started by simply sourcing from an Arduino pin and resistor....but 10 rockets (NAR max) times this current may max out the Arduino...

Is the processor 3 or 5V? You need to check whether FET will turn on?
I'm looking at 5V Arduinos. Yes, need to "lighten up" the FETs....also because we are on limited batteries.

Would you want to put an LED and resistor across the relay coil?
Maybe, but only helpful diagnosing when looking inside the box. So maybe not spend the power?

The thing your drawing is the "slave device", right?
Yes. The primary items shown here are the Pad Box, which is to be a Modbus "slave."

Will each have an independent battery? Put a series diode, so you can;t hook it up backwards? Schotkey or ideal diode controller. e.g. https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4372-4373.pdf
Yes, each of the three boxes will have their own batteries. Better to have the high launch current at the short igniter leads, rather than having to send it 100' from the RSO/LCOs. Planning to have shape-keyed power connectors, with the batteries in-box. But yes, good safety to add diode.

You have 12V going into your processor?
I originally showed a subordinate 5V bus for the logic parts. But was told to simplify to just drive all of the parts directly off of the 12V. (Heard Arduino prefers 9V input, but can do 12V.) Not sure, but...

Make the input to U7 a voltage source like the LT3042, so you can more easily detect open.
Huh? Sample? Getting a _lot_ of complaints from others about the dedicated "flashbulb safe" constant current supply. I've never used one, but seems better than pulling too much from the Arduino.

the app note earlier had a differential amplifier which you can use. You cab use an LM7705 https://www.ti.com/product/LM7705 to generate a slightly negative power supply voltage, so you can get 0V out for 0V in. You can put your differental amplifier at pins 4 and 9 of the relay with resistors to ground to sink the bias current.

At least when 0 is at mid supply, you can read small voltages better.
Huh? Sample? Not sure I follow.

Are you thinking of an A/D converter and driving LED's or a stand-alone comparitors?

if your using an A/D converter, you might want to reference 0v to 1/2 the power supply voltage and use the ratiometric reference. What would be the range of the A/D?

Microchip has some I2C dual slope converters: http://ww1.microchip.com/downloads/en/DeviceDoc/21686a.pdf
e.g. The TC510: https://www.microchip.com/wwwproducts/en/TC510 It does have differential inputs. No stock at Digikey. Not good. $5.00 USD. You might have to measure the supply instead of using a regulator to get the difference voltage across the current source.
Thought is to run the continuity circuit into the Arduino's analog input pins. Need to register the tri-state of each igniter at the Pad Box (which then may disable empty or faulty channels), the forward the data over the 100' of Modbus to the RSO Box (where it is then displayed). I am still somewhat unsure how this whole continuity test will work....the biggest thing I've been asking everyone to contribute examples for...

Bi-color LED? An LCD display might actually be better because it's readable in bright sunlight. There are some inexpensive LCD displays here https://wiki.seeedstudio.com/Grove-16x2_LCD_Series/ for Arduino with a library.
Yes, the RSO Box will have the "god view" of everything on a local display. Almost certainly I2C. Will continue to fan out a simpler per-channel Continuity LED, removable Safety Key, & Launch button in front of each Scout/LCO.

What about two of them.
One for your count down clock and one for status messages, errors in reverse video?
In addition to the on-panel indicators, there are the range-mounted indicators. An "idiot light" strobe and siren on a pole. Also a Countdown Clock that doubles for range status messages (SETUP, HOLD, T-SS.d, LAUNCH, T+SS.d).

There are always I2C port expanders to get more digitl ports if you need them.
Yep. Arduino Nano works for 8 rockets. But if we got to the NAR-allowed 10, then we might need more pins...

Something else to think about is some sort of battery test. Maybe measure ESR. Two ways I know of:
1) Impress a small AC voltage and measure the AC current and voltage
2) Use two loads and ΔV/ Δ I
the latter is probably easier.
Yes. A NY NAR chapter (non-Arduino, 20+ year old, analog) system has a multi-purpose voltmeter on the RSO's panel. Initially it shows local battery, pick a pad bank and it shows the pad's battery, pick a rocket, it shows the continuity, launch and it shows the current usage. Could not quickly see how to adapt his high-power rocketry measurements down to our needs, and then into the Arduino.

Would an encoder be neccessary? or have that sort of information done at the master CPU?
Huh?

This is all what I would call "thinking out loud". This is where you throw out all ideas no matter how absurd and then whittle it away.
ABSOLUTELY! "The only dumb question is one that was not asked until _after_ something went wrong."

This could be one of these "added features". Don't add the parts right away, but you can add them later.
Yep. Taking longer that I had hoped (but not expected). Beginning to think the Countdown Clock display may have to wait until next year. :-( (Doing this as a donation to Scouting while unemployed, and almost certainly needing to get a lot 3D printed...)

For controlling the FET, there is a photovoltaic optocoupler that is sometimes used. It actually uses an LED and generates a voltage. You have such things as a high side driver e.g. https://www.rohm.com/products/power-management/ipds/smart-high-side-switch-ics/bd1hc500efj-c-product It has an integral charge pump, so it can turn on a FET fully. Vgs of the FET is hen the FET just starts to turn on. You have to look at the graphs to make sure it turns on at say 5V or 3.3V.
Yes, one of the things I like about the pre-made 8 channel driver/relay boards....isolation.

i wonder if you can use a FRAM memory chip. It doesn;t require power or have a write limitation in a way such that when the RS485 goes away, the board gets locked. It can't work without the main processor.
Hmmm. Notice how I am carrying power for a single relay from the RSO Box to the Pad Box? If _any_ of three items fails, there is no power to the igniter bus: Local Power switch to "Remote Control," RSO's "Master Key" is On (to send power), and both the full set of Arduinos and RS485 must carry the correctly validated signals.

Heartbeat? Watchdog timer?
Yes, since the Pad Boxes are "slaves," the RSO Box will have a loop polling them. Now the Pad Box might use an indicator of lost connectivity, visible without going back 100' to see on the RSO Box.

How would a slave report to the master that something is wrong? What if you added two wires or more going to the slave for interrupts. I forget how DEC did it, but the interrupt line was daisy chained or passed through each device. Interrupts also had a priority. if the slots were empty you had to add a bus grant card.

it's probably in here http://web.frainresearch.org:8080/projects/pdp-11/lsi-11.php somewhere. Interrupts are described here. https://en.wikipedia.org/wiki/PDP-11_architecture#Interrupts

So, just maybe you could daisy chain the slaves somehow and implement interrupts where a slave card would assert the interrupt and it's up to the master to find out who. If you in the middle of a countdown and something happens, the card has a way of telling the master it needs to stop the count and then the master would poll to figure out what went wrong.
DEC, Digital Equipment Corp??? I _loved_ VAX/VMS!!! Definitely not going the IBM AS/400 "weighted slots" path. (When I first introduced our cluster to Ethernet over Frame Relay instead of Token Ring over a Leased Line... Well this fresh-out-of-college "PC Boy" was getting all kinds of praise from the AS/400 crew....for about five minutes--then the whole system crashed! We retried....same. Reseated....same. Took the IBM rep two weeks to come back with details that the Ethernet card could _only_ be used in one particular slot--not the one they had installed it in!)

Since I'm looking at STP CatX for the inter-box cabling, we certainly have extra pairs. Notice I already added one to run an analog Master Arm from RSO Box to Pad Box. Adding a dedicated Fault indicator line seems prudent.

What about your fire button on the slave unit?
Not allowed by NAR Safety Code. There is a minimum distance required from rocket to personnel. Even if we got rid of the igniter cables' vertical drop by raising the Pad Box from the ground onto a table, then we could still _only_ launch the _one_ rocket at the far end of the set of launch rods. And if we go up in engine power, we need at least 100' separation--one reason for building a new system.

The Launch command will be forwarded from the RSO Box. The intent is to build a single "stick" of LCO components for four stations per table. Plunk down one stick, plug in one STP CatX between it and the RSO Box...and done! Four tables fully setup in just four panels--not 16 individual controllers and scads of loose wires... :-D

Now for time and budget (Yeah that unemployed thing again...), I may postpone building the LCO panels this year. Instead use the existing OEM controllers (bypass the individual AA batteries) for their Continuity lights, removable Safety Keys, & Launch buttons. Just build a terminal strip on the end of the STP CatX cable and clip the OEM controllers to this "extension" system instead of directly to the rocket igniters. Keeps the added safeties, distance, logic, etc...

This is a lot of stuff to munch on.
Good stuff! Keep it coming!
 

Thread Starter

LydaRA

Joined May 6, 2021
37
The extra resistor in-line with the current source serves no purpose.
Which one? The reference shows a resistor dirrectly off of both the Output and Set pins.

The pot on the relay- why?
To be able to dial in the pre-igniter and post-igniter resistances....trying to get a better range on what we read from the actual igniter.

The buzzer in series with the ignitor- why? It will not fire.
I moved that to be parallel, to reduce impedence on the firing. But want a passive "oh shit, back away" alert if the relay contacts weld (or anything else fails) so there is power on the igniter cable when someone comes to the launch pads.

Switching both ends of the ignitor - why?
So as to make both the continuity test and the launch separate and simple. To add the post-igniter resister to the continuity test, yet keep it out of the launch path, cannot simply take the igniter to ground.

The continuity voltage straight to the Arduino? The continuity voltage is too low to be measured by the ADC correctly.
The ADC inside the ATMEGA168 is 10 bits, if the full-scale range is 5V, each bit represents 0.0048 Volts, a "good" ignitor will read only 12 counts, out of 1024...
That's my real fear. I keep hoping against hope that someone will contribute an example circuit that helps solve this!

If your "auto-reset fuse" is a PTC type fuse, you need to rate them much higher than the intended operating current, else they will "nuisance trip" when no fault is present.
The IRF 540 is a poor choice for 5V gate operation, it will probably work here, but there are better parts for the job.
So pleasse re-check me here... Worst case, complete battery short: 10 igniters x 2A each + 1A logic. But I pad the batter yfuse to 30A instead of just 21A. If the individual igniter channels fail, 2A each....but I fuse them at 5A. Although 12V automotive relays, none should require 1A on the coils, so pad to 1A. Yeah, once all of the logic chips are included, may have to raise the fuse on the logic stuff.

Note that RS485 really does need a ground, your link shows only 2 wires.
Yes. Updated. But I still show a simplified, partial circuit....without connectors or twisted pair callouts...
 

Attachments

A little at a time:

Phoenix connectors: 1620879099203.png

Pins 6 and 9 of the relay.

Why? With a constant current source, you can actually monitor the voltage at this point. This would also be the same point as your A/D converter, but I initially assumed that you might not use one.
 
Your limited to 200 mA with 1 LT3092.
Yes, and want to take that down to like 25mA (half of what Estes says is safe for testing). But then do I need one per channel....since variable number of channels may be active at any time? Started by simply sourcing from an Arduino pin and resistor....but 10 rockets (NAR max) times this current may max out the Arduino...

I don't really remember a 25 mA spec. I think the light bulb surely exceeds that.

25mA across 1.9 ohms is 47.5 mV. How do you expect to pull that off? Meaning measure it?
 

Thread Starter

LydaRA

Joined May 6, 2021
37
[QUOTE="KeepItSimpleStupid, post: 1629202, member: 234053
Pins 6 and 9 of the relay.
[/QUOTE]
The component in KiCAD doesn't show a pin 6 on either relay.
 
I originally showed a subordinate 5V bus for the logic parts. But was told to simplify to just drive all of the parts directly off of the 12V. (Heard Arduino prefers 9V input, but can do 12V.) Not sure, but...
the parts are either 3.3 or 5V. Logic may be 5V tolerant or not. you can't expect the Arduno pin to accept 12V or output 12V There is linear regulator (A 7805 is good for 1-1.5Amps) on some boards. The power dissipation gets exceeded and you need 3V minimum for the regulator to work, so 8VDC. 9V adapters are common.

if you used 12V and it droped to 5V and you used 1Amp, the regulator would dissipate (12-5)*1A = 7W. The heat sink should really be able to handle short circuit current. 9V in makes it 4 Watts. A switching regulator drops the dissipation considerably. It also introduces ripple and usually a large amount like 50-100 mV. That's where the LT3042 shines. It's very low noise.
So, analog parts are much happier.

 
[QUOTE="KeepItSimpleStupid", post: 1629202, member: 234053]
Pins 6 and 9 of the relay.
[/QUOTE]
The component in KiCAD doesn't show a pin 6 on either relay.

OK, whatever pins the ignitor connects to.
 

Thread Starter

LydaRA

Joined May 6, 2021
37
[QUOTE="KeepItSimpleStupid", post: 1629202, member: 234053]
Pins 6 and 9 of the relay.
The component in KiCAD doesn't show a pin 6 on either relay.

OK, whatever pins the ignitor connects to.
[/QUOTE]
I'm considering a 12pin aviation connector....8 igniters in one quick connection on the outside of the box!
 
I'm considering a 12pin aviation connector....8 igniters in one quick connection on the outside of the box!
I kinda got the idea of each kid has a launch controller which is some distance away from the rocket and then some sort of firing thingy, like a dental x-ray or "nurse call" button some distance away.

e.g.

1620882533617.png

with maybe large countdown display(s) that everyone could see.

The battery for 10 ignitors. lets use 2 ohms. 2|2 2|2 2|2 2|2 2|2 = 1|1| 1|1 |1 or 0.5|0.5 | 1 or 0.25 | 1 or 0.33 ohms

12/0.33 = 36 instantaneous amps. here https://docs-emea.rs-online.com/webdocs/0b5b/0900766b80b5b643.pdf is a typical SLA battery, It can deliver 180 A for 2s and it has an internal resistance of 14mΩ. Your wire resistance will be dominant.

Now, I suppose you would want to keep the battery away from the rockets and protected. What's a typical spacing of the rockets?

How many times on a charge do you intend to launch?
 
Top