Features / Setup:
- Brushless flywheels
- Gearbox pusher with single return switch
- Select fire – Auto, Burst, Semi
- OLED screen
- Ammo Counter
- Single-stage fire trigger with no rev trigger
- Adjustable ROF (H, M, L)
- Adjustable Power (30% – 100%)
- 2 Profiles with quick-access buttons
- Rotary Encoder for configuration
- Battery voltage monitor + auto-calibration for 3s and 4s
Typical Blasters
- Woozi Brushless (Single or dual stage)
- Rapidstrike
- Stryfe / Swordfish with auto pusher (e.g. Woody7070 v2
Parts required
- Shell
- Motors, flywheels, ESC’s with appropriate tune
- Gearbox pusher with motor and reset switch. n.b. stock Rapidstrike linkage setup is garbage
- Trigger switch (stock OK)
- 2 x buttons for Profile A / B (optional – if not used, only Profile A is available)
- 3 way switch (either toggle On-Off-On or binary rotary switch)
- Magazine switch (stock Rapidstrike / Stryfe OK)
- I2C OLED display 128×64 pixels (not SPI)
- Rotary encoder with push-button
Caveats
- On high ROF / 4s, burst mode will likely over-shoot.
- You will need to calibrate your battery sensor for best performance
Wiring Diagram
Magazine Switch is located in the magwell to determine when a magazine is dropped.
Pusher Reset Switch is sometimes called the cycle control switch. It’s the switch connected to the pusher
Profile A / Profile B are optional. Profile A will be used by default. These are simple buttons
Source Code
Brushless-Gearbox-SelectFire-OLED-Single
Source Code Tweaks
Battery Calibration:
Change the following in the header:#define BATTERY_CALFACTOR 0.0
Change 0.0 to any other value to adjust the reported battery voltage up or down by this value. You should keep this as a decimal (e.g. instead of 1 use 1.0)
Motor Speed Limit
Change the following in the header:#define MOTOR_MAX_SPEED 2000
Change to any number between 1000 and 2000 where 1000 is 0% and 2000 is 100%. This is the hard max motor value in the firmware that is then used for the user-configurable parameters.
N.B. for Ultrasonic flywheels, you should limit to 75 – 80% on 4S packs to avoid flywheel meltdown.
Select Fire Switch Orientation
Change the following in function ProcessButtons()
if( SelectFireAButtonState == BTN_LOW && SelectFireBButtonState == BTN_HIGH )
CurrentFireMode = FIRE_MODE_BURST;
else if( SelectFireAButtonState == BTN_HIGH && SelectFireBButtonState == BTN_HIGH )
CurrentFireMode = FIRE_MODE_SINGLE;
else if( SelectFireAButtonState == BTN_HIGH && SelectFireBButtonState == BTN_LOW && CurrentFireMode != FIRE_MODE_AUTO_LASTSHOT )
CurrentFireMode = FIRE_MODE_AUTO;
You will need to swap BTN_LOW and BTN_HIGH around for each scenario. Start off by working out which one you want to swap (e.g. if Single and Burst are in the wrong order), swap the BTN_HIGH and BTN_LOW values for each respective condition.