Basic Nerf Stryfe Electrical Modifications, Part 2

Or, "Fuses and MOSFETs, oh my!"


In Part 1, we showed how a simple pair of 14500 sized rechargeable IMR batteries, without any rewiring or shell cutting, can take your dart speed from 60 fps to nearly 100 fps.  The one practical consideration I skimmed over was how to run two cells in a four cell blaster.  "Dummy cells" are the answer.


You can usually pick up a set from the same place you buy your batteries, or make your own:
On a graph of performance verses effort/cost, IMRs represent the biggest bang for the buck and the "lowest-hanging fruit".  It is all uphill from here, so if your thirst for performance is already satisfied, quit now while you still have some cash left in your pocket.

The graph, while meant to be humorous, also provides a bit of a roadmap of where we are going.  Everything from here on out will require you to violate the "do not modify blaster" molded into the shell.  You will need to open it, and learn how to solder. Time to become a rebel hardware hacker!

If you are still tempted to bypass your fuse at this point, let me show how little it will gain you, and why upgrading the wiring and adding a MOSFET is a better choice.

Comparison of average dart speed in feet per second of fused and bypassed fuses in stock blaster:

Comparison of average dart speed in feet per second of stock wiring and upgraded wiring with MOSFET control:

The increase in current that comes with MOSFET control means we need to change out the stock fuse if we are going to use anything other than AA or NiMH batteries.  The higher the current we subject a fuse of a given rating to, the quicker it will activate, and at some point that will start to occur during the normal starting surge.

A fuse rated at "1 amp" doesn't actually tell us everything we need.  Since starting current and stall current are the same, it is time we are really interested in.  We need the fuse to activate sometime after the starting current normally subsides (< 1 second) and before the motor is damaged (> several seconds).  The datasheet for a fuse series will give us what we need to select the correct fuse.  If we want the fuse to activate at 5A, we just need to find which fuse line crosses in the "seconds" time-frame.  In this case, it looks like the AHEF100 (C), which is confusingly identified as a "1 amp" fuse will activate in about 3 seconds at 5A.  Just remember that the graph, like our earlier starting current graph, is log scale.


As far as the actual operation of a MOSFET goes, and trying to keep this more practical than theoretical,  see the circuit diagram below in conjunction with the following points:
  • The "Gate" of the MOSFET is the signal from the rev switch that allows current to flow through the motor and from "Drain" to the "Source" to ground.
  • A small resistor from the "Gate" to ground keeps the MOSFET turned off until it gets an actual signal from the rev switch.  This prevents "floating" signals from accidentally activating the motor.  It can happen, and it is spooky.
  • An inductive load like a motor or solenoid will generate a voltage spike when de-energized as the magnetic field collapses.  This can damage the MOSFET, so a "off-ramp" is provide in the form of a "kickback" diode.
  • And finally, the MOSFET must be on the low side, or down-stream side of the load to work.  Much frustration will result if you try it the other way around.  Ask me how I know.
A MOSFET with a kickback diode and pulldown resistor can be just "wired into" a circuit, as demonstrated masterly by Tungsten EXE in this video, but I find it much easier and less error prone to design and test a circuit board.  That also lets me add a fuse!  In the Stryfe, I'm using the existing wiring tray cover screw locations and all components are on the back to avoid interfering with the darts.


My designs are freely shared as Open Source, so you can buy the PCBs and parts yourself, or modify the design to meet your own needs.  You can also save yourself the trouble and help me pay for this type of experimentation and design by buying a kit from me:
Tune in to Part 3 where we will finally upgrade the motors and hit the big league of starting currents.  And more fuses. 

Basic Nerf Stryfe Electrical Modifications, Part 1

Or, "How not to let the magic smoke of your blaster".


Quite frequently, a post on Reddit will ask, "Just got a new Stryfe, what mods should I do?"  Inevitably, a rapid barrage of well-meaning advice will overwhelm the newbie. Among these are:
  • Do not use IMRs, they are unsafe. You will have to rewire it and use LiPO.
  • Twist your fuse to bi-pass it.
The first, while always couched as promoting safety in our hobby, is unfortunate and mixed up with a lot of baggage.  It is also discouraging to anyone looking to take first steps in modding.  Recommending someone completely rewire their blaster with a high-energy source without proper understanding and most likely, as in the second piece of advice, without fuses, is in my opinion significantly more dangerous.  I think we should encourage beginners to take small steps and learn as they go.

Captain Xavier did a good video on rechargeable "AA-sized" batteries covering the history and why TrustFires, which are actually ICRs, not IMRs, ruined it for everyone.  My testing of various types of rechargeable batteries (other than ICR) show that they are safe in stock systems with the following caveats:
  • Stock motors only, not aftermarket which draw exponentially more current.
  • Reputable brands with capacity ratings, not cheap ebay stuff.
  • Two cells (2S) only, and with the stock fuse in place.
So, in my effort to "promote safety in our hobby", let's take a look at what actually occurs in a stock blaster when you pull the rev switch and fire a dart.  Ignoring the power source for a moment, let's concentrate on the motor, which is the primary factor in current draw.  The motor has several operating conditions:

"Total Current" is the combination of both motors, or total battery current.
  • Starting current, which occurs when power is applied but the motor hasn't started turning yet.  In our stock system with AA batteries, this may be above 2 amps, but will last less than a second.
  • Unloaded current: As the motor comes up to speed, until a dart is introduced to the freewheel, it is essentially idling.  In our stock system, this is under 0.5 A.
  • Loaded current: As the dart is introduced to the flywheels, the motor is loaded for the period it takes for the dart to clear.  At 16000 rpm, the flywheel is actually making a single revolution in under 4 ms, faster than an eye blink, so this occurs very, very, quickly, but the repercussion of the drop in flywheel speed plays out over a second or more.  This max current will be somewhat less than starting current, and will fall back to the unloaded current as the flywheels come back up to idle speed.
There is one other motor condition that is important to the discussion and that is stall current.  If a dart jams and the motors come to a stop, we basically have the starting current scenario with the exception that is does not resolve itself.  The motor will continue to draw maximum current unless a) the jam clears, b) the rev switch is released, or c) the thermal fuse comes to the rescue!  As the fuse heats up, it increases its resistance which, according to Ohm's law (I = V/R) throttles the flow of current, saving your motors.  After it cools down, usually in the same amount of time it takes to clear the jam, you are back in the game.

Stock System Stall Current and Motor Speed.
Of course, if you bypassed your fuse and fail to recognize a jam in the heat of battle, your motors become an expensive, non-resettable fuse, and the release of the acrid magic smoke occurs.  Hopefully you are carrying a secondary because your primary is literally and figuratively "toast".

Alright, enough doom-and-gloom.  We know a stock setup on AAs draws just over two amps and is anemic on dart speed.  What are the "first steps" for modding?  Change your batteries.  Let's look at data for the following:
We are primarily interested in dart speed, but in our quest for understanding the system, let's look at the startup current and flywheel speed of the various configurations.  Since this occurs on such a quick time frame, the x-axis is log scale. 


Clearly Ohm's law is still in effect as the LiPO and IMR systems, fully charged at over 8V, show significant increases in starting current and motor speed over the others.  NiMH, with the lowest voltage, is still able to provide similar starting currents as alkaline and LiFePO4, but the lower motor speed will show in lower dart speeds, relegating the venerable NiMH as merely a cost-saving option if you already have them available.


Time for a comparison of darts speed, which are the average of 10-shot series using Adventure Force waffle darts because, name brand, readily available, inexpensive, yada yada . . .

Battery
fps
% difference
AA x 4
67.5
-
NiMH x 4
66.4
-1.7%
LFR x 2
65.4
-3.2%
IMR x 2
96.5
43%
LiPO 2S
97.1
44%

Clearly, for a first step in performance upgrades without rewiring or shell cutting, the Nitecore IMR batteries look like a winner.  Their 6.5A current rating is clearly within the draw requirements of the stock motors.  The stock fuse, while engaging in about half the time of AAs during a stall test, is still protecting the system, even with repeated rev cycles.  If power is applied while the motors are still spinning, the starting current is significantly lower, so a natural time buffer keeps the fuse from overheating.

In Part 2, I will try and convince you that if you are going to open your blaster to rewire, that MOSFET switching is the way to go and will provide a bigger increase in performance for a given configuration than removing your fuses.  Standby for more data.  And more talk of fuses . . .

Nerf Mod Party

At our most recent family reunion, in addition to the traditional rock painting, this year we modified Nerf blasters and then had an epic family Nerf war. 


I really like the Nerf Disruptor for this type of "modding":

  •  They are inexpensive and available both commercially and at thrift stores.
  • The shell comes apart into several pieces for painting.
  • They are very easy for children to operate.

I made a short video that shows how to reassemble a Nerf Disruptor.  If you use another type of blaster, be sure to take a picture after you open it up to aid in reassembly!

I've published more details on how to do a Nerf Mod Party at: https://www.instructables.com/id/Nerf-Mod-Party/


An Experiment in Nerf Blaster Modification Performance

I've been dabbling in modifying Nerf dart blasters recently.  The modifications fall into two categories: appearance and performance.  Nerf "blasters" themselves fall into two broad categories: manual spring powered and electronic flywheel powered.  I've been drawn to all areas of the hobby, but have spent the most of my time with performance modifications of flywheel blasters.  I've been particularly interested in using Arduino microcontrollers to monitor and control the operation of the blaster.  You can see my published projects to date:
Most performance Nerf "mods" seem to fall into two categories: 
  • Cheap Chinese kits that are poorly documented.
  • Very cool custom builds that are complex, poorly documented, and hard to replicate.
My goal, as always, is to document inexpensive and easy to build projects geared towards a successful and rewarding "first mod" experience.  In working towards that, I've gathered quite a bit of data about what modifications provide the best performance.  Starting with the most popular modding blaster, the Nerf Stryfe, I looked at the effect of flywheel speed, motor current, and dart velocity for a number of configurations.


Batteries: The stock Stryfe is powered from 4 x AA batteries for a nominal 6V.  Upgrades to lithium polymer increases voltage (7.2 V) and significantly increases current delivering capacity.  

Wiring: The increase in current from LiPo batteries require upgrading the stock wiring to at least 18 AWG, and either replacement of the microswitches to higher rating or the use of a MOSFET control circuit.  The MOSFET control circuit lends itself well to microcotroller use, and eliminates the need to upgrade the wire to all but the short section from battery to motor.

Motors: Over-volting the stock motors would certainly be frowned upon from an engineering design standpoint, but going from 6V to 7.2V is fairly minor and I have noted no increase in motor temperatures or indication of degradation.  Given the short run-times of motors during typical use, the longevity of the motors does not appear to be an issue.  Aftermarket motors are designed for higher voltages, current, and speed.

Instrumentation: Motor speed and dart velocity are measured using infra-red emitter detector pairs monitored by Arduino.  Motor current is measure using an Adafruit INA260 breakout board attached to the Arduino.  Configuration tests are run twice, once measuring motor speed and current, and once capturing dart velocities of ten shots.  Data from the Arduino is outputted over a serial console and copied into spreadsheets.

Enough babbling.  The data!



Additionally, I was interested in the operation of the stock resetabble fuse.  This fuse limits current as it heats up, and resets itself after cooling down. This is clearly shown in a graph of current verses time for a stalled stock motor:



A lot of modders remove the fuses since the increase in current draw will trip the stock fuse quickly.  I have heard of and witnessed motor burnouts caused by stalls with removed fuses.  A novice who jams a dart on a modded blaster while continuing to hold down the rev switch with cause this in short order.  I advocating protecting your after-market motors with appropriate capacity fuses.  It is worth it if for nothing other than avoiding the smell of the magic smoke that come out!

Conclusions:
  • It is very easy to get to 100 fps using stock motors by upgrading the battery and wiring.
  • The 2S Lipo and aftermarket motors were able to achieve near the 130 fps limit set by a number of competitions.
  • Aftermarket motors significantly decrease the motor spin up time at the cost of very high starting currents.  And noise.
  • Increase in dart speed using the aftermarket motors was only realized using aftermarket flywheels.
  • The use of 14500 Lipo batteries, while controversial in the Nerf community, appear quite compatible with the stock motor currents. These have the advantage of not requiring any shell cutting.  You will note that I did not try them with the aftermarkert motors for concern about the current draw.
  • It is interesting to note that stall current and starting current of the stock motor are nearly identical.  The listed stall current of the Meishel 2.0 motors are 18.8 A, or 37.6 A for a pair, which is close to 33 A starting current observed. This should be useful in choosing fuse size.
As in most hobbies, incremental increases in performance come at exponential increases in cost and effort.  People are spending hundreds of dollars to achieve 200+ fps blasters while experiencing diminishing, even deteriorating returns on accuracy and distance.  For now I intend to stay in the shallow end of pool while concentrating on the benefits of smart, Arduino-controlled blasters, such as ammo counting, clip capacity detection, battery monitoring, and select fire.

Stay tuned for a kit.  You may have seen a sneak peek in the first photo.

What Open Source Means to Me

When I look back at starting with electronics, I would point to Adafruit and Lady Ada.  I bought her Boarduino (which is still on sale!) back in 2008, and while I was able to solder the kit together easily, I was quite confused by by the difference between Atmega168 pin numbers, and Arduino pin designations. She answered my questions quite patiently:

And here is my first project with that board: https://youtu.be/vEATaGx28_8.  I went on to design a model railroad, a rocket telemetry system, and most recently, a deviously difficult surface mount challenge.

The Boarduino, while I paid for a kit, was free.  It was Open Source.  Lady Ada published the schematics and even the files necessary to reproduce the PCB.

Fast forward a decade.  I can design a PCB.  I can program an Attiny.  My first published project was a programmer for microcontrollers.  I published my designs for free.  Why?  Because Lady Ada did.  That is how I learned.  That is how I hope to teach.

One of the designs I am most proud of is my Drawing Robot.  I have spent a lot of hours designing and refining the 3D files, electrical design, and the firmware. I have used it to teach several workshops.  Many people of have copied it.  Several people have improved on it.  That makes me happy:

Recently, I was excited to see a picture on Twitter, but when I commented on it, I was surprised to see it attributed to someone else:

Wait!  What?  It is being used in a classroom:  Good!  But who is Josh Burker?  Well, apparently it is someone who used my designs,  and decided to sell a kit!  For $275?

Is that legal? Ethical?  Moral?  What I have been spending all my time doing this for?

The Instructable on which is project is based is published under a Creative Commons licence, which is pretty clear:


So far, so good.  He is sharing, and adapting, but:


Oops.  While I see a link to my Instructable on his webpage, I see nothing on his website to indicate the original design isn't his.  The fact that the teacher using the project attributes it to him would further indicate this failure.   Oh, and there is the noncommercial thing.  I assume that means the $275 is a no-no.

Let's take a moment of self-reflection.  A drawing robot is not my idea.  Did I attribute it?
Here is the robot that came closest to what I wanted to do: http://mirobot.io. I don't have a laser cutter and shipping from England was prohibitive. I do have a 3D printer, so I guess you can see where this is going . . .
Mirobot claims to be Open Source, and has published repositories, but it is laser cut and Wifi controlled.  Way past what I want to get into.  I didn't use their design files or code. About all I used was the "pen in the center of the wheelbase" idea.  The Turtle idea goes back even farther, to the 1960s!

So, I'm mad.  Certainly not at the teacher, who is trying to bring ideas and concepts to their classroom to the best of their ability and under a tight budget. But, someone is trying to profit off my my work.  When I point out the CC License violations, I am told to "bugger off," and that "We redesigned the electronics: they use a completely different microcontroller and programming language."

I will give him that using the Logo language takes the project one step closer to it's 1960 roots, and if that helps with the classroom curriculum, I will adapt that and attribute him.  That is how Open Source works.  However, if he thinks that switching from an Adafruit Trinket Pro to an Adafruit Metro Mini constitutes "redesigning the the electronics", I would point out that they both use the Atmel ATmega328 microchip, and are both Open Source projects, by the same author, Adafruit.  Wow, did that just circle around, or what?

So, back to the original question, what does Open Source mean to me?  I learn, I play, I share, and I may even try to sell you a kit, but if you try and profit off my work, I'll get mad.  And do a blog post.  And probably get blocked by @joshburker on Twitter.  Wait, was I following him?  No.  Didn't think so.

If you want to follow me, and be the first to see the next generation drawing robot, or what ever Open Source idea I attribute or contribute to next, you can follow me at @TheMakersBox on Twitter.



Is Your LED in Backwards?

Since the Arduino I/O pins can sink and source current, it is possible to use one pin as the ground and the other the supply for an LED.  One of my very first projects, actually used bi-colored LEDs and you could change the color by reversing the pins.

I've been doing beginner soldering kits, and putting an LED in backward is a common mistake. It occurred to me I could use this trick so that a reversed LED could still be used without having to remove and reverse it. Better yet, could it be detected and accounted for automatically?

Since the LED only allows current to flow one direction (unless it is bi-colored), and we have the ability to read the pins as well as output to them, we should be able to figure this out. If we apply voltage (via the internal pull up resistor) to one leg of the LED, if it goes high, near the source voltage, we can assume we are dealing with the cathode, or negative side since no current is flowing. Conversely, if the voltage drops, we can assume we have the anode, or positive side since current is flow.

Enough theory. Time for proof. With the LED correctly installed, an analogRead() on the pulled up port reads ~350, or 1.7 volts.  With it in backwards, it reads nearly 5 volts.  Since the voltage drop is more than half, the digitalRead() can be used and the resulting true/false value assigned to correct or incorrect orientation.

Seems like a silly thing, but then again, silly things can be useful at times.

Here is my code if you want to try it for yourself:

int ledPinNeg = A0;  // assume negative lead
int ledPinPos = A1;  // assume positive lead


void setup() {
  Serial.begin(9600);

  // test: with a weak pullup, the pin will read HIGH if LED in backward (no path for current)
  pinMode(ledPinPos, INPUT);
  pinMode(ledPinNeg, OUTPUT);
  digitalWrite(ledPinPos, HIGH); // turn on pull up
  digitalWrite(ledPinNeg, LOW);  // sink current
  int testVal = digitalRead(ledPinPos);  // reads < 400 if orientation is correct
  
  Serial.print("Pin ");
  Serial.print(ledPinPos);
  Serial.print(" = ");
  Serial.println(analogRead(ledPinPos));
  
  // set both pins to OUTPUT and LOW
  digitalWrite(ledPinPos, LOW); // turn off pullup
  pinMode(ledPinPos, OUTPUT);

  if (testVal){// LED is backward, just swap pins
    int temp = ledPinPos;
    ledPinPos = ledPinNeg;
    ledPinNeg = temp;
    Serial.println("LED IS BACKWARDS OR MISSING");
  }
  else {
    Serial.println("LED APPEARS CORRECT");
  }
}


void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(ledPinPos, HIGH);
  delay(1000);
  digitalWrite(ledPinPos, LOW);
  delay(1000);
}

How to Price a Kit


 
- VS -
I've seen a couple of post recently on Hack-a-day and Twitter about my Geek Spinner (and US based kits in general) being priced too high.  As both a maker and consumer of kits, let me first say that I am sensitive to this issue. When I price a kit, the first question is always, "would I pay this much for it?"  Consider the following:

  • I publish my BOM and PCB files along with instructions and firmware, so you don't need to buy anything from me.
  • I sell kits to cover the cost of my developing them.  I usually build at least three versions before I'm willing to put it out there for others to try.
  • I price the kits to cover the cost of materials and my time for packaging the kits.
  • I enjoy designing and making kits and helping others make them.  I do not enjoy kitting or selling them. It is a lot of work.
  • I'm selling at very low volumes, usually in multiples of ten, where the scale of economy has barely begun.
I think, in general, what we fail to recognize when we look at the price of kit, are the intangibles:
  • Well documented, well supported.
  • Quality components from known sources.
  • Design files and schematics so we can understand or modify the design to our own purpose.
  • Tutorials and examples files.
I've sold enough kits to know that I'm at least in the ball park.  I'm making enough so my wife doesn't need to see the credit card bill for the weekly Digi-Key delivery, or to sweat making a medium-run OSH Park PCB order when I'm ready to face the public.  I'm also sure, that if I total it all up, I'm  making below minimum wages.  But then again, I'm doing something I enjoy.  For the most part.

So, vote with your dollar.  But also ask yourself, "is the seller adding any value?"