Protean Arduino Nano Select Fire Mod (Microcontroller Programmable) V5 Updated for flywheel control
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
Electronically controlled firing modes. Shoots however you program it. V5 has flywheels and solenoid programmable,
- Ocena
- 0 / 5
- Polubienia
- 19
- Pobrania
- 81
- Wydruki
- 0
- Wyświetlenia
- 623
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Outdoor Sports
- Licencja
- Creative Commons — Public Domain
2026 July 8
Most recent code is at https://codeberg.org/dr_a_gon/foam_dart_blasters
Code here still works, just older.
Version 5.1
Added flyback diodes.
New Version 5 Updated 2026 May - Single trigger, computer controlled flywheels & solenoid
You pull the trigger once, and you get flywheel and solenoid activation timed by the microcontroller. Just like a brushed Haretech Diana / Vesper. (But it's brushed so it's not as good).
Second MOSFET installed into hand grip bringing the flywheels under computer control. Second trigger removed. New code to spin the wheels before firing when the trigger is actuated.
Idle (where wheels are continually spun at low power to reduce spin up time) is a super easy mod as the motor mosfets support PWM. However it really needs brushless motors to be effective.
Instructions at bottom.
DO NOT USE VERSION 5 CODE WITH VERSION 4
You should choose whether to build verison 4 or 5. 5 is not necessarily an upgrade because brushed motors need long spinups. If you have a really good motor like the Worker W0340 Stryfe upgrade motor, (43K RPM and 1500 gcm torque) you will be better off than using a mid-range like the OOD Kraken.
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.
UPDATE Install flyback diode on solenoid. This protects the electronics from the flyback voltages generated when the solenoid retracts. It goes across both wires close to the noid, with the silver end on the positive wire. Do not put it on the mosfet itself. And do not get the polarity wrong. Doing either of these 2 things will cause the mosfet to catch fire. (In my photo I did this later and put the diode in the electronics bay, this is not optimal but does the job, it's fine as long as it is not directly connected to the mosfet terminals)
You do not really need flyback diodes on the motors for a version 4 blaster, but the blaster will surivve longer if you do.
To build the stock.
It's a bit of jigsaw with wires.
Heatsets: stock 1 in battery cover screw, 1 in buttplate screw; electronics bay 4.
Install the voltmeter
Solder the power and rotary switches to wires, and run the wires through, but don't mount the switches or connect to Arduino yet.
Set the buck converter for 12V → 5V BEFORE you connect it up.
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).
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.
Shove the electronics into the lower bulge, secure them aligning the USB.
Secure the power and rotary switches
Shove the wires from the receiver into the hole in the stock
Connect the connectors and be very sure they are correct.
Test wtih lower voltage before you hook up a LiPo.
Close up the blaster.
Change the pins in the firmware to match your wiring.
Read the part in the code about how to change the solenoid timing to modify rate of fire.
Upload firmware.
Launch darts.
Wiring Diagram
See photo of test circuit
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).
Trigger to any unique digital pin of Arduino (any of D2 to D12) and the ground pin of arduino digital inputs (shared with selector)
Buck converter in from battery, out to +5 and +0 of Arduino
Mosfet in from battery, out to solenoid, trigger pin any unique digital pin of arduino
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
VERSION 5
Second MOSFET in handgrip as in photo.
Remove 2nd trigger. One wire will be in the hand grip already. Bring the other power wire down into the grip, splice as necessary to connect the MOSFET. Run signal line back to the Arduino (I used pin 11).
Update to version 5 code.
Remember to change the microcontroller pins to match your circuit.
Set timings however you want.
Version 5 will spin the wheels when the trigger is pressed, then delay before engaging the solenoid. it is a single trigger, with computerized flywheel and solenoid timing off a single trigger pull. it is the same behaviour as HC Diana / Vesper. It cannot idle continually at low power. I have code that can do it by sendng PWM to the mosfet instead of on/off, but it's brushed motors so you get a lot of noise and heat, and very little benefit.
Set the motor spin up delay in the code. The actual time to firing will be higher than entered, as the solenoid has to travel before the dart is injected into the wheels. If the wheels are already spun, subsequent shots will not delay. They will keep the power on, and just engage the solenoid,
If the blaster is not fired for a set time (200 millis default) the wheels will spin down.
Table below. i do not remember if the motors are OOD krakens or valkyies. Cannot tell without removing them and rebalancing the flywheels. Most likely they are krakens as I would have been unlikely to use dyabreaks on valks. Strongly recommend Worker Neos, they have awesome torque. (correction: W0340 Stryfe upgrade motor, 43K RPM and 1500 gcm torque; the Neo is the 70K RPM one)
4S power, OOD Kraken motors, 40mm cage with Daybreak wheel. (Yes I know Krakens are 3S). Velocity m/s for 2 round burst (1st, then 2nd dart) with spinup time in ms. From here you can see that you need maybe 150ms spinup for consistent firing. Or just set it 3-round burst and it will put the last 2 at the right height.TIME VELOCITY
50 27 48
60 28 49
100 34 47 <- feels like lag / slow response
125 43 47
150 46 50
Spinup time 50 ms + solenoid in time seems OK to me for reponsiveness, shame about the velocity. 100 ms spinup is very close to full power, but you are waiting > 0.1 seconds for the dart to come and it feels bad. UPDATE I borrowed an HC Diana to measure, it's about 150ms from trigger to dart emergence in idling mode, and just over 300ms from cold start.
Yes, I don't have ground connected to the mosfets. They seem to work fine. You should probably connect it though. You should also probably add flyback diodes to the motors and solenoid. (EDIT Ground is now connected on mine, the photo is old).
PS: Dual stage please check current limits for Mosfets. Ideally use a separate mosfet for each stage as they will drain current differently, all 4 on 1 channel means one pair can steal from the other)
5.1 update
I have added flyback diodes across the solenoid and motors. See photo.
They nede to go as close to the motor or solenoid as physically possible (distance and wire length) and the silver end goes on the positive terminal. DO NOT GET THIS WRONG OR THE MOSFET WILL CATCH FIRE.
The purpose of the diode is to prevent "flyback" i.e when the solenoid or motor power is cut, the magnetic field does not instantly fade, and turns the thing into a generator, feeding current backwards around the circuit and damaging the electronics.
The version 4 should have a solenoid diode as well.
I use 1N5400 diodes.
DISCLAIMER
This is some random idiot's hobby project that somehow ended up on the internet, and contains lithium batteries. No warranty at all, if you mess up, or I somehow messed up, this thing could explode or catch fire. Use at own risk, and take all safety precautions.