Protean Arduino Nano Select Fire Mod (Microcontroller Programmable)

Electronically controlled firing modes. Shoots however you program it.
6
8
0
125
updated February 28, 2025

Description

PDF

Now Version 4

Features / Notes

  • Select fire from a microcontroller allows many firing modes. I have provided semi, 2 round burst, 3 round burst, 12.5 dps auto (750 rpm) and 7 dps (420 rpm) auto as ammo is  finite.
     
  • Flywheel is manual and not under computer control (2nd mosfet doesn't physically fit YET).
     
  • You will lose compatbility with other rear stocks

BOM

  • Neutron solenoid Protean receiver, no Xiao Seeed Pi, with notched round rod worker stock.
  • M3 heatsets x6
  • Arduino Nano
  • Mosfet module (see photos)
  • Buck converter (see photos)
  • Selector rotary switch (RS-1010 rotary switch)
  • On/Off switch 20x13mm footprint (see photo)
  • Wires and connectors. I recommend crimped bullets, do not use XT30 and terminal block like me.
  • Something to secure the circuit board, i used doubled sided nonconductive sticky pads, you could also use silicone glue.
  • 0.28" voltmeter.

Print your own

  • twiddly knob for the selector ("potentiometer knob")

Directions to build

ENSURE YOIU UNDERSTAND THE DESIGN FULLY BEFORE YOU START WORK

Build a regular Protean Neutron Solenoid (no Xiao Seeed computer) using 2 triggers and the standard notched worker rod stock. (I have a model to make the rods with 5mm steel rod + an 8mm notched printed sleeve). You do not need to print the main stock part itself, as we replace that part.

The blaster wiring is different.

  • The flywheels are wired as normal.
  • The COM and NO of the trigger are wired to connectors that go 10cm (4 in) out of the back of the receiver.
  • The  solenoid is wired to connectors that go 10cm out of the back of the receiver.

To build the stock.

It's a bit of jigsaw with wires.

  1. Heatsets: stock 1 in battery cover screw, 1 in buttplate screw; electronics bay 4.
  2. Install the voltmeter
  3. Solder the power and rotary switches to wires, and run the wires through, but don't mount the switches or connect to Arduino yet.
  4. Set the buck converter for 12V → 5V BEFORE you connect it up.
  5. Run 1 wire from the battery to the master power switch, take blaster power from the other end of that switch. Do not take power from before that switch or your klill switch does not kill. (This switch should. have been at the back of the stock, sorry).
  6. Wire the eletronics, using connectors for the output of the mosfet, and the Arduino's trigger switch pins. Record what pins the Arduino is using. For wire length for the trigger, come out of the front of the elec bay and then add 10cm then a connector. You can always shorten a wire that is too long afterwards. Error on the side of extra wire.
  7. Shove the electronics into the lower bulge, secure them aligning the USB.
  8. Secure the power and rotary switches
  9. Shove the wires from the receiver into the hole in the stock
  10. Connect the connectors and be very sure they are correct.
  11. Test wtih lower voltage before you hook up a LiPo.
  12. Close up the blaster.
  13. Change the pins in the firmware to match your wiring.
  14. Read the part in the code about how to change the solenoid timing to modify rate of fire.
  15. Upload firmware.
  16. Launch darts.

Wiring Diagram

See photo of test circuit

  1. Selector switch 4 pins to 4 unique arudino digital pins (any of D2 to D12). Ground pin to ground of Arduino digital inputs (where D1 would be if there was one).
  2. Trigger to any unique digital pin of Arduino (any of D2 to D12) and the ground pin of arduino digital inputs (shared with selector)
  3. Buck converter in from battery, out to +5 and +0 of Arduino
  4. Mosfet in from battery, out to solenoid, trigger pin any unique digital pin of arduino
  5. Power switch 1st component across the battery

Code

  • Version 4 of the code fixes full auto. Earlier versions sometimes fire 1 extra shot.

Tuning 

  • The rate of fire depends on the solenoid's power, and your magazine springs. I currently use 30 miilseconds in, and 50 ms out, and this works for my mags giving 750 RPM. If it's skipping shots try 50 and 50 for 600 RPM. This will work, then tune it until you get it optimal. The Hummingbird 2 uses the same solenoid but is mechanically switched with an auto sear, and is capable of 1000 RPM but being mechanical with a switch to detect the cycle, it will vary its rate as the magazine empties. 

TODO

  • Manual flywheel control means you can push the triggers in the wrong order, but it won't jam with sufficent 1st stage torque. For high perf 1st stage, I normally use Worker W0340 motors which are 132 size, 43K RPM and 1500 g/cm torque (probably too much torque to have a long life but they spin up to speed SO FAST compared to Krakens; it's almost like brushless but noisier). Krakens, Banned Blaster, etc should be fine.
     
  • Over-volt and double-spring the solenoid for consistent performance.
     
  • Install a switch so it can detect the solenoid position.

License

My stuff is public domain, but the main stock is a modified Protean part and therefore has Protean license.

EDIT

The version I made does not have the 2 extra round holes in the floor of the stock. I was not sure how easy it would be to get the wiring in and out so I added the holes, however, I did not need them in the end. You can fill them if you are worried about things falling into the electronics bay.

Solenoid Parameters Working for me

  • 15 and 18 round talons
  • 38 mm dart
  • 30 ms in, 50 ms out = 750 rpm

 

Tags



Model origin

The author remixed this model.

Differences of the remix compared to the original

New stock that fits an Arduino Nano, Mosfet, Buck Converter, Selector Switch, Volt Meter and Power Switch. Also some firmware to fire the blaster in various modes.

License