I built a Deadmau5 Helmet for halloween and was having a small issue getting

(Adam Wright) #1

I built a Deadmau5 Helmet for halloween and was having a small issue getting my led strips to play nicely. I have a string of 160 or so in the mouth working great just using the FastLED DemoReel. I also have 7-led neopixel “jewels” in each of the eyes.

Is there an easy way to append the DemoReel code to provide some input to the LEDS in the eyes as well?

I tried to define another strip in a similar way but with slightly modified global variable names, but the eye LEDS would turn on for a few seconds, then turn off, then the mouth LEDS would run their DemoReel.

I would appreciate any guidance anyone could provide, I want my helmet to looks it’s best this weekend for halloween!

I am using an Arduino Mega and “neopixels” with the FastLED library 3.1

(allanGEE) #2

If you just want the same effects as in the mouth, you only have to run the signal wire to them as well. If you want separate effects – I’m a newbie and haven’t dabbled that far yet. Sorry.

(Adam Wright) #3

+allanGEE I was worried about running that many strips in parallel to one another. Also, the DemoReel is set up for 160 LEDs so even if I were to use the same signal, the effects would look off given the smaller number in the eyes.

(Jarrod Wagner) #4

@Adam_Wright ​ if you’d be so kind as to post your code we may be able to help a little better :wink:

If something is showing for a few seconds, then clearing, you may be overruning the visible strip.

In any case, if you’re basing the animations from the defined “strip length” you should be going about it the right way.

(Adam Wright) #5

@Jarrod_Wagner I am at work currently but I can paraphase how I did it.

Areas with changes are lines 16-24 and then line 34.

I think you may be right with the overwriting, also created a possible issue with the usage of CRGB which from my understanding has to do with defining the space in memory that we are using.

(Dougal Campbell) #6

I think that @allanGEE might have meant to connect them serially. So that your 160 strip plus the two 7-LED rings would be wired like one strip of 174 lights?

At least, that’s my first thought.

(allanGEE) #7

I wish I could say that was my thought. But @dougal is much smarter that me! Good idea!

(Adam Wright) #8

@dougal The way that everything is laid out would make that very difficult, although I am confident it would work, just a pain to wire. I was hoping there was some way to have 2 DATA_out pins and different things going to each, but that is proving to be harder than imagined.

(Jarrod Wagner) #9

I’m actually not seeing anything in your code that even writes to leds2 where the information would be stored.

I think you may be seeing ghosting while powering up.

Wherever you see something in the code that modifies elements at “leds[…]” There should be a second, nearly identical line that reads “leds2[…]”

For example,

void rainbow()

// FastLED’s built-in rainbow generator

fill_rainbow( leds, NUM_LEDS, gHue, 7);
fill_rainbow( leds2, NUM_LEDS2, gHue, 7);


That is if course assuming you want the same delta on both strips which will pretty just show one color on the shorter strip.

I’d modify some more for you but I’m on a cellphone right now :stuck_out_tongue:

(allanGEE) #10

From what I’ve read, that is definitely possible.

I guess it depends how many hours you have available before your Halloween deadline.

I’ll be up most of tonight trying to get my hardware together, so settling for unpolished software for this year (IF get it done in time, at all)!

(Adam Wright) #11

@Jarrod_Wagner I don’t know how I missed “leds” and other pertinent variables being called out below. That’s definitely something to look into. Must have been the lack of sleep combined with solder fumes that caused me to miss that.

I will try that tonight and see how it goes.

(Adam Wright) #12

This loop is interesting though for that approach. I can’t think of a way to implement a second counter for my 7 pixel strip.

void bpm()
// colored stripes pulsing at a defined Beats-Per-Minute (BPM)
uint8_t BeatsPerMinute = 62;
CRGBPalette16 palette = PartyColors_p;
uint8_t beat = beatsin8( BeatsPerMinute, 64, 255);
for( int i = 0; i < NUM_LEDS; i++) { //9948
leds[i] = ColorFromPalette(palette, gHue+(i2), beat-gHue+(i10));

(Jarrod Wagner) #13

Do you just want to scale that animation to your 7 LED segment? It (probably) can be done with some fun tricks