// ProffieOS8.x Config File #ifdef CONFIG_TOP #include "proffieboard_v3_config.h" //PROFFIECONFIG ENABLE_MASS_STORAGE //PROFFIECONFIG ENABLE_WEBUSB // MTFBWY // == Blade == #define NUM_BLADES 4 //I have: Main blade + NPXL connector (2 SubBlades) + Crystal chamber const unsigned int maxLedsPerStrip = 144; #define ENABLE_MOTION #define ENABLE_WS2811 #define SHARED_POWER_PINS #define BLADE_DETECT_PIN blade5Pin // == Bluetooth/RFID == #define ENABLE_SERIAL #define BLE_PASSWORD "pwd" //Max 20 characters #define BLE_NAME "oli_chassi" //Max 32 characters #define BLE_SHORTNAME "olisaber" //Max 9 characters // == OLED == #define INCLUDE_SSD1306 //INCLUDE instead of ENABLE to make it work for "Bullet Counts" from CONFIG_BOTTOM //#define ENABLE_SSD1306 //#define OLED_FLIP_180 //#define OLED_MIRRORED #define USE_AUREBESH_FONT // == Time Outs == (milisec * sec * min) //max value 2147483647 (= +/- 25 days) #define PLI_OFF_TIME 1000 * 60 * 1 #define IDLE_OFF_TIME 1000 * 60 * 20 #define MOTION_TIMEOUT 1000 * 60 * 15 // == Memory / Save Memory == #define ENABLE_SD #define DISABLE_DIAGNOSTIC_COMMANDS //#define DISABLE_BASIC_PARSR_STYLES #define KILL_OLD_PLAYERS //#define DISABLE_TALKIE // == Buttons == #define NUM_BUTTONS 2 //#define DUAL_POWER_BUTTONS #define FETT263_HOLD_BUTTON_OFF #define FETT263_POWER_LOCK #define FETT263_MOTION_WAKE_POWER_BUTTON #define FETT263_BM_DISABLE_OFF_BUTTON /* #define BUTTON_DOUBLE_CLICK_TIMEOUT 500 // #define BUTTON_SHORT_CLICK_TIMEOUT 500 // #define BUTTON_HELD_TIMEOUT 300 //For overwriting value of buttons timeout (defined in "../buttons/button_base.h") #define BUTTON_HELD_MEDIUM_TIMEOUT 800 // #define BUTTON_HELD_LONG_TIMEOUT 2000 // */ // == Editing == #define ENABLE_ALL_EDIT_OPTIONS #define FETT263_EDIT_MODE_MENU #define FETT263_CIRCULAR_DIM_MENU #define DISABLE_COLOR_CHANGE #define SAVE_STATE #define FETT263_QUICK_SELECT_ON_BOOT //#define FETT263_SPECIAL_ABILITIES #define FETT263_MULTI_PHASE //#define FETT263_DISABLE_CHANGE_FONT //#define FETT263_DISABLE_CHANGE_STYLE //#define FETT263_DISABLE_COPY_PRESET //#define FETT263_DISABLE_MULTI_BLAST_TOGGLE // == Sound/Volume/Audio == #define ENABLE_AUDIO #define VOLUME 1000 #define BOOT_VOLUME 300 //#define AUDIO_CLASH_SUPPRESSION_LEVEL 10 //#define FILTER_CUTOFF_FREQUENCY 200 //#define FILTER_ORDER 8 #define CLASH_THRESHOLD_G 4.0 //was 2.0 #define FEMALE_TALKIE_VOICE #define FETT263_DUAL_MODE_SOUND #define FETT263_CLASH_STRENGTH_SOUND #define FETT263_SAY_COLOR_LIST #define FETT263_SAY_COLOR_LIST_CC //#define FETT263_SAY_BATTERY_PERCENT #define FETT263_BC_SAY_BATTERY_VOLTS_PERCENT #define FETT263_CIRCULAR_VOLUME_MENU #define FETT263_TRACK_PLAYER_NO_PROMPTS //#define FETT263_DISABLE_QUOTE_PLAYER #define FETT263_QUOTE_PLAYER_START_ON #define FETT263_BM_CLASH_DETECT 4.0 #define FETT263_RANDOMIZE_QUOTE_PLAYER #define NO_REPEAT_RANDOM // == Colors == #define COLOR_CHANGE_DIRECT #define EXTRA_COLOR_BUFFER_SPACE 60 // == BATTLE MODE OPTIONS == Battle Mode is enabled via controls by default in this prop //#define FETT263_BATTLE_MODE_ALWAYS_ON //#define FETT263_BATTLE_MODE_START_ON //#define FETT263_MAX_CLASH 1276800 //#define FETT263_SPIN_MODE #define FETT263_USE_BC_MELT_STAB #define FETT263_LOCKUP_DELAY 1500 // == Motion == //#define DISABLE_MOTION // == Swing On == Gesture Ignition via Swing #define FETT263_SWING_ON_PREON #define FETT263_SWING_ON_NO_BM #define FETT263_SWING_ON_SPEED 250 //Swing Speed required for Ignition 250 ~ 500 recommended // == Twist Off == Gesture Retraction via Twist (back and forth) //#define FETT263_TWIST_OFF //To enable Twist Off Retraction control <-- I don't like it. // == Twist On == Gesture Ignition via Twist (back and forth) #define FETT263_TWIST_ON // == Stab On == Gesture Ignition via Stab (linear movement + clash at tip of blade) #define FETT263_STAB_ON_PREON // == Thrust On == Gesture Ignition via Thrust (linear movement) #define FETT263_THRUST_ON // == Gesture Sleep == Toggle Gesture Ignition and Retraction detection to disable or enable gesture options #define FETT263_SAVE_GESTURE_OFF // == Force Push == Push movement triggers push.wav (or force.wav if push.wav is not present) #define FETT263_FORCE_PUSH_ALWAYS_ON #define FETT263_FORCE_PUSH_LENGTH 5 // == Bullets for Blaster Mode == #define BLASTER_SHOTS_UNTIL_EMPTY 20 //Not defined = unlimited shots. #define BLASTER_JAM_PERCENTAGE 10 //0 = NO JAM. If this is not defined, random from 0-100%. #define BLASTER_ENABLE_AUTO #define BLASTER_DEFAULT_MODE MODE_STUN //MODE_STUN|MODE_KILL|MODE_AUTO. #define OLED_USE_BLASTER_IMAGES #endif // CONFIG_TOP #ifdef CONFIG_PROP #include "../props/dual_prop.h" #include "../props/saber_fett263_buttons.h" #include "../props/blaster.h" #undef PROP_TYPE #define PROP_TYPE SaberBlasterProp #endif // CONFIG_TOP #ifdef CONFIG_PRESETS Preset presets[] = { { "crispity;common", "common/tracks/track1.wav", //Theory2Button.h "F1Pod" StylePtr,RotateColorsX,Int<500>>,Rgb<50,0,150>>>,TransitionLoopL,Int<250>,Int<100>,Int<200>,Int<0>>>,TransitionLoopL,Int<1>>,Int<350>,Int<100>,Int<300>,Int<0>>>>,LockupTrL,Bump,Scale,Int<4000>,Int<26000>>,Int<6000>>,Scale,Int<14000>,Int<18000>>>>,AlphaL,Scale,Int<4000>,Int<26000>>,Int<6000>>,Int<10000>>>>,TrConcat>,TrConcat>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL,50,1>,TrConcat,Int<18000>>>,TrFade<200>>,TrConcat>,30>,TrSmoothFade<600>>>,ResponsiveStabL,ResponsiveBlastL,Scale,Int<100>,Int<400>>>,ResponsiveClashL,Scale,Int<4000>,Int<26000>>,Int<6000>,Int<20000>>,TransitionEffectL,TrFade<1000>>,EFFECT_RETRACTION>,LockupTrL>,SmoothStep,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL,Red,Orange>,SmoothStep,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL,TrColorCycle<1000>>>>(), StyleFirePtr(), StyleFirePtr(), StyleFirePtr(), "crispity" }, { "TeensySF;common", "common/tracks/venus.wav", // Main Blade /* copyright Fett263 Rotoscope (Primary Blade) OS7 Style https://www.fett263.com/fett263-proffieOS7-style-library.html#Rotoscope OS7.14 v2.242cp Single Style Base Style: Hyper Responsive Rotoscope (Original Trilogy) Base Color: BaseColorArg (0) --Effects Included-- Ignition Effect: SparkTip Ignition [Color: IgnitionColorArg] PowerUp Effect: Power Surge (Stable) [Color: IgnitionColorArg] Retraction Effect: SparkTip Retraction [Color: RetractionColorArg] Lockup Effect: 0: mainLockMulti0Shape - Begin: Real Clash - Style: Intensity AudioFlicker - End: Full Blade Absorb [Color: LockupColorArg] Lightning Block Effect: 0: mainLBMulti0Shape - Begin: Responsive Impact - Style: Strobing AudioFlicker - End: Full Blade Absorb [Color: LBColorArg] Drag Effect: 0: mainDragMulti0Shape - Begin: Wipe In - Style: Intensity Sparking Drag - End: Wipe Out [Color: DragColorArg] Melt Effect: 0: mainMeltMulti0Shape - Begin: Wipe In - Style: Intensity Melt - End: Wipe Out [Color: StabColorArg] Stab Effect: Normal Stab [Color: StabColorArg] Blast Effect: Responsive Blast Wave (Large) [Color: BlastColorArg] Clash Effect: Real Clash V1 [Color: ClashColorArg] Swing Effect: AudioFlicker Swing (Scaled Responsive Edge) [Color: SwingColorArg] Battery Level: % Blade (Green to Red) Display Volume: % Blade [Color: BaseColorArg] */ StylePtr,Scale,Int<50>,Int<500>>,Scale,Int<20000>,Int<10000>>>,RandomFlicker,Scale,Scale,Int<50>,Int<300>>,Scale,Int<24000>,Int<16000>>>,Int<-3200>,Int<-200>>,RgbArg>,RgbArg>,Mix,Black,RgbArg>>,RgbArg>,Mix,Black,RgbArg>>>,RgbArg>>,RgbArg>>,AlphaL>>,Scale,Int<13600>>,Scale,Int<-19300>,Int<32768>>,Int<0>>>,SmoothStep,Int<13600>>,Scale,Int<-19300>,Int<32768>>,Int<0>>,Int<28000>,Int<14000>>,Int<16000>>>,TransitionEffectL>>,TrFade<1200>>,EFFECT_IGNITION>,TransitionEffectL>,TrWipeIn<200>>,AlphaL>,SmoothStep,Int<2000>>>,TrWipe<200>>,EFFECT_STAB>,TransitionEffectL>,Int<200>,Int<100>,Int<400>,Scale,Int<28000>,Int<8000>>>,EFFECT_BLAST>,Mix,Int<26000>>,TransitionEffectL>,Bump,Scale,Sum,Int<-12000>>,Sum,Int<10000>>>,Sum,Int<-10000>>>,Scale,Int<12000>,Int<60000>>>>,TrFadeX,Int<200>,Int<400>>>>,EFFECT_CLASH>,TransitionEffectL>,Scale,Int<100>,Int<400>>,Int<100>,Scale,Int<100>,Int<400>>,Scale,Scale,Sum,Int<-12000>>,Sum,Int<10000>>>,Sum,Int<-10000>>>>,EFFECT_CLASH>>,LockupTrL,Scale,Sum,Int<-12000>>,Sum,Int<10000>>>,Sum,Int<-10000>>>,Scale,Int<14000>,Int<22000>>>,AudioFlicker>,Mix,Black,RgbArg>>>,BrownNoiseFlicker>,Mix,Black,RgbArg>>,300>>,Bump,Scale,Sum,Int<-12000>>,Sum,Int<10000>>>,Sum,Int<-10000>>>,Scale,Int<14000>,Int<22000>>>>,AlphaL>,Mix,Black,RgbArg>>>,Bump,Scale,Sum,Int<-12000>>,Sum,Int<10000>>>,Sum,Int<-10000>>>,Scale,Int<14000>,Int<18000>>>>,TrExtend<5000,TrInstant>,TrFade<5000>,EFFECT_LOCKUP_BEGIN>,TrConcat,TrInstant>,Mix,Int<26000>>,RgbArg>,AlphaL>,Bump,Scale,Sum,Int<-12000>>,Sum,Int<10000>>>,Sum,Int<-10000>>>,Scale,Int<20000>,Int<60000>>>>>,TrFade<300>>,TrConcat>,TrFade<400>>,SaberBase::LOCKUP_NORMAL,Int<1>>,ResponsiveLightningBlockL>,AudioFlicker>,Blue>,50,1>,TrConcat,AlphaL>,Bump,Int<10000>,Int<21000>>,Int<10000>>>,TrFade<200>>,TrConcat>,TrFade<400>>,Int<1>>,LockupTrL>>,BrownNoiseFlickerL>,Int<300>>,TrExtend<4000,TrInstant>,TrFade<4000>,EFFECT_DRAG_BEGIN>,SmoothStep,IntArg,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL,RgbArg>,RotateColorsX,RgbArg>>>,Mix>,Black,Mix,RgbArg>,RotateColorsX,RgbArg>>>>,Mix,Black,Mix,RgbArg>,RotateColorsX,RgbArg>>>>>,SmoothStep,IntArg,Int<30000>>,Int<3000>>>,TrConcat>,AlphaL,RgbArg>,RotateColorsX,RgbArg>>>,RotateColorsX,Mix,RgbArg>,RotateColorsX,RgbArg>>>>,100>,SmoothStep,IntArg,Int<30000>>,Int<3000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,InOutTrL>,BendTimePowInvX,Mult,Int<98304>>>>,TrWipeInSparkTipX>,BendTimePowInvX,Mult,Int<98304>>>>,Black>,TransitionEffectL,TrWipe<1000>>,AlphaL,SmoothStep>>,TrWipeIn<1000>>,EFFECT_BATTERY_LEVEL>,TransitionEffectL>,AlphaL>,SmoothStep>>,TrFade<300>>,EFFECT_VOLUME_LEVEL>>>(), StylePtr(), StylePtr(), StyleNormalPtr(), "cyan"}, { "SmthJedi;common", "common/tracks/mars.wav", //Theory2Button.h "Kaboom" StylePtr,Int<4000>>,Stripes<10000,200,Rgb<0,20,90>,Rgb<0,50,240>>,Stripes<10000,-200,Rgb<0,20,90>,Rgb<0,50,240>>>,TransitionEffectL>,EFFECT_IGNITION>>,LockupTrL,Bump,Scale,Int<4000>,Int<26000>>,Int<6000>>,Scale,Int<14000>,Int<18000>>>>,AlphaL,Scale,Int<4000>,Int<26000>>,Int<6000>>,Int<10000>>>>,TrConcat>,TrConcat>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL,50,1>,TrConcat,Int<18000>>>,TrFade<200>>,TrConcat>,30>,TrSmoothFade<600>>>,ResponsiveStabL,ResponsiveBlastL,Scale,Int<100>,Int<400>>>,ResponsiveClashL,Scale,Int<4000>,Int<26000>>,Int<6000>,Int<20000>>,LockupTrL>,SmoothStep,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL,Red,Orange>,SmoothStep,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL,TrWipeIn<300>>,TrJoin,TrWipeIn<5000>>>,TransitionEffectL,Rgb<0,50,240>,400>,Bump,Int<1500>,Int<1500>>,Int<0>,Int<16384>>,Int<8000>>>,TrDelay<3000>,Mix,Int<8000>>,Black,Rgb<0,50,240>>,TrJoin,TrWipeIn<1500>>,Mix,Int<8000>>,Black,Rgb<0,50,240>>,TrDelay<160>>,EFFECT_PREON>>>(), StylePtr >(), StylePtr >(), StylePtr >(), "blue"}, // === Battery Level / Keep as last preset === { "SmthJedi;common", "common/tracks/track1.wav", StylePtr(), StylePtr(), &style_charging, StyleNormalPtr(), "battery\nlevel"}, }; Preset no_blade_presets[] = { { "_BlasterMode/DC17;common", "common/tracks/track1.wav", StylePtr(), StyleNormalPtr(), StylePtr(), StyleNormalPtr(), "blaster"}, // === Battery Level / Keep as last preset === { "SmthJedi;common", "common/tracks/track1.wav", StylePtr(), StylePtr(), &style_charging, StyleNormalPtr(), "no blade\nbattery lvl"}, }; BladeConfig blades[] = { { 0, // === Main Blade: === WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS >(), // === NPXL Connector (1, 3, 5, 7, 9, 11, 13, 15 are "inner ring") === SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS >()), // === NPXL Connector (2, 4, 6, 8, 10, 12, 14, 16 are "outer ring") === SubBladeWithStride(1, 15, 2, NULL), // === Crystal Chamber: === WS281XBladePtr<1, blade3Pin, Color8::GRB, PowerPINS >(), CONFIGARRAY(presets) }, { NO_BLADE, // === Main Blade: === WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS >(), // === NPXL Connector (1, 3, 5, 7, 9, 11, 13, 15 are "inner ring") === SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS >()), // === NPXL Connector (2, 4, 6, 8, 10, 12, 14, 16 are "outer ring") === SubBladeWithStride(1, 15, 2, NULL), // === Crystal Chamber: === WS281XBladePtr<1, blade3Pin, Color8::GRB, PowerPINS >(), CONFIGARRAY(no_blade_presets), "nb_save" }, }; #endif // CONFIG_PRESETS #ifdef CONFIG_BUTTONS Button PowerButton(BUTTON_POWER, powerButtonPin, "pow"); Button AuxButton(BUTTON_AUX, auxPin, "aux"); #endif // CONFIG_BUTTONS #ifdef CONFIG_STYLES // Use in presets: StylePtr(), using BatteryLevelStyle = InOutHelperX, BatteryLevel>; // Marble style from Proffezzorn | Use in presets: StylePtr(), using MarbleStyle = Mix,Int<40000>,Ifon,Int<0>>,Int<1276800>>,ChangeSlowly,Int<3276>>,Int<2048>>>,Black,Mix,Int<2000>>,Rgb<0,0,20>,Rgb<0,255,255>>>; //more stuff can come here #endif // CONFIG_STYLES //OLED additional features: "Bullet Counts" // https://github.com/profezzorn/ProffieOSDocs/blob/main/display/bullet-counts.md #ifdef CONFIG_BOTTOM DisplayHelper<128, uint32_t, BaseLayerOp, ClearRectangleOp<10, 80, 8, 24>, WriteBulletCountOp<10, 20, 5> > display_controller; SSD1306Template<128, uint32_t> display(&display_controller); #endif // CONFIG_BOTTOM /* Generated with Fett263 Config Helper v3.10d https://fett263.com/fett263-os7-config-helper.html & Build with ProffieConfig 1.6.9, created by Ryryog25. The tool can be found here: https://github.com/ryryog25/ProffieConfig/wiki/ProffieConfig ProffieConfig is an All-In-One utility for managing your Proffieboard. */