Advertisement
JediStream

Untitled

Sep 14th, 2024
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.51 KB | None | 0 0
  1. #ifdef CONFIG_TOP
  2. #include "proffieboard_v3_config.h"
  3. #define NUM_BLADES 8
  4. #define NUM_BUTTONS 2
  5. #define VOLUME 1650
  6. const unsigned int maxLedsPerStrip = 500;
  7. #define SHARED_POWER_PINS
  8. #define CLASH_THRESHOLD_G 3.5
  9. #define ENABLE_AUDIO
  10. #define ENABLE_MOTION
  11. #define ENABLE_WS2811
  12. #define ENABLE_SD
  13. #define ENABLE_SERIAL //BT
  14. #define ENABLE_SSD1306 //OLED display
  15.  
  16. #define ENABLE_POWER_FOR_ID PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4>
  17. #define BLADE_ID_CLASS SnapshotBladeID<bladeIdentifyPin>
  18. #define BLADE_ID_SCAN_MILLIS 1000
  19. #define BLADE_ID_TIMES 15
  20. #define SPEAK_BLADE_ID //SAY IT!
  21. #define BLADE_DETECT_PIN blade5Pin //free 1
  22. #define SHARED_POWER_PINS //ADDED
  23.  
  24. //#define DISABLE_DIAGNOSTIC_COMMANDS
  25. #define FETT263_MULTI_PHASE
  26.  
  27. #define FETT263_TWIST_ON_NO_BM
  28. #define FETT263_TWIST_ON
  29. #define FETT263_TWIST_OFF
  30. //#define FETT263_THRUST_ON
  31. //#define FETT263_THRUST_OFF
  32. //#define FETT263_STAB_ON_NO_BM
  33. //#define FETT263_STAB_ON
  34.  
  35. #define FETT263_SWING_ON_SPEED 500
  36. #define FETT263_SWING_ON_NO_BM
  37. #define FETT263_SWING_ON
  38. #define FETT263_SWING_OFF
  39.  
  40. #define MOTION_TIMEOUT 60 * 3 * 1000
  41.  
  42. // Max 20 characters
  43. #define BLE_PASSWORD "your password"
  44. // Max 32 characters.
  45. #define BLE_NAME "Your Saber Name"
  46. // Max 9 characters
  47. #define BLE_SHORTNAME "Saber"
  48.  
  49. #endif
  50.  
  51. #ifdef CONFIG_PROP
  52. #include "../props/saber_fett263_buttons.h"
  53. #endif
  54.  
  55. #ifdef CONFIG_PRESETS
  56. Preset no_blade_presets[] = { //emitter, side accents, pommel accent, BT, null main blade 1,2,3,4
  57. { "JUANSITH DEPA PROFFIE", "tracks/Depa Bilaba.wav",
  58. StylePtr<Canon1>("0,0,65535 ~ ~ 2"), //blue emitter
  59. StylePtr<AccentBatteryMeter>(), //side accents
  60. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  61. StylePtr<White>(), //blue tooth
  62. StylePtr<Black>(), //main blade
  63. StylePtr<Black>(), //main blade
  64. StylePtr<Black>(), //main blade
  65. StylePtr<Black>(), //main blade
  66. "depa\nnoblade"},
  67. { "Fisto;common", "tracks/Depa Bilaba.wav",
  68. StylePtr<Canon1>("0,65535,0 ~ ~ 2"), //green emitter
  69. StylePtr<AccentBatteryMeter>(), //side accents
  70. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  71. StylePtr<White>(), //blue tooth
  72. StylePtr<Black>(), //main blade
  73. StylePtr<Black>(), //main blade
  74. StylePtr<Black>(), //main blade
  75. StylePtr<Black>(), //main blade
  76. "kit\nfisto"},
  77. { "Plokoon;common", "tracks/Depa Bilaba.wav",
  78. StylePtr<Canon1>("0,0,65535 ~ ~ 2"), //blue emitter
  79. StylePtr<AccentBatteryMeter>(), //side accents
  80. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  81. StylePtr<White>(), //blue tooth
  82. StylePtr<Black>(), //main blade
  83. StylePtr<Black>(), //main blade
  84. StylePtr<Black>(), //main blade
  85. StylePtr<Black>(), //main blade
  86. "plo\nkoon"},
  87. { "Power;common", "tracks/Power.wav",
  88. &style_charging,
  89. &style_charging,
  90. &style_charging,
  91. &style_charging,
  92. &style_charging,
  93. &style_charging,
  94. &style_charging,
  95. &style_charging,
  96. "power\nnoblade"},
  97. };
  98.  
  99. Preset presets[] = { //emitter, side accents, pommel accent, BT, null main blade 1,2,3,4
  100. { "JUANSITH DEPA PROFFIE", "tracks/Depa Bilaba.wav",
  101. StylePtr<Canon1>("0,0,65535 ~ ~ 2"), //blue emitter
  102. StylePtr<AccentBatteryMeter>(), //side accents
  103. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  104. StylePtr<White>(), //blue tooth
  105. StylePtr<ControlCanon1>("0,0,65535 ~ ~ 3"), //blue main blade
  106. StylePtr<Black>(), //main blade
  107. StylePtr<Black>(), //main blade
  108. StylePtr<Black>(), //main blade
  109. "depa\nsingle"},
  110. { "Fisto;common", "tracks/Depa Bilaba.wav",
  111. StylePtr<Canon1>("0,65535,0 ~ ~ 2"), //green emitter
  112. StylePtr<AccentBatteryMeter>(), //side accents
  113. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  114. StylePtr<White>(), //blue tooth
  115. StylePtr<ControlCanon1>("0,65535,0 ~ ~ 3"), //green main blade
  116. StylePtr<Black>(), //main blade
  117. StylePtr<Black>(), //main blade
  118. StylePtr<Black>(), //main blade
  119. "kit\nfisto"},
  120. { "Plokoon;common", "tracks/Depa Bilaba.wav",
  121. StylePtr<Canon1>("0,0,65535 ~ ~ 2"), //blue emitter
  122. StylePtr<AccentBatteryMeter>(), //side accents
  123. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  124. StylePtr<White>(), //blue tooth
  125. StylePtr<ControlCanon1>("0,65535,65535 ~ ~ 3"), //cyan main blade
  126. StylePtr<Black>(), //main blade
  127. StylePtr<Black>(), //main blade
  128. StylePtr<Black>(), //main blade
  129. "plo\nkoon"},
  130. { "Power;common", "tracks/Power.wav",
  131. &style_charging,
  132. &style_charging,
  133. &style_charging,
  134. &style_charging,
  135. &style_charging,
  136. &style_charging,
  137. &style_charging,
  138. &style_charging,
  139. "power\nsingle"},
  140. };
  141.  
  142. Preset quad_presets[] = { //emitter, side accents, pommel accent, BT, main blade 1,2,3,4
  143. { "JUANSITH DEPA PROFFIE", "tracks/Depa Bilaba.wav",
  144. StylePtr<Canon1>("0,0,65535"), //blue emitter
  145. StylePtr<Black>(), //side accents
  146. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  147. StylePtr<White>(), //blue tooth
  148. StylePtr<ControlCanon1>("0,0,65535 ~ ~ 3"), //blue
  149. StylePtr<Canon1>("0,0,65535 ~ ~ 3"),
  150. StylePtr<Canon1>("0,0,65535 ~ ~ 3"),
  151. StylePtr<Canon1>("0,0,65535 ~ ~ 3"),
  152. "1depa\nbilaba"},
  153. { "Depa", "tracks/Depa Bilaba.wav",
  154. StylePtr<Canon1>("7707,37008,65535 ~ ~ 2"), //dodger blue emitter
  155. StylePtr<Black>(), //side accents
  156. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  157. StylePtr<White>(), //blue tooth
  158. StylePtr<ControlCanon1>("7707,37008,65535 ~ ~ 2"), //dodger blue
  159. StylePtr<Canon1>("7707,37008,65535 ~ ~ 2"),
  160. StylePtr<Canon1>("7707,37008,65535 ~ ~ 2"),
  161. StylePtr<Canon1>("7707,37008,65535 ~ ~ 2"),
  162. "2depa\nbilaba"},
  163. { "Depa Bilaba", "tracks/Depa Bilaba.wav",
  164. StylePtr<Canon1>("0,65535,65535"), //cyan emitter
  165. StylePtr<Black>(), //side accents
  166. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  167. StylePtr<White>(), //blue tooth
  168. StylePtr<ControlCanon1>("0,65535,65535 ~ ~ 3"), //cyan
  169. StylePtr<Canon1>("0,65535,65535 ~ ~ 3"),
  170. StylePtr<Canon1>("0,65535,65535 ~ ~ 3"),
  171. StylePtr<Canon1>("0,65535,65535 ~ ~ 3"),
  172. "3depa\nbilaba"},
  173.  
  174. { "MaceJuanSith", "tracks/Windu.wav",
  175. StylePtr<Canon1>("65535,0,65535"), //purple emitter
  176. StylePtr<Black>(), //side accents
  177. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  178. StylePtr<White>(), //blue tooth
  179. StylePtr<ControlCanon1>("65535,0,65535 ~ ~ 3"), //purple
  180. StylePtr<Canon1>("65535,0,65535 ~ ~ 3"),
  181. StylePtr<Canon1>("65535,0,65535 ~ ~ 3"),
  182. StylePtr<Canon1>("65535,0,65535 ~ ~ 3"),
  183. "windu\nquad"},
  184. { "VentressKyber;common", "tracks/Ventress.wav",
  185. StylePtr<Canon1>("65535,0,0"), //red emitter
  186. StylePtr<Black>(), //side accents
  187. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  188. StylePtr<White>(), //blue tooth
  189. StylePtr<ControlMainRotoscope>("65535,55253,0"), //Gold, HyperResponsive Rotoscope Prequels
  190. StylePtr<MainRotoscope>("65535,55253,0"), //gold
  191. StylePtr<MainRotoscope>("65535,0,0"), //red
  192. StylePtr<MainRotoscope>("65535,0,0"), //red
  193. "ventress\ndual"},
  194. { "Ventress;common", "tracks/Ventress.wav",
  195. StylePtr<Canon1>("65535,0,0"), //red emitter
  196. StylePtr<Black>(), //side accents
  197. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  198. StylePtr<White>(), //blue tooth
  199. StylePtr<ControlMainRotoscope>("65535,55253,0"), //Gold, HyperResponsive Rotoscope Prequels
  200. StylePtr<MainRotoscope>("65535,55253,0"), //gold
  201. StylePtr<MainRotoscope>("65535,55253,0"), //red
  202. StylePtr<MainRotoscope>("65535,55253,0"), //red
  203. "ventress\ngold"},
  204. { "Power", "tracks/Power.wav",
  205. &style_charging,
  206. &style_charging,
  207. &style_charging,
  208. &style_charging,
  209. &style_charging,
  210. &style_charging,
  211. &style_charging,
  212. &style_charging,
  213. "power\nquad"},
  214. };
  215.  
  216. Preset dual_presets[] = { //emitter, side accents, pommel accent, BT, main blade 1,2,3,4
  217. { "JUANSITH DEPA PROFFIE", "tracks/Depa Bilaba.wav",
  218. StylePtr<Canon1>("0,0,65535"), //blue emitter
  219. StylePtr<Black>(), //side accents
  220. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  221. StylePtr<White>(), //blue tooth
  222. StylePtr<ControlCanon1>("0,0,65535 ~ ~ 3"), //blue
  223. StylePtr<Canon1>("0,0,65535 ~ ~ 3"),
  224. StylePtr<Black>(),
  225. StylePtr<Black>(),
  226. "1depa\nbilaba"},
  227. { "Depa", "tracks/Depa Bilaba.wav",
  228. StylePtr<Canon1>("7707,37008,65535 ~ ~ 2"), //dodger blue emitter
  229. StylePtr<Black>(), //side accents
  230. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  231. StylePtr<White>(), //blue tooth
  232. StylePtr<ControlCanon1>("7707,37008,65535 ~ ~ 2"), //dodger blue
  233. StylePtr<Canon1>("7707,37008,65535 ~ ~ 2"),
  234. StylePtr<Black>(),
  235. StylePtr<Black>(),
  236. "2depa\nbilaba"},
  237. { "Depa Bilaba", "tracks/Depa Bilaba.wav",
  238. StylePtr<Canon1>("0,65535,65535"), //cyan emitter
  239. StylePtr<Black>(), //side accents
  240. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  241. StylePtr<White>(), //blue tooth
  242. StylePtr<ControlCanon1>("0,65535,65535 ~ ~ 3"), //cyan
  243. StylePtr<Canon1>("0,65535,65535 ~ ~ 3"),
  244. StylePtr<Black>(),
  245. StylePtr<Black>(),
  246. "3depa\nbilaba"},
  247.  
  248. { "Windu", "tracks/Windu.wav",
  249. StylePtr<Canon1>("65535,0,65535"), //purple emitter
  250. StylePtr<Black>(), //side accents
  251. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  252. StylePtr<White>(), //blue tooth
  253. StylePtr<ControlCanon1>("65535,0,65535 ~ ~ 3"), //purple
  254. StylePtr<Canon1>("65535,0,65535 ~ ~ 3"),
  255. StylePtr<Black>(),
  256. StylePtr<Black>(),
  257. "windu\nquad"},
  258. { "VentressKyber;common", "tracks/Ventress.wav",
  259. StylePtr<Canon1>("65535,0,0"), //red emitter
  260. StylePtr<Black>(), //side accents
  261. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  262. StylePtr<White>(), //blue tooth
  263. StylePtr<ControlMainRotoscope>("65535,55253,0"), //Gold, HyperResponsive Rotoscope Prequels
  264. StylePtr<MainRotoscope>("65535,0,0"), //red
  265. StylePtr<Black>(),
  266. StylePtr<Black>(),
  267. "ventress\ndual"},
  268. { "Ventress;common", "tracks/Ventress.wav",
  269. StylePtr<Canon1>("65535,0,0"), //red emitter
  270. StylePtr<Black>(), //side accents
  271. StylePtr<CCBatteryHeartbeat>(), //pommel accents
  272. StylePtr<White>(), //blue tooth
  273. StylePtr<ControlMainRotoscope>("65535,55253,0"), //Gold, HyperResponsive Rotoscope Prequels
  274. StylePtr<MainRotoscope>("65535,55253,0"), //gold
  275. StylePtr<Black>(),
  276. StylePtr<Black>(),
  277. "ventress\ngold"},
  278. { "Power", "tracks/Power.wav",
  279. &style_charging,
  280. &style_charging,
  281. &style_charging,
  282. &style_charging,
  283. &style_charging,
  284. &style_charging,
  285. &style_charging,
  286. &style_charging,
  287. "power\nquad"},
  288. };
  289.  
  290.  
  291. BladeConfig blades[] = {
  292. { NO_BLADE,
  293. WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >(), //emitter independent
  294. WS281XBladePtr<7, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), //SIDE LIGHTS
  295. WS281XBladePtr<2, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), //POMMEL ring
  296. SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(), //bluetooth module
  297. SubBlade(0, 143, WS281XBladePtr<147, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >()), //main blade, irrelevant with NO BLADE
  298. SubBlade(144, 144, NULL), //null blade
  299. SubBlade(145, 145, NULL),
  300. SubBlade(146, 146, NULL),
  301. CONFIGARRAY(no_blade_presets) },
  302. { 0, //traditional blade 128 pixels
  303. WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >(), //emitter independent
  304. WS281XBladePtr<7, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), //SIDE LIGHTS
  305. WS281XBladePtr<2, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), //POMMEL ring
  306. SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(), //bluetooth module
  307. SubBlade(0, 127, WS281XBladePtr<147, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >()), //main blade in parallel
  308. SubBlade(128, 144, NULL), //null blades
  309. SubBlade(145, 145, NULL),
  310. SubBlade(146, 146, NULL),
  311. CONFIGARRAY(presets) },
  312. { 150, //traditional blade 132 pixels
  313. WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >(), //emitter independent
  314. WS281XBladePtr<7, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), //SIDE LIGHTS
  315. WS281XBladePtr<2, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), //POMMEL ring
  316. SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(), //bluetooth module
  317. SubBlade(0, 131, WS281XBladePtr<147, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >()), //main blade in parallel
  318. SubBlade(132, 144, NULL), //null blades
  319. SubBlade(145, 145, NULL),
  320. SubBlade(146, 146, NULL),
  321. CONFIGARRAY(presets) },
  322. { 550, //tritum quad strip
  323. WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >(), //emitter independent
  324. WS281XBladePtr<7, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), //SIDE LIGHTS
  325. WS281XBladePtr<2, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), //POMMEL ring
  326. SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(), //bluetooth module
  327. SubBladeWithStride(0, 494, 4, WS281XBladePtr<495, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >()), //main blade, four strips
  328. SubBladeWithStride(1, 494, 4, NULL),
  329. SubBladeWithStride(2, 494, 4, NULL),
  330. SubBladeWithStride(3, 494, 4, NULL),
  331. CONFIGARRAY(quad_presets) },
  332. { 700, //KR V1
  333. WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >(), //emitter independent
  334. WS281XBladePtr<7, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), //SIDE LIGHTS
  335. WS281XBladePtr<2, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), //POMMEL ring
  336. SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(), //bluetooth module
  337. SubBladeWithStride(0, 263, 2, WS281XBladePtr<266, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >()), //main blade, two strips
  338. SubBladeWithStride(1, 263, 2, NULL),
  339. SubBlade(264, 264, NULL), //null blades
  340. SubBlade(265, 265, NULL),
  341. CONFIGARRAY(dual_presets) },
  342. { 900, //zigzag
  343. WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >(), //emitter independent
  344. WS281XBladePtr<7, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), //SIDE LIGHTS
  345. WS281XBladePtr<2, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), //POMMEL ring
  346. SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(), //bluetooth module
  347. SubBlade(0, 86, WS281XBladePtr<348, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >()), //main blade
  348. SubBladeReverse(87, 173, NULL), //stip 2 (86 led)
  349. SubBlade(174, 260, NULL), //strip 3 (86 led)
  350. SubBladeReverse(261, 347, NULL), //86 led
  351. CONFIGARRAY(quad_presets) },
  352. { 1500,
  353. WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >(), //emitter independent
  354. WS281XBladePtr<7, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), //SIDE LIGHTS
  355. WS281XBladePtr<2, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >(), //POMMEL ring
  356. SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, bladePowerPin1, -1, -1, -1>(), //bluetooth module
  357. SubBlade(0, 131, WS281XBladePtr<266, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3, bladePowerPin4> >()), //main blade, edge
  358. SubBlade(132, 263, NULL), //main blade, spine
  359. SubBlade(264, 264, NULL), //null blades
  360. SubBlade(265, 265, NULL),
  361. CONFIGARRAY(dual_presets) },
  362. };
  363. #endif
  364.  
  365. #ifdef CONFIG_BUTTONS
  366. Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
  367. Button AuxButton(BUTTON_AUX, auxPin, "aux");
  368. #endif
  369.  
  370. #ifdef CONFIG_STYLES
  371. #include "../styles/KestisFETTStyles.h"
  372. #include "../styles/FETTBatteryStyles.h"
  373. #endif
  374.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement