Low Voltage Coil Gun

[Andrew] sent in his low voltage coil gun. He used some control hardware that most hardware hackers probably don’t have on their shelf, bit it’s still a good proof of concept. Each coil is driven by a dedicated relay, and a PC power supply feeds the system juice, while a programmable logic controller does the work. Since it’s just a matter of triggering the coils in order, the PLC could be easily replaced by a micro controller.

20 thoughts on “Low Voltage Coil Gun

  1. Very interesting project. I had an idea for a similar system several years ago but never built it. Glad to see somebody built one with at least some degree of success.

  2. First, the PLC is absolutely the wrong way to do this, since as he mentions it’s overkill and doesn’t provide good enough timing.

    Second, his timing is going to be bullet-mass and launch-angle dependent, the right way to turn the coils off would be with a detector at the center of each coil sensing that the bullet has arrived. Since the coils are handwound anyway making room for a LED/photodetector pair would have been trivial. In fact, with that approach you could do with no controller at all.

    It’s the current pulse, not heating, that damages relays, and the high voltage kickback from inductive loads. However, if he’s using industrial relays rated for 10A they will probably last quite awhile since he isn’t cycling the thing every half second. The clampdown time might affect his timing, though; I think I’d have tried a simple bipolar transistor like a 2N3055 with a diode reversed across it to absorb the inductive kickback voltage. It’s not like you need an H-bridge or PWM to do this.

  3. @ localroger:
    I’m aware that the PLC isn’t ideal for this application but its what I had on hand. The timing variation wasn’t actually an issue with this configuration. As far as photo detectors go they probably wouldn’t be the right approach here as they would require an even faster response time and, using scr’s triggered by the photo diodes only works with capacitors since you would need additional control circuitry to terminate the pulse.
    This particular logic controller is also relay based but they were rated at 2A so I used larger ones to protect the expensive controller. This addition did cause the clamp down to become a limiting factor (I doubt I would be able to get it going any faster)

    Its also not ment to be a finished project just something I came up with on a rainy weekend so I used what I has and what I could get locally.

  4. One thing that might be decreasing the efficiency a lot here is that in the pictures it looks like the launch tube is aluminum. A large fraction of the coil output is going to be going into eddy currents in the tube if it really is made of something conductive. Either replacing the tube with something nonconductive such as glass or plastic, or slotting the metal tube to reduce eddies should give a stronger pull on your slug.


  5. @ Tinker:
    Because this project was really a spur of the moment thing the only barrel material I had on hand was stainless steel and as far as slotting goes SS is really hard to machine/cut.

    @ Jim: I’m not sure why that would help maybe the posted code will clear things up. I did start the second and the third coil timers at the same time but that was due to the slow reactions of the relays. Its worth noting that the coils due technically draw more power than the PS can handle so the pulse times had to be shorter than the time it took to drain the PS’s caps or it would shut off.

    As requested youtube:

  6. Great project! I always wanted to do something like this so I was wondering if you could mention what type of wire you used, and if you could provide some measurements for the projectile / coils / tube. Basically I think its very impressive design and something that would be easy to duplicate, but maybe with an 18F2550 instead of the plc. Thanks in advance.

  7. tillin9:
    Here are all the specs I could compile.
    4.1 grams 20mm by 7mm
    215mm stainless steel
    [projectile]{coil 1}[gap 1]{coil 2}[gap 2]{coil 3}
    I can’t measure the projectile area because I fit that into an aluminum block which I tightened onto the barrel and adjusted through trial and error.
    Coil 1: .4ohms 21mm long
    Gap 1: 57mm
    Coil 2: .4ohms 36mm
    gap 2: 40mm
    coil 3: .3 ohms 35mm

    The coils were wrapped with 22 gauge magnet wire. I used a milling machine to spin the tube while I wrapped it so I don’t have the exact number of turns.

    Most of these parts were made without specific measurements so aside from the coil resistance I don’t think much many of these are crucial.

    I never wrote a schematic for this circuit because it seemed pretty self explanatory.
    Is there a particular part that is unclear?

  8. I think what jim meant is that it would be easier to have one global timer and have the relays open/close on given time based on that counter.in that way you would have only one timer (less timer on the plc not that it would matter anyway)and all the timing values could be adjusted from the interface pannel..

  9. I did an identical project with some friends a while back. I had trouble getting the timing right with no sensors. It seemed that even tiny differences in the starting position, power supply, friction etc. got amplified through the three coils to the extent that sometimes by the thrid coil the timing was so far out it would backfire yet other times it would work great.

    My conclusion was you really need some sensors to combine with the timing. One after each coil would probably suffice and the rest of the timing can be done in a pic. My ideas for sensors were light gates (ir led and detector pairs) or metal brushes that connect with a metal projectile. Timing accuracy is probably only important to ~500 µS, so pretty much any kind of sensor would work. I ran out of time so all those improvements never got done.

    One thing that seemed to limit it was the de-energisation time of the coils – effectively we couldn’t switch them fast enough due to arcing in the relays.

    Watch out having sensors near the coils, because the magnetic fields from the coils could induce currents in the sensor wires and fry your sensor or controller.

  10. I’m thinking of doing something similar with arduino. Would a pen (for barrel) wire, a power supply, the arduino and some relays. Is this doable? If i use large relays it seems pretty scalable to larger capacitors, coils and barrels. Do i need to use insulated wire or bare copper wire?

  11. Mcool:
    You definitely need insulated wire!
    I think what you meant was magnet wire versus rubber jacketed wire. In this case you want the coil to be as dense/tight as possible w/o causing a short. This means enamel coated magnet wire is your best choice.

  12. Wow for a rainy day project that thing is _AWESOME!_.

    The best I’ve done on a rainy day are some simple electromechanical robots
    This is extremely cool given the materials you had to work with.

    I like how it’s getting the creative and technical juices flowing in the comments too!

    You can always tell a good project on hack a day by the quality and content of the comments.
    They are always a great read.

    Kudos andrew!

  13. This comment is directed at anyone looking for super-fast switching (not just Andrew) or looking to spend more than a weekend on a coil gun. Great hack, Andrew!

    Using relays for switching can introduce large mechanical delays, so using a solid state approach is much faster if you can get it implemented correctly. Using BJTs, like the 2n3055 that localroger suggested, could probably work but if significant amps are required then it will not be able to source all of that current. Plus, BJTs are current-controlled current sources, and when used as a switch, their amplification is very small (approx 40 perhaps), compared to > 1000 when used as an amplifier.

    The best option IMHO is to use a low-voltage MOSFET. The diode for suppressing inductive voltage spikes is built into the FET, plus since the FET can only block say 35-ish volts, you can get some SUPER FAST switching, like in very small microseconds. These are the devices used in high-frequency switching power supplies, like the CPU power supplies on the motherboard that switch in the 100’s of kHz.

    Also it’s important to know that during the inductive voltage “kick,” current is still free-wheeling through the diode and coil, so the coil is not yet turned off. Maybe that was said above but I missed it. You’ll probably want to shut the coil off before the projectile hits the middle of the coil or you may end up slowing down the projectile. That is, of course, assuming the switches/FETs/etc can be controlled accurately enough to do so.

    These are by no means the only way of doing this, just my overeducated thoughts on the subject.

    Again, Andrew, this is a really cool hack and I echo strider_mt2k’s thoughts on your work!

  14. I was wondering,using a pair of diode/photo receptor pair at beggining of each coil could it make it better than using a micro controller?And talking of it,can someone tell me where to get such devices and how to run them properly? If anyone interested in helping me,i’ve got acces to several machinery to do an incredible job (Milling,Turning,PCB making and stuff like that) i’m asking for someone that know enough in this subject to help me create a larger versions of this,better faster and stronger. if any interested,email me jordan2_delta@hotmail.com

    And oh,it’s a really nice hack,I watched your video on youtube man,your awesome ^^

  15. excellent hack!

    suggestions for improvements:
    1. use extruded plastic (eg, borosilicate). as mentioned above, eddie currents are not your friend. example: take a magnet and drop it through a length of copper pipe…..THAT is eddie currents at play.

    2. consider using simple mechanical triggers for your coils eg, two bare wires inside the plastic tube that are bridged by the projectile.

    3. plan for acceleration; use more than three coils spaced with <= logarithmic spacing. once you pass a certain velocity – maybe past the third coil – you’ll have to use electronics to manage the coils, and the 2n3055 idea above will do the job. you can use an MC to detect the initial coil’s trigger rate and deduce the velocity of the projectile. if you know the velocity, you can calculate the trigger times and pulse width for the subsequent coils.

    4. consider higher current/voltage sources, but DO BE CAREFUL. 30V at 1ma can kill you.

    I put a welding rod through genuine .mil armor plating using an approach similar to your own; a simple charge circuit, and five discarded radar delay line caps. make sure you can stop the projectile…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.