Burst mode Mosfet
Creating a ”Burst Mode MOSFET”
Do you want your gun to have burst mode?
Well the simple option is to go out and purchase a Mosfet / ASCU system for your gun that has a burst mode build in. But if you are like me and don’t mind a little work, you could take the long but fun and satisfying way and build your own “Burst mode Mosfet” unit.
First here is what you will need:
Solder. ( The metal like wire )
Heat shrink rubber. ( Electrical tape could be used )
Exacto knife / Hobby knife.
You really should support the Arduino community and buy a real one. (But clones can go for as low as 3-5$ USD)
- I personally used an “Arduino nano 3.0” for this build (It’s simple and small but big enough to solder on headers by hand) but any microcontroller will do fine. If you want to be able to follow this guide step by step you really should use the same as me!
PCB prototyping board
You can do it without (Like I did in the Basic Mosfet guide) but it’s harder to prevent things from touching each other an shorting out.
Basic Mosfet unit
Or you can make that part yourself while you are at it. Se futher down for details.
In this guide we will make this as well (It's realy simple just 2 resistors). Se futher down the page for details on the voltage divider.
Materials for the Mosfet: (Required to follow this guide)
A MOSFET unit in TO-220 package. (E.g. the IRF4110)
Just select a MOSFET unit that has a low resistive value even under low voltage circumstances. It should be rated at (25 V or above 120 A or above and support 20 A at 4v or less). See also the Basic Moseft guide that explain how to select a good mosfet.
20 ohm resistor (1/4W)
Don’t need to be exact: Below 50 is required and above 5 is best … )
2K ohm resistor (1/4W)
Again it don't have to be precise, anything from 1K - 10K will work (K as in thousands).
The voltage divider:
Making it your self is simple, because it's just 2 resistors. The resistor values are not the most important but it should be from 1k ohms and up. The important is that they have a factor of 1:10 eg. 100K and 10K, or 10K and 1K ohm. This is used to lower the battery voltage from the airsoft gun to a save value that the arduino can read without taking damage. It works so that som ammount of the electrical energy flows into the Arduino, and the excess flows around so that the arduino don't take damage.
I used the folowing values:
100K ohm resistor.
If you know electronics: (Otherwise you can skip this section)
If you are well into schematics you can take a look at the wiring diagram. And if you really want to make a custom PCB you can take a look at my PCB sample drawing for some inspirations. Personally I just use prototyping PCB with cobber lanes that I cut where I don’t want connections to go. But there are many ways to go with electronics prototyping. If you already know what you are dooing just do as you feel best with.
Beginner: (And details for others.)
If you have access to a solderless breadboard (Search eBay) I recommend that you lay it all out on the breadboard and try it out and find any potential problems on the breadboard before you wire everything together. Because when it’s all made into one small unit it’s harder to trouble shoot. If you don't just follow the guide.
PCB layout for inspiration.
Watch how to make it on the youtube channel.
If you are more to seeing a step by step guide you can see a video description in my youtube channel. Here I show every step and also go through the most important information.
The code to upload:
The code I have made is very simple. It initializes the Arduino micro controller, and then goes into a loop where it does the folowing:
If the trigger is pressed it open’s the Mosfet so the motor runs and the gun shots.
It continues to be open until one of two things happens.
1. If the trigger is released before the 3 shots. Then it shuts off the Mosfet again and wait’s for another trigger pull.
2. If some amount of time has gone (This amount of time should be adjusted to the time it takes to shoot 3 e.g. shots), then it shuts off and stop's shooting after the time has gone.
That’s basically what the code does. But there’s a lot of minor other stuff in the code that you can play around with if you feel like :-) Like if you want to have battery monitoring and protection on there as well the code is there to support it.
Walk through of the code:
Instead of walking through the hole code here on this assembly guide. I have made a seperate page showing the code in details. This page also explains in greater details how the code work.
Go here to see a code walk through.
Estimated price tag of the unit.
Arduino 5$ USD(eBay Search)
Mosfet components 2$ USD (eBay: IRFB4110 - 2K ohm resistor - 20 ohm resistor)
Voltage devider 1-2$ USD (eBay: 10K ohm resistor - 100K ohm resistor)
PCB prototyping board 2$ UDS (eBay: Prototyping-Breadboards)
Wires, solder, headers, and plug’s 2$ UDS (eBay: Deans)
Total around 12-15$ USD
Be aware that if you get a clone Arduino (The ones not using the FT232RL) you NEED to install drivers on your PC your self! If your PC gets to download the drivers from Microsoft then it may destroy your clone Arduino! So get the real deal or be careful. Consider your self-warned.
Step by step guide:
I asume you have gotten the Arduino Nano v3.0 like I have otherwise you must figure out what pins you ned to use instead. And also change the code accordingly. The pin names I reffer to are printed on the Arduino board, otherwise find a pinout picture on google.
First step is to cut out the headers you need (if you like me got a row of header pins). You need to cut out 2 single pin's and one double (with 2 pins).
Thease header pins needs to be soldered on to the arduino unit. The double pins goes onto the GND and VIN pins. The 2 single pins goes to A0 and to D5.
The PCB prototyping board needs to be cut to size. You need a peace the same size as the Arduino board. Put the borad on the PCB and draw around it with a pen. IMPORTANT: Make sure the lanes goes on the length of the unit! Then cut the PCB with a small saw, or use a knive, or dremmel. What eaver you have lying around.
Cut the PCB cober lanes to isolate the arduino pins, and also isolate the pins of the mosfet TO220 package. Se the picture for where I cut the lanes. You can cut them using a hobby knive.
Then solder on the Mosfet TO220 package onto the PCB.
Solder the 2K okms resistor between the 2 outer legs of the mosfet.
The 20 okms resistor is solderes onto the left leg (The gate pin) of the mosfet, and the other end of the resistor is soldered on to the PCB pad next to where the arduino D5 pin goes through. So that there will be a connection between D5 on the arduino and the 20 ohms resistor.
The 2 resistors forming the voltage devider (The 10K and 100K ohms resistors) should be soldered on next to where the arduino A0 pin will poke through. One end of each of the resistors should be in contact with the A0 arduino pin.
The other end of the 10K resistor goes to the ground pin of the arduino. And the other end of the 100K resistor goes to some other point on the PCB where we will later hook up the controll wire.
On the image below I have painted blue lines so you can better see where the ends goes.
Put on the arduino board, and remember to torn it the right way :-) Then just solder the pins on to the PCB to make the connections.
Then you should add small wire peaces so that you can add connectors. I personaly use Deans connectors because they can carry the initial motor current draw spikes. This increase trigger response a little.
Only the two negative connectors on the dean plugs goes to the PCB board. On one side of the PCB the wire is connected to the Drain pin of the mosfet. On the other end of the PCB it's connected to the drain pin. Note that: The drain and source pins are the left most pin, and the top metal peace.
The positive side of the Deans are connected directly dogether with wire. But also attach a small thin wire to one of the positive ends. The other side of this small wire is connected to the VIN pin on the arduino, so that the arduino can get power from the battery.
Then just add a long thin wire (The control wire) to the place you connected the 10K ohms resistor earlier. So that the controll wire is connected to one end of the resistor and the other end of the resistor should already be connected to the arduino A0 pin.
The other end of the control wire should be connected to your airsoft trigger just like when you install any other kind of mosfet unit.
Now that's it you are done.
Download the code:
Note: If you don't know how to upload the code it's eksplained here on this side:
Code explained, and an upload guide.
If you want the arduino code you can get it here. I have made 2 versions. A simple one that just does the basic stuff.
Simple version download
I also made a more advanced one that includes battery protection. But it requires allot more pressision of the values to work so if you don't want to risk having to play around with it, just get the simple one. :-)
Advanced version download
Also if you want print my PCB drawing for etching I have the raw file here. Note that it's made in gimp and not scaled to match any specific printer, so you will have to scale it to match your printer.
PCB layout in Gimp (Right click here and save)
Also I constantly make changes and upgrades with more and more features. If you want the latest version with all the newest upgrades in the code, then go to this page:
Download new versions.
I have been asked a couble of times if you have you rewire your gun in order to use my mosfet desing. And the answor is: YES, just like any other mosfet design out there you need to put positive voltage directly on the motor and the trigger, and then connect the small control wire to connect to the oter side of the trigger. But the change is verry simple. On the trigger (On V2 gerbox it's inside the gearbox shell) you just move one wire (See the picture below) and connect the small control wire to the now empty spot where you moved the wire from.
After this guide has been made a number of people has contacted me asking me how to switch back and forward between Burst mode and Full Auto. This is not implemented in this version of the ASCU mosfet (Semi will still work as usual). So I have now created a page describing how to add this feature to the mosfet.
Click here to see how to improve the mosfet.