Hello, came here from HAD with a couple suggestions. The biggest one I cannot stress enough would be an arming switch that disconnects power to the relays when in the disarm position. Not only is this a critical safety measure, it may be a legal requirement for any professional or DIY firing system in your or your viewers' jurisdictions. It can be a toggle switch, a key switch, anything as long as it's opening the firing circuit while the device is connected to power to prevent accidental ignition. The other would be a test mode for use while disarmed. If I recall, the relay boards you selected have status LEDs built in that you may be able to use for that. In fact, just having the disarm switch setup along with some light piping on the LEDs may be enough to give you that functionality. This is especially helpful if you are setting things up with custom timings so you can visually see when each channel would be going off. Stay safe and have a happy 4th y'all!
Thank you for posting this. The remote relay I have in there does disconnect power to all the relays, so even if the micro controller goes crazy, the remote can turn it all off. But I didn’t specifically state that in the video. The simulation switch is a great idea. The relays do have an led but is not easy to see. I’ll have to think of a better design next time. Thanks for watching and for the feedback.
If his relay modules are anything like the relay modules I'm using in my project, those LEDs on the modules light up when the coil of the relay is energized. Powering channel specific LEDs, without also energizing the relays, would not only require a second pin for each channel on the relay module, but a second IO pin on the Arduino for each channel. Then, in "test mode", the system would send a high signal to each channel's LED pin using the timing in the code & in "fire mode", it would send low signals to each channel's relay pin, using the same timing code. A more invasive mod, would be to cut the traces on the relay module PCBs, after each LED, but before each rely & put maybe a transistor, used as a switch, across the cut traces, so in "test mode" the circuit to the relays would be disconnected, but in "fire mode", the circuit to the relay would be reconnected. That way, a low signal to that channel in "test mode" would only light the LED, but in "fire mode", the same signal would light the LED & energize the relay. Either way, that's a lot of modifications, & possibly IO pins, for something you could test by simply running the program before connecting any e-matches to the relays. Just my 2 cents, which, with today's inflation, isn't even worth 2 cents anymore. :)
If you thought your life was empty before threaded inserts, imagine how we feel without threaded inserts OR disco ball LEDs! Great project. Thank you for sharing it.
Awesome video! A simple question… the current that flows from the battery directly to the ignition fuse should be limited by a resistor? Because I would try a similar project with a LiPo battery but I’m a little skeptical about the massive current that can be generated from these batteries…
I would say that it doesn’t because you want full current to ignite the fuse. I suppose you could put a resistor on there if you are concerned that the wires could fuse causing a short. But it would have to be a high wattage resistor like a 10 watt or something.
@@CodeMakesItGo Yes, an high amperage is needed in order to ignite the fuse but also the relays have a current limit due to their mechanical switch properties (I think). Tell me if I’m wrong but this high current is generated from a short circuit a the end of the cable, on the fuse, right? Every real battery cannot supply infinite current on a short circuit, so every technology has a different discharging rate. In a normal situation with a small Pb battery or a Duracell for example we assume that the max current can be few amps. In this case, LiPo can supply hundreds of amps without any problem, so this is not a good deal. After some use relays can be damaged with the very high current generated from the LiPos, also if this current is supplied for a very short time. Perhaps the best way to prevent this, as you said, is to add an high wattage resistor. I will try, thank you!
@@CodeMakesItGo Hi, thank you for your interest. I asked this question on Reddit in a firework’s community, and I have big news. Firstly there is no short circuit in any normal situation, the fuses have a low internal resistance (usually about 2 ohm) so the current can be high but not as in a short circuit. A normal igniter does the job with 600mA, 1A and rarely on higher currents. Using ohm’s law we can determine the current flow, as long as we assume that the power is DC: I = V/R. 14volts / 2 ohm = 7A. Power at this moment is P = V*V/R, 14*14/2 = 98W. Probably this is a little bit too high, but we can limit this current through an high power resistor in order to increase wiring life and general safety. For example a 10ohm or even less I think can do the job (10 euros on Amazon). They also had some concerns about the relay choice, saying that there are better choices out of there. Mechanical switches such as relays are more prone to failures, due to their “dynamic” behavior. Imagine to damage only one relay, if it stop working in a open circuit you “only” miss the ignition and your show is ruined or at least incomplete, but in the worst scenario the relay get stuck in a closed circuit, as soon as you plug the battery or you turn on the system the fuse will ignite, exposing you and whatever people next to you in a dangerous situation that can lead to injuries. They said that MOSFET or BJT are perfect for this application, reducing not only the cost but also increasing the general safety of your build. I hope you will find this helpful! Honestly an entry level 4 channel fireworks unit costs about 30 euros, and in order to start this project I need spend at least 50 euros… if you need several outputs like in your video I think from an economic perspective it is convenient, but for a simple unit with 4-8 channel I don’t think so… I will decide in the next week😉 thank you and have a nice day!
I can not confirm from experience but from what I read this is possible. There are actually 54 digital IO but I reserved 2 of them for serial. So supposedly you could get 54 if you disable the serial coms too.
I used Arduino IDE. All the code and wire diagrams are here. github.com/CodeMakesItGo/FireWorkController2021 Let me know if you need any help. Have fun and good luck!
I've got a weird issue; the outputs start having a delay after the 2nd output, getting longer, the 10th output for example is 3 seconds late. so while I put the output at 175000, it actually goes on at 178000-ish. Any ideas what could be causing this?
I know the millisecond timer isn’t perfect and drifts a bit but it should t be that far off in only 3 minutes. Try increasing the serial output to 115200 or remove all the serial output messages. Possibly there is delay in the serial output and it can’t complete within the 100ms window. But that seems unlikely too. If that doesn’t work we might have to switch to interrupt driven timer to get more accurate timing. Let me know what you find.
The range is pretty low with this remote, about 100-150ft. But you can use a remote with more range like a Lora radio and get 1,000s of feet if needed.
Haha no but thanks so much for asking. I sent the controller off to my friend in ND and he recorded video but never finished it. Maybe one day it will appear…maybe not.
@@AndrewHarbert13 he said it did and he even synced it to music. He connected one of the relay outputs to trigger the play button on an mp3 player. Hopefully will get the video one day.
@@CodeMakesItGo 1. Test mode with leds to check proper cable connection 2.Option to connect 2 or more firework controllers to have more then 32 relays, maybe via ethernet cable
I would simply like to have two modules of 32 relays each (64 total) But the second module would be an extension of the time of the first module. example "{52, 15500}, // OUTPUT 31 1 module {53, 16000} // OUTPUT 32 1 module {22, 16500}, // OUTPUT 1 second module {23, 17000} // OUTPUT 2" second module Its possible to make this with one remote switch ? or just 2 same remotes but on on diffrent signal
You could definitely link these together with a small software change. When the first firing system is complete a signal could go high to trigger the second. You could link this to as many as you’d like. Assuming they are close by. If you want them far apart then we could use a Lora radio to start the second one. But yes, entirely possible to trigger them synchronously by a single remote switch.
Yes of course. Because the Arduino, remote control, and relay boards are 5V powered, I used a voltage regulator to ensure the output from my power source is 5V. In my case, I would run this off off of a 12V battery which you will need for current reasons to light the fuses. So the voltage regulator is connected to your power source and feeds the Arduino shield 5V. The relays are simpler because the digital logic level from the Arduino will trigger them. Just plug the Arduino output line to the input of one of the relays to trigger it. If the relay board is powered, you should hear it click and the light for that relay should illuminate. Here is the wire diagram I used for the project. github.com/CodeMakesItGo/FireWorkController2021/blob/main/WireDiagram.pdf If there are more questions or if you are having a problem you can't figure out you can email me at jason.altice@codemakesitgo.com and we will figure it out together. Hope this helps.
Couldn't this build be expected to struggle a bit at even the arduino 6V max current? Just based on the generous assumption that we'd see anything close to 4A with even an industrial-grade IoT efficient power supply, or even fairly arbitrariy estimates of ohms/resistance..it seems like the pacing would need to be kept at 'easy listening'. pretty much the entire show... It might be a decent thing to also toss out a disclaimer indicating that this may not be the safest way to go either - since underpowered systems can pose some pretty unpleasant risks, i.e., Unreliable or erratic ignition: If the current demands exceed the capabilities of the GPIO pins, the ignition of fireworks may become unreliable or unpredictable. This could result in misfires, delayed ignitions, or unintended firing sequences, which can create unexpected hazards.- like setting fire to stuff you'd normally try to keep from turning into piles of ash, like your house, friends, DIY 'Mr. Fireworks', etc.. anyway - although I'm not generally one to barge in with the intention of sucking all the joy out of what I fully consider honest and pretty inspirational efforts at innovation - having felt myself getting a bit too carried away oblivious to some of the pretty real dangers, it seemed only right to throw a caution out - since that's not something that seems to have gotten proper emphasis among the comments I have read so far... Given what I've seen the arduino spec'd per pin at 40mA max - nevermind how those who are most typically drawn to the spectacle of making things vividly explode in the air are so often regarded as much less impulsive and naturally more resistant to such unacceptable breachd of decorum in triggering multiple parralel ignition cues never once in tight orchestration with AC/DC's "Riff Raff", and couldn't possibly be so undisciplined as to deplete a ~3A power budget prematurely in a 'brown-out' that choppily disrupts/halts what would have likely reached a much more thrilling apex with the availability of ~10 additional amps. Anyways, I'll be done now. Thx :)
Hello, came here from HAD with a couple suggestions.
The biggest one I cannot stress enough would be an arming switch that disconnects power to the relays when in the disarm position. Not only is this a critical safety measure, it may be a legal requirement for any professional or DIY firing system in your or your viewers' jurisdictions. It can be a toggle switch, a key switch, anything as long as it's opening the firing circuit while the device is connected to power to prevent accidental ignition.
The other would be a test mode for use while disarmed. If I recall, the relay boards you selected have status LEDs built in that you may be able to use for that. In fact, just having the disarm switch setup along with some light piping on the LEDs may be enough to give you that functionality. This is especially helpful if you are setting things up with custom timings so you can visually see when each channel would be going off.
Stay safe and have a happy 4th y'all!
Thank you for posting this. The remote relay I have in there does disconnect power to all the relays, so even if the micro controller goes crazy, the remote can turn it all off. But I didn’t specifically state that in the video. The simulation switch is a great idea. The relays do have an led but is not easy to see. I’ll have to think of a better design next time. Thanks for watching and for the feedback.
If his relay modules are anything like the relay modules I'm using in my project, those LEDs on the modules light up when the coil of the relay is energized. Powering channel specific LEDs, without also energizing the relays, would not only require a second pin for each channel on the relay module, but a second IO pin on the Arduino for each channel. Then, in "test mode", the system would send a high signal to each channel's LED pin using the timing in the code & in "fire mode", it would send low signals to each channel's relay pin, using the same timing code. A more invasive mod, would be to cut the traces on the relay module PCBs, after each LED, but before each rely & put maybe a transistor, used as a switch, across the cut traces, so in "test mode" the circuit to the relays would be disconnected, but in "fire mode", the circuit to the relay would be reconnected. That way, a low signal to that channel in "test mode" would only light the LED, but in "fire mode", the same signal would light the LED & energize the relay. Either way, that's a lot of modifications, & possibly IO pins, for something you could test by simply running the program before connecting any e-matches to the relays. Just my 2 cents, which, with today's inflation, isn't even worth 2 cents anymore. :)
This is a pretty exellent/useful comment. Good to see a bit more of a focus on safety. Cheers :)
The battery is external. Can be unhooked very easy vs adding a switch
If you thought your life was empty before threaded inserts, imagine how we feel without threaded inserts OR disco ball LEDs! Great project. Thank you for sharing it.
First time seeing your videos. This was hilarious to watch. The humor is as good as the project.😊
Thank you so much 😊 I hope to have more out soon.
Nice one. Thanks. Now I know what's been missing from my soon to be perfected life.
Haha nice. Hard to believe that threaded inserts is all it takes.
Did you get the disco ball too?
Nicely done!
Great Work, Thanks for sharing this gift.
Thank you!
@@CodeMakesItGo im planning to build one, can you help me for those im not familiar with?
Of course, I’m happy to help. Easiest way to contact me is email. Jason.altice@codemakesitgo.com
Awesome quality
Thank you!
Quality content sir! Just wish I'd found it a few days sooner, probably going to have to wait till next year ;-)
Thank you 😊
Is it next year yet?
Awesome video! A simple question… the current that flows from the battery directly to the ignition fuse should be limited by a resistor? Because I would try a similar project with a LiPo battery but I’m a little skeptical about the massive current that can be generated from these batteries…
I would say that it doesn’t because you want full current to ignite the fuse. I suppose you could put a resistor on there if you are concerned that the wires could fuse causing a short. But it would have to be a high wattage resistor like a 10 watt or something.
@@CodeMakesItGo Yes, an high amperage is needed in order to ignite the fuse but also the relays have a current limit due to their mechanical switch properties (I think). Tell me if I’m wrong but this high current is generated from a short circuit a the end of the cable, on the fuse, right? Every real battery cannot supply infinite current on a short circuit, so every technology has a different discharging rate. In a normal situation with a small Pb battery or a Duracell for example we assume that the max current can be few amps. In this case, LiPo can supply hundreds of amps without any problem, so this is not a good deal. After some use relays can be damaged with the very high current generated from the LiPos, also if this current is supplied for a very short time. Perhaps the best way to prevent this, as you said, is to add an high wattage resistor. I will try, thank you!
Oh wow you’re right I was think just about a normal 12v battery from a power wheel. Lipo is a different story completely.
Hey I was thinking, the fuse only takes at most 2 amps at 12v to ignite it. So the relay should be safe assuming no shorts.
@@CodeMakesItGo Hi, thank you for your interest. I asked this question on Reddit in a firework’s community, and I have big news. Firstly there is no short circuit in any normal situation, the fuses have a low internal resistance (usually about 2 ohm) so the current can be high but not as in a short circuit. A normal igniter does the job with 600mA, 1A and rarely on higher currents. Using ohm’s law we can determine the current flow, as long as we assume that the power is DC: I = V/R. 14volts / 2 ohm = 7A. Power at this moment is P = V*V/R, 14*14/2 = 98W. Probably this is a little bit too high, but we can limit this current through an high power resistor in order to increase wiring life and general safety. For example a 10ohm or even less I think can do the job (10 euros on Amazon). They also had some concerns about the relay choice, saying that there are better choices out of there. Mechanical switches such as relays are more prone to failures, due to their “dynamic” behavior. Imagine to damage only one relay, if it stop working in a open circuit you “only” miss the ignition and your show is ruined or at least incomplete, but in the worst scenario the relay get stuck in a closed circuit, as soon as you plug the battery or you turn on the system the fuse will ignite, exposing you and whatever people next to you in a dangerous situation that can lead to injuries. They said that MOSFET or BJT are perfect for this application, reducing not only the cost but also increasing the general safety of your build. I hope you will find this helpful! Honestly an entry level 4 channel fireworks unit costs about 30 euros, and in order to start this project I need spend at least 50 euros… if you need several outputs like in your video I think from an economic perspective it is convenient, but for a simple unit with 4-8 channel I don’t think so… I will decide in the next week😉 thank you and have a nice day!
when using the mega 2560, can i program all 52 outputs to 52 relays? Thanks for all the great info!
I can not confirm from experience but from what I read this is possible. There are actually 54 digital IO but I reserved 2 of them for serial. So supposedly you could get 54 if you disable the serial coms too.
Could the relay boards be powered by momentary switches?
Yes they could.
How did you code everything? I am planing going the same route
I used Arduino IDE. All the code and wire diagrams are here. github.com/CodeMakesItGo/FireWorkController2021
Let me know if you need any help. Have fun and good luck!
Instead of fuses can I attach leds to the relays to replicate the fireworks
Definitely, just make sure your LED has a built in resistor or add one because it will be a direct short to power.
Here are large 12v LEDs with built in resistor. 10mm 12V White LEDs
amzn.to/33DyG5z
I've got a weird issue; the outputs start having a delay after the 2nd output, getting longer, the 10th output for example is 3 seconds late. so while I put the output at 175000, it actually goes on at 178000-ish. Any ideas what could be causing this?
I know the millisecond timer isn’t perfect and drifts a bit but it should t be that far off in only 3 minutes. Try increasing the serial output to 115200 or remove all the serial output messages. Possibly there is delay in the serial output and it can’t complete within the 100ms window. But that seems unlikely too. If that doesn’t work we might have to switch to interrupt driven timer to get more accurate timing. Let me know what you find.
What is the range when using the remote to fire it?
The range is pretty low with this remote, about 100-150ft. But you can use a remote with more range like a Lora radio and get 1,000s of feet if needed.
Did you ever have the 2nd part to this?
Haha no but thanks so much for asking. I sent the controller off to my friend in ND and he recorded video but never finished it. Maybe one day it will appear…maybe not.
@@CodeMakesItGo did it work well?
@@AndrewHarbert13 he said it did and he even synced it to music. He connected one of the relay outputs to trigger the play button on an mp3 player. Hopefully will get the video one day.
I`m waiting for 2022 version :D
Any suggestions for the next version?
@@CodeMakesItGo 1. Test mode with leds to check proper cable connection 2.Option to connect 2 or more firework controllers to have more then 32 relays, maybe via ethernet cable
Its possible to make 2 firing system with 2 same pilots but on diffrent MHz signal ?
What do you mean by 2 same pilots?
@@CodeMakesItGo sorry. I mean 2 the same remote switchs. But operating separately
I would simply like to have two modules of 32 relays each (64 total) But the second module would be an extension of the time of the first module. example
"{52, 15500}, // OUTPUT 31 1 module
{53, 16000} // OUTPUT 32 1 module
{22, 16500}, // OUTPUT 1 second module
{23, 17000} // OUTPUT 2" second module
Its possible to make this with one remote switch ? or just 2 same remotes but on on diffrent signal
You could definitely link these together with a small software change. When the first firing system is complete a signal could go high to trigger the second. You could link this to as many as you’d like. Assuming they are close by. If you want them far apart then we could use a Lora radio to start the second one. But yes, entirely possible to trigger them synchronously by a single remote switch.
@@CodeMakesItGo Thank you so much for answer ! its great idea ! hope I can make it :D
Can you tell me how do I connect relays to arduino shield and where do I connect voltage regulator
Yes of course. Because the Arduino, remote control, and relay boards are 5V powered, I used a voltage regulator to ensure the output from my power source is 5V. In my case, I would run this off off of a 12V battery which you will need for current reasons to light the fuses. So the voltage regulator is connected to your power source and feeds the Arduino shield 5V.
The relays are simpler because the digital logic level from the Arduino will trigger them. Just plug the Arduino output line to the input of one of the relays to trigger it. If the relay board is powered, you should hear it click and the light for that relay should illuminate. Here is the wire diagram I used for the project. github.com/CodeMakesItGo/FireWorkController2021/blob/main/WireDiagram.pdf
If there are more questions or if you are having a problem you can't figure out you can email me at jason.altice@codemakesitgo.com and we will figure it out together. Hope this helps.
Did my reply help? Everything working?
@@CodeMakesItGo yes it did, thanks for help..will let you know if i need further help
Hey what about using wifi or Bluetooth to control it
Absolutely could, maybe even control it through the internet. Good idea 👍
Couldn't this build be expected to struggle a bit at even the arduino 6V max current? Just based on the generous assumption that we'd see anything close to 4A with even an industrial-grade IoT efficient power supply, or even fairly arbitrariy estimates of ohms/resistance..it seems like the pacing would need to be kept at 'easy listening'. pretty much the entire show...
It might be a decent thing to also toss out a disclaimer indicating that this may not be the safest way to go either - since underpowered systems can pose some pretty unpleasant risks, i.e., Unreliable or erratic ignition: If the current demands exceed the capabilities of the GPIO pins, the ignition of fireworks may become unreliable or unpredictable. This could result in misfires, delayed ignitions, or unintended firing sequences, which can create unexpected hazards.- like setting fire to stuff you'd normally try to keep from turning into piles of ash, like your house, friends, DIY 'Mr. Fireworks', etc.. anyway - although I'm not generally one to barge in with the intention of sucking all the joy out of what I fully consider honest and pretty inspirational efforts at innovation - having felt myself getting a bit too carried away oblivious to some of the pretty real dangers, it seemed only right to throw a caution out - since that's not something that seems to have gotten proper emphasis among the comments I have read so far...
Given what I've seen the arduino spec'd per pin at 40mA max - nevermind how those who are most typically drawn to the spectacle of making things vividly explode in the air are so often regarded as much less impulsive and naturally more resistant to such unacceptable breachd of decorum in triggering multiple parralel ignition cues never once in tight orchestration with AC/DC's "Riff Raff", and couldn't possibly be so undisciplined as to deplete a ~3A power budget prematurely in a 'brown-out' that choppily disrupts/halts what would have likely reached a much more thrilling apex with the availability of ~10 additional amps. Anyways, I'll be done now. Thx :)
Rename to easy bird killer