Hello there,
I got a Teensy 3.2 and have a problem with the crossguard, it's probably something dumb for someone experienced lol.
1. As soon as I pull out the kill key the crossguards light up. Wiring triple checked. 2. Aux button doesn't seem to work. Appreciate any help.
#ifdef CONFIG_TOP
#include "v3_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
#define VOLUME 800
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#endif
#ifdef CONFIG_PRESETS
// Fire speed, valid values are 1 - 10
#define FIRE1_SPEED 2
// How long to wait before firing up crossguards.
#define FIRE1_DELAY 800
// Each of these have three values: A, B, C
// A = non-random intensity
// B = random intensity
// C = cooling
// The first two control temperature, and as we add
// A + rnd(B) to the base of the blade each animation frame.
// The second controls how rapidly the fire cools down
// This is used during normal operation.
#define FIRE1_NORMAL 0, 1000, 2
// This is used when a clash occurs
#define FIRE1_CLASH 3000, 0, 0
// This is used during lockup.
#define FIRE1_LOCKUP 0, 5000, 10
// Helper
#define FIRE1PTR(NUM, DELAY) \
StyleFirePtr<RED, YELLOW, NUM, DELAY, FIRE1_SPEED, \
FIRE1_NORMAL, FIRE1_CLASH, FIRE1_LOCKUP>()
Preset presets[] = {
{ "TeensySF", "tracks/mars.wav",
FIRE1PTR(0, 0),
FIRE1PTR(1, FIRE1_DELAY),
FIRE1PTR(2, FIRE1_DELAY),
},
{ "SmthJedi", "track..wav",
StyleNormalPtr<RED, WHITE, 200, 300>(),
StyleNormalPtr<RED, WHITE, 200, 300>(),
StyleNormalPtr<RED, WHITE, 200, 300>()
},
{ "SmthGrey", "tracks/venus.wav",
StyleRainbowPtr<300, 800>(),
StyleRainbowPtr<300, 800>(),
StyleRainbowPtr<300, 800>()
},
{ "SmthFuzz", "tracks/mars.wav",
StyleNormalPtr<CYAN, WHITE, 300, 800>(),
StyleNormalPtr<CYAN, WHITE, 300, 800>(),
StyleNormalPtr<CYAN, WHITE, 300, 800>()
},
{ "RgueCmdr", "tracks/mercury.wav",
StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >()
},
{ "TthCrstl", "tracks/uranus.wav",
StyleFirePtr<BLUE, CYAN, 0>(),
StyleFirePtr<BLUE, CYAN, 1>(),
StyleFirePtr<BLUE, CYAN, 2>()
},
{ "TeensySF", "tracks/venus.wav",
StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(),
StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(),
StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >()
},
{ "SmthJedi", "tracks/mars.wav",
StyleNormalPtr<WHITE, RED, 300, 800, RED>(),
StyleNormalPtr<WHITE, RED, 300, 800, RED>(),
StyleNormalPtr<WHITE, RED, 300, 800, RED>()
},
{ "SmthGrey", "tracks/mercury.wav",
StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(),
StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(),
StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>()
},
{ "SmthFuzz", "tracks/uranus.wav",
StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(),
StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(),
StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >()
},
{ "RgueCmdr", "tracks/venus.wav",
StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>()
},
{ "TthCrstl", "tracks/mars.wav",
StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>()
},
{ "TeensySF", "tracks/mercury.wav",
&style_pov,
StyleNormalPtr<BLACK, BLACK, 100,100>(),
StyleNormalPtr<BLACK, BLACK, 100,100>(),
},
{ "charging", "notrack.wav",
&style_charging,
StyleNormalPtr<BLACK, BLACK, 100,100>(),
StyleNormalPtr<BLACK, BLACK, 100,100>(),
},
};
// Hook up the main blade as normal.
// Hook up one of the crossguards like this:
// NEOPIXEL + <--> positive power (probably from charge port)
// NEOPIXEL - <--> LED4 pad on the bottom of the teensysaber
// NEOPIXEL data <--> Pin 7 on the teensy (through a 100ohm resistor)
// Hook up the other crossguards like this:
// NEOPIXEL + <--> positive power (probably from charge port)
// NEOPIXEL - <--> LED5 pad on the bottom of the teensysaber
// NEOPIXEL data <--> Pin 8 on the teensy (through a 100ohm resistor)
BladeConfig blades[] = {
{ 0, // blade ID resistor not used
// Main blade, 144 LEDs
WS2811BladePtr<12, WS2811_800kHz | WS2811_GRB>(),
// First crossguard, 26 LEDS, power on LED4, data on pin 7
WS2811BladePtr<21, WS2811_800kHz | WS2811_GRB, 7, PowerPINS<bladePowerPin4> >(),
// First crossguard, 26 LEDS, power on LED5, data on pin 8
WS2811BladePtr<21, WS2811_800kHz | WS2811_GRB, 8, PowerPINS<bladePowerPin5> >(),
CONFIGARRAY(presets)
},
};
#endif
#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif