Here is some footage of the latest project I'm working on.

(Dave Morgan) #1

Here is some footage of the latest project I’m working on. The circles all use strips of 36 LPD8806s. The strips are mounted on sliced up sections of a concrete forming tube. The background is a large piece of white foam core board. The caps are 40% transmission white diffused plastic that I had Tap Plastics make for me.

The software is still very much in testing and development so many of the patterns are somewhat rough and/or basic. Also I’m currently still working on a solution for securing the caps to the forming tubes. I’m having lots of fun working on these various projects, and FastLED has made it so much quicker and easier!

BTW @Mark_Kriegsman : the pattern at ~ 50 seconds in is my first usage of fill_gradient. It’s running a loop where I continually decrement the starting and ending hues (they are 45 points apart).

The occasional sound in the background is my Ruby Macaw. :wink:

(Mark Kriegsman) #2

Looks great-- and promising. Thanks for the note on fill_gradient.

(Jon Burroughs) #3

I love the feature of where it looks as if you are adding a spot on the circle one at a time, and the space between the lights shrinks…too cool its at

(Dave Morgan) #4

Thanks! That was done using sin8 and cos8 to modulate the brightness (using millis() with a variable divisor to drive the speed).

(Jon Burroughs) #5

I’m sure your explanation makes sense to others, but not me. Could you explain using pseudo-code?

(Dave Morgan) #6

I had a feeling that explanation wasn’t very clear. Now that I finally have a good understanding of how to use the wave-based functions (much of which came after reading some of the excellent detailed posts and code samples by @Mark_Kriegsman ) , I’m happy help others if I can. I posted the complete code segment at

What the code is doing is using two different wave functions (sin8 and cos8) to vary the brightness of alternating circles (i.e. circles 0, 2 and 4 are using one function, and circles 1, 3 and 5 are using the other function). I did this just to add a bit of variety.

The wave functions are the key to the whole pattern. The millis() / 50 and millis() / 20 code controls how fast the each wave function moves from 0 to 255. The * i essentially controls how many spots and spaces there are at a given moment (if you took that out, all you would see is a circle with a single color and the brightness would slowly ramp back and forth between 0 and 255).

In my experience so far (and I think Mark said something similar) finding the exact desired values for wave functions is frequently a case of just trying different combinations until you zero in on something that looks visually pleasing (although if you want a function that changes over a specific period of time, that’s easy to define).

If you have any other questions, feel free to ask!

(Jon Burroughs) #7

I like to see how visual ideas are translated into code, thank you for sharing and spreading the wealth!