#ifdef CONFIG_TOP #include "proffieboard_v2_config.h" #define NUM_BLADES 4 #define NUM_BUTTONS 2 #define VOLUME 500 const unsigned int maxLedsPerStrip = 144; #define CLASH_THRESHOLD_G 3.0 #define ENABLE_AUDIO #define ENABLE_MOTION #define ENABLE_WS2811 #define ENABLE_SD #define ENABLE_SERIAL #define SAVE_STATE #define SHARED_POWER_PINS #define ENABLE_POWER_FOR_ID PowerPINS #define IDLE_OFF_TIME 60 * 10 * 1000 #define MOTION_TIMEOUT 60 * 10 * 1000 #define BLADE_DETECT_PIN 22 //#define DISABLE_DIAGNOSTIC_COMMANDS #endif #ifdef CONFIG_PROP #include "../props/saber_shtok_buttons.h" #endif //Jedi Killer lightsaber #ifdef CONFIG_PRESETS Preset no_blade[] = { { "Calibrate;common", "tracks/track04.wav", StylePtr,Rgb<255,50,0>,50>,100,50>,Strobe,Red,25,5>,100>,Rgb<255,150,50>>,Rgb<100,100,255>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,100,400>>(), StylePtr,0,1,Rgb<255,20,5>,50,1000,500>,1,5000,Pulsing,Rgb<255,50,0>,50>,100,50>,Strobe,Red,25,5>,100>,Black,5000>>>(), &style_charging, StylePtr,Rgb<255,50,0>,50>,100,50>,Strobe,Red,25,5>,100>,Rgb<255,150,50>,200>,BrownNoiseFlicker,100,50>,Strobe,Red,25,5>,100>>,BrownNoiseFlicker,100,50>,Strobe,Red,25,5>,100>>,BrownNoiseFlicker,100,50>,Strobe,Red,25,5>,100>,100,100>,100,400,Pulsing,100,50>,Strobe,Red,25,5>,100>,Black,5000>>>(), "Calibrate"} }; Preset blade[] = { { "Kylo;common", "tracks/tfabattle.wav", StylePtr,Rgb<255,50,0>,50>,100,50>,Strobe,Red,25,5>,100>,Rgb<255,150,50>>,Rgb<100,100,255>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,100,400>>(), StylePtr,0,1,Rgb<255,20,5>,50,1000,500>>(), StylePtr>,White,200>,100,2000>>(), StylePtr,Rgb<255,50,0>,50>,100,50>,Strobe,Red,25,5>,100>,Rgb<255,150,50>,200>,BrownNoiseFlicker,100,50>,Strobe,Red,25,5>,100>>,BrownNoiseFlicker,100,50>,Strobe,Red,25,5>,100>>,BrownNoiseFlicker,100,50>,Strobe,Red,25,5>,100>,100,100>,100,400,Pulsing,100,50>,Strobe,Red,25,5>,100>,Black,5000>>>(), "Kylo"}, { "Vader;common", "tracks/hallway.wav", StylePtr>,Rgb<255,100,100>>,Rgb<100,100,255>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,500,600>>(), StylePtr,0,1,Rgb<255,20,5>,50,1000,500>>(), StylePtr>,White,200>,100,2000>>(), StylePtr>,Rgb<255,100,0>,500>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,60,100>,500,600,Pulsing>>(), "Vader"}, { "TheSecond;common", "tracks/JFO7.wav", StylePtr>,Rgb<255,100,100>,200>,Rgb<100,100,255>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,300,500>>(), StylePtr,0,1,Rgb<255,20,5>,50,1000,500>>(), StylePtr>,White,200>,100,2000>>(), StylePtr>,Rgb<255,100,0>,500>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,60,100>,300,500,Pulsing>>(), "Red"}, { "Survivor;common", "tracks/tfaduel.wav", StylePtr,Rgb<0,100,100>>,Rgb<255,255,150>,200>,Rgb<255,100,0>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,300,300>>(), StylePtr,Rgb<0,100,100>>,50,1000,500>>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr,Rgb<0,100,100>>,Rgb<255,255,150>,200>,AudioFlicker,Rgb<0,100,100>>>,AudioFlicker,Rgb<0,100,100>>>,AudioFlicker,Rgb<0,100,100>>,100,100>,300,300,Pulsing,Rgb<0,100,100>>,Black,5000>>>(), "LightBlue"}, { "BenSolo;common", "tracks/tfaduel.wav", StylePtr,Rgb<0,100,100>>,Rgb<255,255,150>,200>,Rgb<255,100,0>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,200,300>>(), StylePtr,Rgb<0,100,100>>,50,1000,500>>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr,Rgb<0,100,100>>,Rgb<255,255,150>,200>,AudioFlicker,Rgb<0,100,100>>>,AudioFlicker,Rgb<0,100,100>>>,AudioFlicker,Rgb<0,100,100>>,100,100>,200,300,Pulsing,Rgb<0,100,100>>,Black,5000>>>(), "LightBlue"}, { "Count;common", "tracks/YvsD.wav", StylePtr>,Rgb<255,100,100>>,Rgb<100,100,255>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,300,500>>(), StylePtr,0,1,Rgb<255,20,5>,50,1000,500>>(), StylePtr>,White,200>,100,2000>>(), StylePtr>,Rgb<255,100,0>,500>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,60,100>,300,500,Pulsing>>(), "Red"}, { "CrimsonLord;common", "tracks/DOF.wav", StylePtr>,Rgb<255,100,100>>,Rgb<100,100,255>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,300,500>>(), StylePtr,0,1,Rgb<255,20,5>,50,1000,500>>(), StylePtr>,White,200>,100,2000>>(), StylePtr>,Rgb<255,100,0>,500>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,60,100>,300,500,Pulsing>>(), "Red"}, { "Light;common", "tracks/endofline.wav", StylePtr,Rgb<255,50,0>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>>,90,2000,1000>>(), StylePtr,50,1000,500>>(), StylePtr,White,200>,100,2000>>(), StylePtr,AudioFlicker>,AudioFlicker>,AudioFlicker>,90,2000,1000>,1,1,Pulsing,90,2000,Black,0,2000,1000>,Black,5000>>>(), "Tron"}, { "Light;common", "tracks/castor.wav", StylePtr,0,1,SimpleClash>,Rgb<255,50,0>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>>,90,2000,1000>>(), StylePtr>(), StylePtr>,White,200>,100,2000>>(), StylePtr,0,1,SimpleClash>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>>,90,2000,1000>,1,1,Pulsing>,90,2000,Black,0,2000,1000>,Black,5000>>>(), "Tron White"}, { "Pikachu;common", "tracks/ketchup.wav", StylePtr,Rgb<100,100,255>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,White,100>,90,2000,1000>>(), StylePtr,0,1,Orange,50,1000,500>>(), StylePtr>,White,200>,100,2000>>(), StylePtr,AudioFlicker>,AudioFlicker>,AudioFlicker,100>,90,2000,1000>,1,1,Pulsing,90,2000,Black,0,2000,1000>,Black,5000>>>(), "Pikachu"}, { "Rey;common", "tracks/tljduel.wav", StylePtr>,Rgb<255,255,150>,200>,Rgb<255,100,0>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,200,500>>(), StylePtr>,50,1000,500>>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr>,Rgb<255,255,150>,200>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,100,100>,200,500,Pulsing>,Black,5000>>>(), "Blue"}, { "Scavenger;common", "tracks/track4.wav", StylePtr>,Rgb<255,255,150>>,Rgb<255,100,0>>,RandomFlicker,LemonChiffon>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,200,500>>(), StylePtr>,50,1000,500>>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr>,Rgb<255,255,150>,200>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,100,100>,200,500,Pulsing>,Black,5000>>>(), "Yellow"}, { "Luke;common", "tracks/march.wav", StylePtr>,Rgb<255,255,150>,200>,Rgb<255,100,0>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,200,200>>(), StylePtr>,50,1000,500>>(), StylePtr,White,200>,100,2000>>(), StylePtr>,Rgb<255,255,150>,200>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,100,100>,200,200,Pulsing>,Black,5000>>>(), "Green"}, { "Graflex;common", "tracks/track05.wav", StylePtr>,Rgb<255,255,150>,200>,Rgb<255,100,0>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,300,500>>(), StylePtr>,50,1000,500>>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr>,Rgb<255,255,150>,200>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,100,100>,300,500,Pulsing>,Black,5000>>>(), "Blue"}, { "Fulcrum;common", "tracks/track05.wav", StylePtr>,Rgb<255,255,200>>,Rgb<255,100,0>>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,200,150>,100,100>,700,300>>(), StylePtr>,50,1000,500>>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr>,Rgb<255,255,150>>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,100,100>,300,500,Pulsing>,Black,5000>>>(), "White"}, { "Bmf;common", "tracks/track05.wav", StylePtr,Rgb<0,0,100>>,Rgb<255,255,150>>,Rgb<255,100,0>>,RandomFlicker,LemonChiffon>,RandomFlicker,Rgb<255,150,0>>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,300,500>>(), StylePtr,Rgb<10,0,100>>,50,1000,500>>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr,Rgb<0,0,100>>,Rgb<255,255,150>,200>,AudioFlicker,Rgb<0,0,100>>>,AudioFlicker,Rgb<0,0,100>>>,AudioFlicker,Rgb<0,0,100>>,100,100>,300,500,Pulsing,Rgb<0,0,100>>,Black,5000>>>(), "Purple"}, { "Negotiator;common", "tracks/track05.wav", StylePtr>,Rgb<255,255,150>>,Rgb<255,100,0>>,RandomFlicker,White>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,300,500>>(), StylePtr>,50,1000,500>>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr>,Rgb<255,255,150>,200>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,100,100>,300,500,Pulsing>,Black,5000>>>(), "Blue"}, { "Grievous;common", "tracks/GG_2005.wav", StylePtr>,Rgb<255,255,150>>,Rgb<255,100,0>>,RandomFlicker,White>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Rgb<255,255,100>,100,100>,200,200>>(), StylePtr>,50,1000,500>>(), StylePtr,White,200>,100,2000>>(), StylePtr>,Rgb<255,255,150>,200>,AudioFlicker>>,AudioFlicker>>,AudioFlicker>,100,100>,200,200,Pulsing>,Black,5000>>>(), "Green"}, { "Balance;common", "tracks/track04.wav", StylePtr,150>,RandomFlicker,Yellow>,RandomFlicker,Red>,Bump,Int<10000>,Int<16384>>>>,Yellow>,200,500>>(), StylePtr>(), StylePtr,White>,White,200>,100,2000>>(), StylePtr,200>,Rainbow>,Rainbow>,Rainbow,100,100>,200,200,Pulsing>>(), "Rainbow"} }; BladeConfig blades[] = { { 700, WS281XBladePtr<133, bladePin, Color8::GRB, PowerPINS >(), //Main Blade 133 pixels WS281XBladePtr<5, blade4Pin, Color8::GRB, PowerPINS >(), //Connector 5 Pixels WS281XBladePtr<1, blade2Pin, Color8::GRB, PowerPINS >(), //Front Crystal 1 Pixel WS281XBladePtr<1, blade3Pin, Color8::GRB, PowerPINS >(), //Rear Crystal 1 Pixel CONFIGARRAY(blade) }, { NO_BLADE, WS281XBladePtr<133, bladePin, Color8::GRB, PowerPINS >(), //Main Blade (No Blade) WS281XBladePtr<5, blade4Pin, Color8::GRB, PowerPINS >(), //Connector 5 Pixels WS281XBladePtr<1, blade2Pin, Color8::GRB, PowerPINS >(), //Front Crystal 1 Pixel WS281XBladePtr<1, blade3Pin, Color8::GRB, PowerPINS >(), //Rear Crystal 1 Pixel CONFIGARRAY(no_blade) }, { 60, WS281XBladePtr<89, bladePin, Color8::GRB, PowerPINS >(), //Main Blade 89 pixels WS281XBladePtr<5, blade4Pin, Color8::GRB, PowerPINS >(), //Connector 5 Pixels WS281XBladePtr<1, blade2Pin, Color8::GRB, PowerPINS >(), //Front Crystal 1 Pixel WS281XBladePtr<1, blade3Pin, Color8::GRB, PowerPINS >(), //Rear Crystal 1 Pixel CONFIGARRAY(blade) }, }; #endif #ifdef CONFIG_BUTTONS Button PowerButton(BUTTON_POWER, powerButtonPin, "pow"); Button AuxButton(BUTTON_AUX, auxPin, "aux"); #endif