Sunday, August 9, 2020

neRF

The purpose of this project is to augment the Nerf Mega Mastodon blaster with a Nordic nRF52840 dongle, RGB LED, and vibration motor so it becomes fly-by-wire and can optionally be controlled over Bluetooth. Without a Bluetooth connection the blaster's original operation is essentially unchanged.

The finished product, with barely-visible modifications -- a few screw heads and an LED
 

 About

The Mastodon is an interesting blaster because of its unique combination of fully-electric operation and deterministic dart handling. When fully loaded, up to 24 darts can be fired individually without further interaction from the user. The current replacements for the Mastodon either require the user to cock and/or press something to fire each dart (e.g. Ultra ONE) or shoot at an unpredictable rate (e.g. Prometheus MXVIII-20K). A common characteristic that is shared by all of these automatic blasters is a "flywheel" mechanism that throws the dart in a similar fashion to baseball pitching machines. The mechanism that sets the Mastodon apart is a motorized plunger that pushes each dart into the wheels, rotates the drum, and uses a switch to ensure that the plunger motor stays powered until the plunger is retracted (which would interfere with spinning the drum to reload it).

Without a Bluetooth connection the blaster's operation is changed slightly:

  • After firing 24 darts the blaster automatically stops shooting until the triggers are released and pressed again
  • No dart will be fired until the wheels have had a second to spin up
  • An RGB LED on the top of the blaster signals that the wheels have spun up (green), a safety fault has occurred (blinking red), or a Bluetooth connection is active (blue)

Connecting to the blaster via Bluetooth adds the following functionality:

  • The blaster's ammo count can be set so a "ammo remaining" notification will be sent after each dart is fired
  • Three selective firing modes are available: single-shot, three-dart burst, and fully automatic
  • Both triggers can be individually overridden
  • Both triggers can be locked out
  • Haptic feedback can be initiated for a specified amount of time

The blaster's safety mechanisms still function normally. Attemping to fire when either of these conditions is present will result in a safety fault:

  • The jam door is open
  • The drum is removed

If a safety fault occurs then the LED will blink red for 30 seconds before the blaster turns off. Rectifying the fault condition and pressing the triggers will reset it. The safety features can be disabled during development via CONFIG_NERF_SAFETY_FEATURES_ENABLED in the project file. The firmware for the project can be found here.

Although the blaster's wiring has been changed significantly, the original switches and triggers remain. The only modifications to the plastic housing are holes that were drilled to mount two PCBs (via standoffs), a vibration motor, and an LED. The bipod in the photo is off-the-shelf and attaches to the blaster's "tactical rail" using a picatinny rail adapter.

Original hardware

There are a couple of videos online that show how to rip out the blaster's internals and replace the two trigger switches with ones that can handle LiPos. That approach allows the blaster to shoot harder and faster, at least until the motors fail, but has the disadvantage of disabling the mechanism that ensures that the plunger is always retracted back to a known position. The point of this build is to add remote control while retaining -- and appreciating -- the blaster's original design.

Pro tip: the battery door has four sections, one for each size of screw. Use a bit of colored tape to mark each screw hole during disassembly to make life easier later.

Original wiring, including harness coloring
The blaster's original wiring is pretty straightforward. The only tricky part is the trigger override -- the gray wire -- that overrides the plunger trigger until the plunger has retracted. The configuration of the passives around each of the motors is a rough approximation.

A close-up of the motor passives
The two triggers are configured so that the "rev" trigger, that powers the "fly wheels", must be depressed before it's physically possible to depress the trigger that powers the plunger.

Two triggers: "rev" at the bottom and "plunger" above it

The "fly wheels" sit at the front of the blaster. When a dart is shoved into the passage between them the wheels catch it and throw it out of the barrel.

A little silicone curtain (on the left) covers the entrance to the "fly wheels". The tip of the plunger can be seen on the opposite side of the gap.

The plunger mechanism is self-contained and the plunger motor pokes through the top cover so it can engage the gearbox below. The orange switch to the left of the motor is engaged by a ridge on the plunger.

The motor, spring, and switch of the plunger mechanism are visible when the cover is installed

Removing the cover exposes the plunger itself along with its gearbox

A raised ridge runs along the length of the plunger. The ridge is low along the section that engages the switch when the plunger is extended far enough to obstruct the drum. This allows the switch to override the plunger trigger in case it is released while the plunger is extended.

The large cog on the left has a section with no teeth. This allows the plunger motor to remain on constantly even when the plunger is being retracted by the spring; the cog that engages the plunger is momentarily allowed to spin backwards while the large cog continues to spin forwards.

The firmware synchronizes to the output of the plunger switch to ensure that the plunger is always returned to the proper position after the trigger is released.

Output of plunger switch when firing at 8.5V

Additional hardware

The original switches were retained but now they are routed to an nRF52840 dongle that is mounted on a simple PCB.

The microcontroller lives on a very simple PCB (voltage regulator not shown)
 
The finished product, minus the protective heatshrink

A simple trick that makes it easy to solder headers onto the dongle

The USB contacts of the Nordic dongle protrude far enough from the side of the board to allow it to be plugged into a PC for reprogramming.

The original motors were also retained but now they are driven by a quad, half-bridge driver.

This is an older driver but it's TTL-compatible and easy to use

The populated driver board

JST headers were used to so the two boards are removable. 

Heatshrink makes everything better
The inputs and outputs are labelled for easier assembly

The two boards were installed using standoffs. The modifications to are barely noticeable given the blaster's aesthetic. 

The driver board is not visible because it is installed underneath the plunger mechanism. The vibration motor is located a few inches to the left of the triggers.

An inexpensive bipod is the most elegant way to stabilize the blaster for remote operation. A plastic adapter was used to allow the picatinny bipod to attach to the blaster's proprietary rail.