LED Hyperspace background for wooden Star Wars build

First let me apologize if this should go in project guidance. My question is very LED-specific so I thought this was more appropriate (feel free to correct me). To understand the question will require a little setup, so I won’t blame you for ignoring this.

Second, this question is for anyone who likes Star Wars, knows a thing or two about Arduinos/LEDs and wouldn’t mind throwing any relevant opinions at me.

Third, I’m a total noob at Arduinos/coding, so again, apologies. I did figure out the Adafruit soundboard so that’s something!

Okay - the setup: For the past 5 weeks I’ve been building a wooden 3D(ish) “intarsia” artwork of Han and Chewie in the Millennium Falcon. You can see the idea on my instagram here: https://www.instagram.com/p/B32Ksu_AJDo/. Or see attached image of unfinished piece. The entire build has been documented in my stories, highlighted on my profile. It basically uses dozens of wood species and a couple hundred pieces, cut to fit together.

The wooden background has star trails cut out (by hand with a scrollsaw) and filled with epoxy resin. I currently have some Phillips Hue strip lights set up behind it. But I’m going to switch them out for an Arduino Uno R3/Adafruit DotStar 60/m combination. I’m playing with the Arduino now and expect the LEDs on Wednesday. (I also already have a soundboard, speakers, and a bunch of sounds wired up to use buttons on the falcon dashboard).

So here’s the idea - I would like to cut up the DotStar strip so that there are several mini-strips radiating from the center. I’d like to then program them to go blue-cyan-white-cyan-blue, in a streak similar to what you see when they enter hyperspace. I would also like the ministrips to be slightly staggered in timing to give the impression of movement and depth (though if they have to move at the same time, I think it would still look cool). My question is how best to handle this.

  1. Should I wire up the strip so that the whole thing is still a single series (e.g. with pixels 1-10 being mini-strip #1, 2-20 being #2, etc) and figure out how to animate the movement per mini-strip? Or should I wire up multiple mini-strips up to the same pins so each is effectively a duplicate?

  2. Does anyone have any specific ideas on how best to increment a defined pattern like this in the Arduino code? I’ve dug through some of the adafruit example DotStar codes and a couple tutorials ive seen online. I understand a little of the very basics in incrementing. But being such a completely ignorant noob, it’s not clear to me the best way forward as far as how to set up the loop, as I’ve seen it tackled at least a couple different ways.

I’m happy just trying to figure this out on my own (and fine with highly possible failure). But I’m asking these questions in the off chance someone smarter than me thinks “oh that’s cool - here’s how I’d do it…” I basically just wanted to see how someone who actually knows what they’re doing might envision coding this.

I’d like to note that this is a personal project for my basement (no monetized/commercial aspects whatsoever. In fact, if you’d like to build your own, I give out the templates I designed). This is simply what I do for fun.

Thanks in advance if anyone read this far :slight_smile:

What LEDs?

Sorry - it's too buried in the novel above. lol.

Adafruit DotStar, 60 LED/meter.

This is how you post a link.

If you just paste a web address, this forum does not make it a clickable link for you.

Why did you choose dotsar? Several times the price of ordinary NeoPixel strips, but no advantage to your project that I can think of.

Thanks for the reply.
Sorry about the link.

I got the dotstar for 2 reasons

  1. I had read that NeoPixels requires very specific timing/speed requirements of the PWM. This went quite a bit over my head and made me nervous. It sounded like this isn’t an issue with DotStar. So basically: ignorance. I’m a biologist and woodworker and know Jack about electronics and coding. But I’m determined to at least learn enough for this project.

  2. The day I ordered, they were out of the 60 LED/meter NeoPixels (by my guessing, 30/m isn’t enough and 120/m is too much for this piece). It was the day after Halloween and I saw that a TON of their stuff had gone out of stock (I’m assuming because of costume props). So I went with DotStar.

I wonder if instead of figuring out how to fade colors between blue->cyan->white (one of things I was looking into, but looks potentially confusing to me and perhaps unnecessary), I should just define the pixel colors of a star trail (e.g. pixel 1=blue, 2=cyan, 3=white, 4=white, 5=cyan, 6=blue - this is just a 6 pixel example), and then increment the pixel location?

Then duplicate that loop for pixels 7-12 (on a separate “star trail” section still wired in series), etc, perhaps offsetting the start by one or 2 pixels to get the “staggered” effect?

I have no idea if this is an incredibly simplistic/stupid question, makes sense, or if there are other ways I should be looking at it. I imagine there will be issues I haven’t even considered yet.

Worry about that later. Get the strip working with the standard example sketches first.

I had read that NeoPixels requires very specific timing/speed requirements of the PWM. This went quite a bit over my head and made me nervous. It sounded like this isn’t an issue with DotStar.

Correct in itself, but as long as the NeoPixel update is not competing with any other activity on the Arduino, the timing is no problem as the Arduino is after all, a crystal-controlled (actually, ceramic resonator but no problem) precision timer.

You can interrupt the DotStar update cycle for some other critical process and if not taking too long or too often would not affect the animation but this is extremely unlikely to be required. The use of interrupts is a common "newbie" mistake.

OK, just move on now ... :grinning: