Major undertaking here, but fun fun and more fun! I'll give you all the advice I can from my experiences working with nerf and arduino stuff.
-to use 20 amp transistors to drive the front/rear set of flywheels (to take out electrical arc wear on switch contacts)
I have used IRF530 MOSFETs
(which are basically transistors) to control the motors before. They are good for giving you a variable voltage based on the frequency (duty cycle) signal coming from the arduino and they are rated for 22A. Plus, the price is right. To learn more about them check out this video
. It was very insightful to me when I started.
-sense if magazine is empty,
You have many options for sensing if ammo is available to be fired. I'd go with Ir Sensors
. They're cheap and there are plenty of tutorials out there on how to use them with Arduinos.
and type of magazine inserted (different brush contacts on different magazine types)
Now for this one, I thought long and hard about, and decided on magnetic reed switches
. These are what I'm currently using the the TR-27, and they have been, and continue to be very reliable. Plus, the mod for the mag is super simple. All you need do is glue magnets
to the mags in specific places to identify them to the arduino. I highly recommend this method.
and display ammo counter/ammo empty on oled display
Adding an OLED is very hard. If you've been following my post on the TR-27, you know I've been in the process for a while. I've concluded it can be done. However not with the Atmega328. See arduino's board comparisons
to know which boards have which micro controllers on them. The Atmega328 only has 32kb of flash memory, and I used nearly all of it to control the OLED I chose for my project
. This of course left me with no room for the programming needed to control the blaster. Even if I trimmed down my code, bluetooth or wifi would be completely out of the question. This is why I've moved to using the Atmega2560 micro controller. It has 256kb of flash. Problem is that there aren't many physically small boards out there using the Atmega2560. (Which is why I'm working on designing my own board.)
-monitor and display battery voltage and safety cutoff when low voltage with BEC and 7-segment displays
There are some really simpleLiPo voltage monitors
out there that have an audible alarm when the battery gets low. It would be a really easy addon without adding all the headache of designing everything you'd need for the arduino to do it.
-regulate higher voltage to 2 power levels for the front/rear flywheel sets (11.1v in front and 7.2v in rear) to eliminate one of the batteries
Rather than have 2 power levels, it would be simpler to just set a lower duty cycle on the rear flywheels to lower the voltage to what you need.
-servo-actuated fire selection
That should be pretty easy. Arduinos will control servos pretty easily.
energy from the motor is used to help charge the surge capacitors?
Personally I don't think this is necessary. I've thought about it, but the only benefit would be if 11.1v isn't enough to push your motor up to speed quick enough. And this will all depend on the specs for your motor. You will really need to find the manufacture's specifications for your motor in order to see how much current (AMPS) you need to supply. And to get an idea about what will destroy your motor.
-display startup/ready/status animations and warning monitoring on oled display (oled placed right above 7 segment displays as telemetry/ ammo counter)
This is pretty much just a question of programming. I've always thought it would be cool to know the total number of darts that have been through the blaster.
-use micro-sd card for oled bitmaps/animations/necessary stored data
This one is up to you. I want to get into SD and micro SD cards working with arduino, but I haven't started this yet. If you go with the Atmega2560, you shouldn't need SD cards for storage.
"-have usb and charging hookup flush mounted to the blaster (no removing batteries, just plug blaster into to charge or program)" (apparently I've used up all the quote blocks I nerfhaven will let me use.)
This one is not advised. Not via USB anyway. First, most USB ports only supply 200ma at 5V which would be an incredibly slow charge for an 11.1v Lipo. But more importantly is that charging a Lipo battery is very delicate. I've heard from others that you should just rely on an external charger. If you could mount a good single throw, triple pole switch somewhere to disconnect the battery from any circuitry that might interfere with charging, it could work nicely.
Good luck and again, feel free to throw me any questions you may have as you go.
God Bless! - Gimmick