Embedded - 41: Pink Universes Die Really Quickly

Episode Date: March 5, 2014

Micah Elizabeth Scott (@scanlime) came to talk about Fadecandy, a really neat way to control smart LEDs (NeoPixel, AdaFruit's term for the WS2812). The conversation ranged from beautiful LED control a...lgorithms and open source embedded projects to triangle tessellations, art, and identity.  AdaFruit has a great intro to Fadecandy. Fadecandy is open source hardware and software, see the repository. Micah's blog is a combo of art and technology. Burning Man's Ardent Mobile Cloud (also a lovely still pic). Elecia also mentioned Deep Darc's hack of the GE Color Effects lights.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Making Embedded Systems, the show for people who love gadgets. I'm Elysia White with Micah Elizabeth Scott to talk about fade candy and blinking lights, the candy of the embedded world. Before we get to our guest, though, I'd like to thank Matthew Jay for winning the Evil Mad Scientist Snap-O-Lantern Kit by knowing that it was Marie Curie who said, a scientist in his laboratory is not a mere technician. He's also a child confronting natural phenomena that impress him as though they were fairy tales.
Starting point is 00:00:36 As someone who likes both fairy tales and science, that quote makes me happy. Giving away stuff makes me happy too. So we'll see more goodies in the future, especially after my rampage through the show floor at EE Live. Okay, formalities are over. Let's get back to Micah. Hi Micah, thank you for joining me. Hi Alicia, it's good to be here. I'm kind of surprised we haven't met before. We seem to have a number of interests in common. Can you tell me about yourself? Well, I guess I've been kind of doing embedded systems and electronics and software and sort of everything on that intersectional line between the two for a long time.
Starting point is 00:01:13 I guess I had kind of like a lonely childhood and my escape from that was to learn how to build things. And I never really found myself content to work on just hardware or just software, So I kind of ended up straddling the line between the two of those. And, you know, I didn't really know it at the time, but I was also kind of straddling the line between hardware and software and art. And I kind of stayed in that world for a long time. Last week's guest, Eleanor, was very into art as an enabling path to science and technology. But I kind of get the idea you're the other way. Yeah. Well, it's more like, you know, no one ever told me that I could do art. You know, it's like I, you know, I had art teachers in elementary school that were telling me I was
Starting point is 00:01:54 doing it wrong. And then, you know, now, now I realized that, well, you know, I just have a different idea of what right is than what they had in mind. So I guess it's more that technology was something that I found early on that I could be confident in, which, you know, it really isn't an experience a lot of people get to have, you know, technology is often something that feels really exclusive, and it takes a while to build up confidence in it. But I had kind of, kind of a sandbox where like, I was alone, and I was doing it by myself. And it was, you know, there was nobody there to tell me I was doing it wrong. So I had a chance to build up a lot of confidence and experience in technology. And then when I realized that, you know, I was unhappy with focusing on technology for its own
Starting point is 00:02:31 sake, you know, I got to sort of explore whatever, whatever else there was. And, you know, I got to sort of eventually figure out how to be confident in doing art too. Okay. And I want to talk about the art, but I think we have a couple of steps to get there. Fade Candy, that has been your pet for a really long time. I was just sort of recalling some old memories of buying my first blue LED back in, I think, the early 90s or whenever they were just starting to come out. And it was like $10 for like one blue LED. And now it's like the LEDs I use are like less than 20 cents each and they have built-in controllers and they're RGB and super bright. So technology has come a long way, but I guess I've always been interested in light because it sort of plays with your perception in this way that I really like. It's something where you can take some kind of signal processing algorithm that you're working on and actually have it not just
Starting point is 00:03:43 be numbers, but have it actually be something that viscerally you're like your brain understands how to interpret. And lights are just one way to get there. So, you know, I'd sort of been playing with light technology for a long time. But Fade Candy really came about as a result of two of my projects last year. There was first, you know, I started working on kind of sort of an LED sculpture project that was originally going to be kind of this big synesthetic music light thing. And then I started doing small prototypes for that. One of the prototypes led me to realize that it was really hard for me to actually get that full dynamic range out of LEDs. You know, I try to make them very dim and very bright, tried to smoothly fade between those two, tried to get very pure colors,
Starting point is 00:04:26 and it was really hard to get there. So I ended up kind of stumbling upon some algorithms that improved that. They were really hard to use, though. Wait a minute. What kind of algorithms? I mean, is this just smoothing algorithms and low-pass filters, or what kind of algorithms? Oh, yeah. So I'm happy to talk about this.
Starting point is 00:04:46 It was... We are eventually going to get back to the first question, which is what is fade candy? But algorithms. Yeah. As you can see, I mean, yeah, I've had a bunch of tricolor RGB LEDs that they don't really look that good. I mean, you can make them dim, you can make them snore, but they don't look that good. How do you make them look good? It's really tricky. It's sort of like how in audio engineering,
Starting point is 00:05:13 you're dealing with a relatively simple signal. It's not very fast. It's pretty easy to build an analog circuit that processes sound. But to do it really well involves a lot of subtlety because our brains are really sensitive to the details in these signals. And so with LEDs, there's a lot of dynamic range that our brains are sensitive to. And if you have, you know, a digitally addressable tricolor LED with built-in like 8-bit pulse width modulation, that's actually not even close to hitting the kind of dynamic range that our eyes and our brains can process. And yet that sounds like so much. I mean, tricolor, PWM, 8-bit. I know, it's like 16 million colors.
Starting point is 00:05:48 Oh man, that's awesome. But it's not really enough, is it? Yeah, and I mean, part of it is our brains are really sensitive to changes in signals. So if you're going between... More than constant signals. Exactly. The difference between one and two
Starting point is 00:06:02 is much different than the difference between two and two. Not just mathematically, but yeah, constant isn't as interesting to my brain. Yeah. So part of the problem is like LEDs can change very fast. And our brains are really sensitive to the edges on those change. So like if you had an animation running at 60 frames a second on an LCD or like with light bulbs or something, then the LCD itself or the light bulb would be smoothing out that signal. But since LEDs respond so fast when we go from one level to another, the LED changes immediately in our brains. See this like sharp spike, kind of like this flicker. So it isn't my imagination that I can tell when the LED is flickering at 60 hertz. Oh, definitely not.
Starting point is 00:06:42 Because it sits over there on the edge of my vision and I go slightly insane. It's like all this information where like, you know, your body is telling you, pay attention to this, pay attention to this, but it's not important. It's just distracting. There's a tiger over there. There's a tiger over there. And my brain is going, look, look, look, it's important. Something's blinking, something's moving. And it's not, it's just... LEDs have that potential to like really mess with our perceptions and kind of trick all of these parts of our brain that have evolved for something different and it's like we have all that power to do that and now we have to learn how
Starting point is 00:07:13 to manage it but we can do pwms i mean we can do good pwms that are beyond our perception yes um we can definitely do good pwm but it's um like a lot of people don't really do that because if you're not really paying attention to the details and how something looks, you could do 8-bit PWM and it would seem fine. But you look at it more closely and you notice that, especially if you're looking at the difference between an LED that's off and an LED that's at the first brightness level that's available to you, an 8-bit PWM, it's actually a really big difference when you're looking that closely. So the problem I had with these 8-bit per channel LEDs doing these like sculptures I was working on, when you'd start to get from, you know, kind of a dim level and like fade all the way to black, it would kind of, it would start to fade. Then you would see the colors change as you would sort of start to lose resolution in some color primaries, but not other color primaries.
Starting point is 00:08:11 Right. Cause the blues still are not as bright as the reds. Well, I mean, it can happen with any of the channels. I think what happens is, it's like once you start getting into the dimmer brightness range, you actually start getting less useful precision in the color. So it's almost like when you're looking at like old school, like 16 color or like, you know, even like eight color like graphics, and you start to see how everything just, the colors are just wrong, like it kind of snaps to the nearest color. And then so not only is the color wrong, but you're noticing it kind of snap, you're noticing that as it fades, it kind of chooses different nearest colors. And it's like,
Starting point is 00:08:49 it doesn't, the original effect is lost, because now you're paying attention to all these artifacts and the signal that you're seeing. So you can definitely work around this by having just higher resolution PWM. And I'm sure LEDs in the near future are going to do this. But I found myself wanting to take the LEDs that were currently cheap and available. Because even the future ones that do this are going to be more expensive at least for a little while until they come down.
Starting point is 00:09:13 Yeah, exactly. And like you can already buy these chips like I don't remember the model number but TI has some that are really nice that do like 16-bit PWM plus 7-bit analog current control and they're really nice but they're also expensive. They're like, you know, I think they're a couple dollars and they only drive like a few channels of LEDs. So it's a really far cry from getting, you know, a single chip with this WS2812 that
Starting point is 00:09:35 is like, you know, in the neighborhood of 10 cents and has all of this stuff built in, but restricts you to 8-bit PWM. This WS2812, that's the Adafruit NeoPixel? Right. So NeoPixel is kind of their brand name for all of the chips that are compatible with the WS2011 signaling. And the WS2011 was sort of the original standalone LED controller chip that used this one-wire signaling. And then the 2812 is what happened when they figured out how to build that into the same package as the RGB LEDs. Okay. So the NeoPixel, and I haven't seen one on its own yet, although you did bring a board of them, is an LED RGB 8-bit PWM, and it's got a little controller on there that speaks a one-wire protocol, kind of similar to I2C, but one
Starting point is 00:10:26 wire and, um, and then power and ground. So I only had to put three, three lines into it, right? Yeah. The original WS2812 actually had six pins for like mounting reasons, but in the 2812B, they simplified it even more. And it's actually just a four pin chip that has power ground data in and data out, and you can daisy chain them pretty much indefinitely, but it does slow it down as you daisy chain more. And that's the cool part. You can put 512 of these together. You can. I've actually found that... Well, so to get back to the algorithm that I was talking about,
Starting point is 00:10:57 to get around the limitations of 8-bit PWM, this hack that I found was that you can actually do... You can call it temporal dithering or delta sigma modulation. It's a way of taking, like rounding to the nearest 8-bit color and then taking the error that's left over and kind of feeding that forward into the next frame. And then doing that so fast that it's actually kind of flickering between two PWM levels at a rate that's fast enough you can't see it. And so if we were doing this on big scope and you could only choose between blue and green, but you were flickering between those so fast, you would perceive the color turquoise, cyan. And so that's what you're doing, but at a much smaller level.
Starting point is 00:11:41 Exactly. Between two pieces, two 8-bit signals. Mm-hmm. Or two levels in an 8-bit PWM signal. Exactly. And so that was the sort of trick that I originally found when I was working on this sculpture early last year. But it was really hard to implement.
Starting point is 00:11:59 You know, it required a lot of care to do this correctly and to do it accurately. You had to drive the LEDs very fast. I ended up driving them at about 400 frames a second, which is why I end up using shorter strings than like 512 or 1024. I actually use LEDs that are only strung out to 64 daisy chain together. That way I can drive them at 400 frames a second. You can still do a lot with 64 lights. Exactly. And the large board that I brought here actually has 512 LEDs on it divided up into eight banks of 64. And it's all driven by one of the Fade Candy boards.
Starting point is 00:12:32 And so, okay, so let's talk about that board. Well, do you have any more algorithms first? Oh, so to get the best quality, I ended up using the temporal dithering. Also to kind of take off those hard edges because I'm running it at such a fast frame rate anyway, I can actually kind of interpolate between frames. So if you have an, like a graphics algorithm running at 60 frames per second, I actually, instead of switching immediately to the next frame when it comes in, I kind of blend between the frames. And it's a very subtle effect, but it can actually kind of take off that, that like little bit of flickering that's still left over. So as a result, you can actually have kind of these very subtle animations that are expressive,
Starting point is 00:13:11 that use a lot of range and brightness and color. And you can use them in combination with like other art, like sculpture or interactivity and have the LEDs not just like distract you constantly, you know, the LEDs aren't just screaming, you know, at your subconscious, you know, there's a tiger over here, but the LEDs are actually helping to support whatever other art you're doing. And so is this, you're running your graphics algorithm at 800 Hertz, but only updating your LEDs at 400 Hertz? Or did I get that backwards? It's sort of backwards. The graphics algorithms can run at whatever rate you want. Typically they'll run it more like regular video frame rates. So like 60 to a hundred frames a second, maybe, you know, 20 or 30,
Starting point is 00:13:49 if you're running it on a resource constrained platform, like a Raspberry Pi. And then that sends keyframes to the fade candy board and the fade candy board ends up interpolating between those since it's on its own generating 400 frames a second for the dithering algorithm. And so since it's running so fast, anyway, it's actually relatively easy for 400 frames a second for the dithering algorithm. And so since it's running so fast anyway, it's actually relatively easy for it to do the interpolation between the sort of coarser grained frames. Okay, so you're fading from one instructed frame to the next through your 400. Okay, that makes a little more sense than what I was trying to talk myself into.
Starting point is 00:14:20 Okay, so temporal dithering and interpolation, those make, I mean, they make a lot of sense. Why didn't I come up with this? Anything else? I guess the other thing that I've tried to do is to put it into a really easy to use package. So when I originally did this for the sculpture last spring, it was... You mean the fade candy? This was before Fade Candy. This was what would eventually turn into Fade Candy. But this was actually something I was doing as part of the triangle project that's sitting here on the desk. It was a prototype for a larger sculpture I was doing. And that was when I first discovered I needed to really worry more about the smoothness of light. Because when I was trying to physically smooth out the light and diffuse it into these very geometric shapes, then I discovered that electrically the light was not very smooth either. So I prototyped these algorithms, but the prototype was really hard
Starting point is 00:15:14 to use. It was kind of tangled up with my actual visual effects code, and it was very resource constrained. So what I wanted to do was to find a way to take all these algorithms to make the LEDs look better and to put them into kind of a black box that people could really easily attach to whatever other programming languages or visual effects frameworks they wanted to use and just have a solution that was both good looking and easy to use. So I started developing this firmware as part of a Burning Man project last year, the Ardent Mobile Cloud Platform. And then after Burning Man, decided to put in some more effort on developing the firmware and the hardware so that it was just an easy-to-use product for people to use. Because, you know, I like making art, but I also like making tools to help other people make art.
Starting point is 00:15:59 And that is where we arrive at Fade Candy. Finally. Finally, we can get to what is Fade Candy. And so I have this little board in front of me. Gosh, it's about two quarters max. And this has a processor, a USB, and then a header to go out to the LEDs. What's the processor?
Starting point is 00:16:26 So the processor is an ARM Cortex-M4 running at 50 megahertz. It's one of the Freescale Kinetis K20 series. It's actually the same chip that was on the TNC 3.0, which was the board that I originally used to develop this firmware. And then so this connects to your computer via USB, which provides power if you've got a small subset, but it also provides instruction for what the frames are going to be. The USB interface is really simple. It's designed to only power the fake candy itself. The scheme that I found to kind of keep the reliability on sort of medium to large installations is to have pretty much separate power for your computer and for the LEDs.
Starting point is 00:17:07 So the idea is you'd have a Raspberry Pi or some other embedded machine or a laptop running your visual effects, and that can actually require a lot of CPU. To run the Ardent Mobile Cloud, I ended up using a Raspberry Pi, but it took a lot of optimization to fit the visual effects on the Raspberry Pi. For some of the other projects I ended up using a Raspberry Pi but it took a lot of optimization to fit
Starting point is 00:17:25 the visual effects on the Raspberry Pi for some of the other projects I've been using like you know I'll be running it on my laptop but it'll be using like 20 or 30 percent CPU on a laptop wow yeah okay so so can we turn on the triangle again oh sure so the triangle um okay, it's a triangle and it fits comfortably in my hand, so it's not huge. And it's made up of sub-triangles. There's a name for the shape. I'm showing it to the math major and he's just looking at me like, you don't really, really want me to try to figure this out. Okay, it's a triangle made up of other...
Starting point is 00:18:01 It's an equilateral triangle and it's subdivided into 16 smaller equilateral triangles. I'm glad somebody knows what they're doing. And as I'm holding it, and it's connected to Micah's laptop, it's blinking at me, but it's very pretty. It's mesmerizing. It's white to beige to a pinkish beige, and then down to a dark blue blue and then it goes this way and that way and it's it's really quite mesmerizing and it is it's kind of gently pretty it's the sort of look at me thing that I would want advertisers to do um and yet it isn't objectionable it isn't if I'm if I'm doing something, this would not necessarily distract me.
Starting point is 00:18:48 But if I was looking for distraction, this would be amusing. So it's a nice blend. Oh, see, he did know. It's a tessellation of triangles. Thank you. Thank you. So this is very pretty what is it for uh that's a good question um i find myself asking asking myself that a lot
Starting point is 00:19:11 um so i originally built that as a prototype like i wanted to do a larger sculptural piece that would be sort of an interactive um i mean i i only had sort of vague ideas for this at the at the time like i want to do something that was interactive and also explored synesthesia between music and light. So I really wanted something where, you know, and like a lot of people do music visualizations and FFTs. And I actually want to do something much more complicated with pattern recognition and computational auditory scene analysis and all sorts of fancy digital signal processing. But this project was sort of the prototype for the visual side of that. I wanted to do something geometric, something that explored the limits of LEDs, but didn't necessarily look like any existing LED art.
Starting point is 00:19:55 I wanted to do something which was much more about geometry and lines and patterns, and really let you create patterns. The triangles kind of came out of this desire to have kind of a correspondence between patterns that recurred in music and geometric patterns. And these equilateral triangles were a great geometric building block. You can make all sorts of other shapes out of them. So my original idea was to have kind of a large three-dimensional form that was made of these tessellated equilateral triangles on all the sides. And then this sort of computational
Starting point is 00:20:29 sort of music synesthesia algorithm would end up creating these sort of 2D and 3D tessellated patterns on that triangular grid based on the music. I could see how this would make a pyramid and it would be really cool. So it's doing light patterns now is it reacting to sound in any way or is this just kind of uh this pattern is just running by itself um
Starting point is 00:20:52 this pattern is actually based on a uh a particle system that's following a uh sort of a chaotic gravitational attractor there's sort of a at each vertex of the larger triangle, there's kind of a gravitational attractor that's invisible, and it pulls this swarm of particles through it in this chaotic way. And it's actually almost like a bunch of little universes being created and destroyed. Like every time it fades in, there's a bundle of particles starting out with kind of random colors that were actually sampled from a photograph and slightly different locations. And then they kind of sweep through this gravitational attractor system in this kind of chaotic way. And there's a limited amount of time in the universe before it kind of collapses and fades out.
Starting point is 00:21:34 And then there's actually another algorithm that looks at the properties of the particles and tries to decide, you know, how interesting is this? You know, are they sort of bundled together and stuck? Are they moving? How much variety is this? You know, are they sort of bundled together and stuck? Are they moving? How much variety is there? And it actually kind of changes how fast the universe dies based on how interesting it is. That sounds very, very complicated. Well, and that's part of what I like about the LEDs. It's like, part of it is like playing with the limits of perception, but part of it is actually giving yourself a very abstract medium that you can encode meaning in. Because there's a lot of stuff going on in this. But I think it means something different to everybody.
Starting point is 00:22:14 Like people look at, at least, you know, when I think I'm doing it right, I'll make something with LEDs. And it'll mean something very specific to me, but it'll have a lot of detail in there that I think you can interpret in a bunch of different ways. So some of my favorite moments are when I'm showing some of my art to a friend, and then they start explaining how they think it works. And it's completely not what it actually does. But it's, it's still really interesting. And I actually really like hearing what other people see in my art more than I necessarily like explaining how it actually works. I thought you were going so so in that vein, I thought you were going to tell me it had something to do with like the game of life with the cool Conway and the neighbors and they, cause
Starting point is 00:22:50 it, it is very, if it's in one area, it lights there for a little while and then it kind of goes to the other bits and then it'll go to one side and stay lit for a second and then go, it travels. It doesn't blink here and there, up and down. Very random. And I noticed that it's mostly blue and sometimes it'll go to an orangish beige color, which I don't even know how to get that out of an RGB LED. It's actually a photo from the desert that I took. So it's got kind of a desert-y color scheme.
Starting point is 00:23:20 Yes, it does. And one of my friends in the photo was wearing like a bright pink outfit with bright pink hair and so occasionally you'll see pink particles and that's her i was gonna say i think that the pink it must not like the pink universes because those seem to die really quickly i don't think that does anything about her um okay so this you made it for art and and you made it to show something entirely different and everybody gets to see what they want to see in it, which is very art.
Starting point is 00:23:52 Well, and I think it's interestingly brought up the game of life. Cause I think that, you know, patterns like this, I like them for the same reason. And like people like the game of life. It's something that is at its heart really simple, but that expresses a lot of complexity. And it's like one of those things that you see all over the place in the real world. You know, the world is full of these complex systems where, you know, you have a little bit of the right kind of feedback between the outputs and the inputs and enough like levels of kind of abstraction in the way the control works. And all of a sudden it starts expressing these things that just repeat over and over again in this way that is never really the same. So, you know, you see these patterns and you see these meta patterns, but it's never looped.
Starting point is 00:24:33 It's never something that actually seems stagnant. So it like seems enough like life that your body is sort of conditioned to want to find it interesting. But, you know, it isn't real. Yes, I'm kind of sad it isn't real because it might i could totally i mean this has the makings of a pet maybe not this pattern but the way that it it is organic feeling yeah i think oh making it real is actually something like i think that comes with connecting it to other people connecting it to you know interactive sensors connecting it to people elsewhere, connecting it to, you know, interactive sensors, connecting it to people elsewhere.
Starting point is 00:25:10 And so, you know, that's something I'm really interested in doing. You know, I feel like I've gotten so deep in this technical hole, like making the LEDs look as good as possible, that I haven't had enough time to work on the interactivity and the sensors. But that's something I'm doing in the near future. And I'm really excited about it. Yeah, I want to talk about that. But I also do want to get back to the tech a little bit because the question is, well, how do I make one of these? Yeah, how do you make a fade candy or how do you use that to make a...
Starting point is 00:25:36 How do I make the pretty light display? So that's the part that I've been trying to make easier. So right now, if you have a fade candy board, which normally you can buy from Adafruit, they're currently out of stock because they've been selling really well, but they should be back really soon. And there's a waiting list. So if you get a fade candy board, if you get some of these WS2811 compatible NeoPixel LEDs. And those you can buy in like a strip format.
Starting point is 00:26:03 You can buy them in rings. You can buy them in triangles. You can buy them in triangles. Oh, yeah. There's so many places to get these. Adafruit's all over all the options. Yeah. Adafruit has matrixes. They have strings.
Starting point is 00:26:14 They have different spacings. They have rings. You can also get these directly from China and from a lot of places. You can get them in little discrete units that have wires between them. You can get them on individual circuit boards and like run magnet wire between them. You can really use a lot of different creative methods to build things out of these. And can I, is it, is it mostly mood lighting or could I build a display with this? Oh, you can definitely build a display. Like I, I guess I don't really find video walls that interesting because, you know, it's like we have a lot of different ways to put
Starting point is 00:26:48 a rectangular image on a rectangular surface and LEDs aren't necessarily the best way to do that since they're expensive and low resolution. Um, to me, LEDs are best used when you need a lot of contrast between brightness and, um, sort of softness. And, um, you know, you can definitely get a large grade of LEDs and put video on it. And I mean, you know, it makes a good demo, you can really show what the LEDs are capable of. And a lot of people do this for like outdoor displays, but I find they're mostly used for distraction and for advertising. Whereas I'd rather use the light for things that interact with the rest of your environment, you know, for things that illuminate people or illuminate structures or, you know, illuminate a room. So I would say mood lighting is one way to use them, but also just as one component of some other art piece.
Starting point is 00:27:34 So illuminating some, you know, geometric structure, illuminating a sculpture, illuminating a room. And I am a big fan of ambient information. Many, many years ago, I wanted to make LED Christmas lights that I wouldn't have to take down because every day of the year, they'd be a different color. So you would know Valentine's Day was coming up because on the 1st of February, your house starts to turn pink, and then on the 14th, it's red and green for St. Patrick's and all of that. But individually addressable LEDs didn't exist when I wanted to do this.
Starting point is 00:28:09 It was a while ago. And the cables full of PWM lines was just a manufacturing nightmare. And then GE came out with those color effects lights. And someone broke them, hacked them, deep dark hacked them, published the control scheme. And I played with those, but they were all always very linear. Certainly they did. They could do what I wanted with my never take down my Christmas lights. But now, now I want more, of course. And this seems like a path to get there. It's still very linear and it's still very display, but it's, it's information. I mean, if I could also have those lights, if I can have those lights, you know, day
Starting point is 00:28:51 of the year at night so that my neighbors are amused. But in the morning, uh, if it like did my traffic display for me as I, I could like see, I could just look out the window in the kitchen. Oh, the lights are red. You know, maybe I'll just have that second cup of coffee. Oh, the lights are green. I should get in the car and get out of my way. Sort of, I like that use of them as well. Yeah. I think, I think the technology is getting to the point where it's becoming easy enough to not have the LEDs just like scream out at you, look at me, I'm an LED, but actually just be part of your lighting
Starting point is 00:29:22 environment. And now it's much more of a like kind of an interaction design and like an architecture question you know how do you integrate these things into a living space how do you you know how do you light people doing a particular activity you know how do you light people for like dancing or for getting ready in the morning and how do you how do you convey the right information and provide the right kind of connection you know like i'd love to have lights in my room, for example, that respond to music or to weather and not necessarily as like a display device even,
Starting point is 00:29:52 but as a way of connecting that space with the space outside it or with the space in my head or with the space in the music. Yes. It's not that I want to know what the weather is like. It's that I want the weather to be more integrated into my life. It's like a way of having, you know, the walls that you need to keep your house warm without having the walls keep all the sort of context out. Yeah. So what is the most interesting use you've found for these so far? I think I'm still working on discovering that. Like it's been an ongoing sort of process of like developing technology and developing applications.
Starting point is 00:30:28 I'm pretty excited about a work in progress that I'm doing that's an interactive installation that's going into the side of a wall, but I'll have to wait to share that once it's a little farther along. The last big project I completed with these was the Ardent Mobile Cloud Platform at Burning Man last year. And that was a project, you know, just for a little context, it was a sort of a 3D pixel cloud that was up on a forklift 40 feet in the air that would rain on people and give rides. And it had this really strange lighting where the skin was made of this translucent plastic and these kind of 3D voxels. And it was all lit from the inside with led strips.
Starting point is 00:31:06 So it almost looked like it was projection mapped, except there wasn't nearly enough space for projection mapping, and it was very bright. So it was capable of doing these effects that were just so different from anything you'd seen with LEDs or at Burning Man, like, it had these sort of rolling cloud patterns, these sort of like ethereal, kind of otherworldly patterns that kind of rolled through it. It have lightning that would start in one part of the cloud and then chained other parts of the cloud. And it was all controllable via this like iPad interface from the ground. That sounds beautiful. I'll have to find a video of it. Post that in the link notes. You've done some experiments with translucent materials, trying to figure out how to make the LEDs look good in an environment.
Starting point is 00:31:46 What have you found? Oh, definitely. There's a lot of things I've been doing with like plastic, just because, you know, it stands up to a lot of different environments and it's easy to manipulate with laser cutters. Cloth is also really great. In the ardent cloud, we used a combination of plastic and cloth, actually. We couldn't use acrylic, which has really good light diffusing properties because it wouldn't have stood up to the vibration and the harsh environment there. Because of the UV or because of the temperature? It's very brittle. And the whole thing is very heavy and fragile. So we wanted something that
Starting point is 00:32:20 could bend a lot. Acrylic is also expensive. So we ended up using HDPE. It's the same plastic that milk jugs are made out of. It's cheap. It's flexible. It stands up to a lot of abuse. It's not particularly flammable. No, it's not that flammable. You have to watch it when you're laser cutting it, of course, but it's not going to be like a problem. Well, I hear people putting interesting things into ping pong balls. Oh, balls oh ping pong balls are terrible yeah don't use ping pong balls with ladies public service announcements like just search youtube for like you know ping pong ball fire and watch people's leds arrays that have shorted out and caught on fire it's really bad
Starting point is 00:32:58 um milk jug like material okay but we found that you know, you also have to watch out for the optical characteristics of the materials you're using. Like HDPE has this problem where it's actually much more translucent in lower frequencies of light than in higher frequencies. So it tends to cause like kind of a reddish cast. And this isn't a big deal for light that's heavily diffused. But if you have a point source, what you're going to see is a fairly diffused sort of overall light coming off. But if you look straight through the HTPE at your point source, you're going to see this really ugly red dot where your LED is. So I tried a bunch of different things to get rid of that, including sandblasting the HTPE. But the best solution we found was to actually put diffusing cloth behind that.
Starting point is 00:33:44 So the combination of cloth and cheap plastic actually made a really good diffuser for the ardent cloud. And what is this one made out of? So that one, the triangle, that one is actually the one that I'm most happy with. It came out really well. The top surface is acrylic that's designed for light diffusing. I just got it at like Tap Plastics in San Francisco. It's, I think it's made, it's like 60% transparent. There's always kind of a trade-off between how
Starting point is 00:34:10 much light gets through and how much diffusion you get. So, you know, a lot of people talk about how these new NeoPixel LEDs are just way too bright, but sometimes you need to start out with something that's really bright so that you can then kind of shape the light the way you want it. That's very true. On some of the professional products i worked on i'm just flabbergasted looking at the transmissive transmissive um the translucence of the plastics yeah um and i mean we use we do these leds and then we put it behind plastics that's like 90 percent opaque yeah because that's what makes it look nice exactly and and you know they're saying oh you have to get the battery usage down i'm like why don't you use a different plastic because then i wouldn't
Starting point is 00:34:57 have to power it so much but it's about how it looks and having not as much light get through or having light get through the whole, in this case, triangle instead of a point source makes a big difference. It's just very, it's a lot more reassuring to see a triangle's worth of light instead of a point source worth of light. Yeah, the triangles are really challenging. Like the diffusing acrylic was a good sort of top layer.
Starting point is 00:35:19 Like that's the veneer I want to be looking at. The light kind of diffuses very kind of, it kind of gives you a nice soft glow if you point a light at that acrylic. But I didn't want to see like a blurry dot. You know, I didn't want to glow starting from the center. I wanted like a very sharp triangle. So to get that, I had to do two things. I had to put the LED far enough back from the surface that there was just enough room for the light to spread out and bounce. Distance. And then I had to create these kind of isolated optical cavities for each um each
Starting point is 00:35:46 triangle so even even using a single laser cut piece of this acrylic as the top surface of the triangle would provide way too much bleed between um from triangle to triangle i wanted them to be very isolated so i ended up having to do this inlay where each one is actually a separate piece of plastic inset into this very delicate laser cut frame that provides an opaque light barrier. Yeah, because between each triangle, there's a black line and I bet that black line goes all the way down because there's no bleed between the triangles. Exactly. It gets a little bit thicker to provide like a shelf for the plastic to support on, but
Starting point is 00:36:20 that goes all the way down. And then inside, it's actually painted with sort of a diffused titanium dioxide white paint, which you don't want it to be reflective too much. I was wondering if that was reflective. Yeah. You don't want it to be a mirror actually, because then you see hotspots, the sharp dot from the LED doesn't spread out that much. It just kind of bounces around and gets warped and changes shape. Almost like when you're looking at light reflecting off of mylar or off of like a car window or something. And you get sparkle spots. Yeah, you get almost like the underside of a swimming pool.
Starting point is 00:36:51 You get these caustics. Yeah. So instead of that, you actually want the light to be to kind of bounce off in every direction when it hits the surface. So it's kind of like a mixer in there. The light bounces off in every direction. All the walls except for the top are just painted white. So the light kind of bounces around a bunch of times before it finally hits the diffused surface and escapes. And by that time, it's been suitably randomized.
Starting point is 00:37:14 So the light is pretty much completely even. So not only hardware and software, you've been doing some mechanical engineering. A little bit. I know a little bit of CAD. And so there's a programming language to control what these look like. You can actually use them with a variety of different programming languages. I've tried to make the lower level parts of this, like the firmware, the electrical design, and the kind of bottom levels of software that handle the USB interface. I've tried to make those as much kind of black boxes as possible. On the top end of that is just a TCP socket that you can write graphics data to using a really simple open source protocol called OpenPixelControl.
Starting point is 00:37:57 And I have examples for a variety of languages. I use processing a lot because it's a really kind of quick and dirty way of prototyping things. I've also been experimenting with doing LED visualizations in JavaScript with Node.js. And you can use Python. You can use C++. So I have examples for a handful of languages. But because it's all based on TCP sockets, you can use any language that supports networking.
Starting point is 00:38:19 So it's really open for a variety of tools. The Adafruit tutorial went through the processing language. Yes. I find that name very confusing because processing means something else. Exactly. Okay. It's like processing.com, processing.org? I think it's processing.org.
Starting point is 00:38:39 And so you type in your LED plan, your graphics ideal, and it sends it down through USB, through TCP actually, but we're going to call it USB because that's what the cable's called. And then that goes to the fade candy and then that can control the NeoPixel, whatever you have, whether it's triangles that you've built or whether it's strips you've bought. Processing is really just a programming language. It's designed, it's based on Java. It's really designed to just take away the boilerplate and let you just draw things to the screen with a minimum of fuss. So what I've done with processing is I have this
Starting point is 00:39:14 really tiny library that you can incorporate into your sketches pretty easily that lets you map pixels from your graphics display to LEDs. So in the code for your processing sketch, you'll call some functions to lay out where your LEDs are on the screen, and that maps pixels to just an ID number that says where they are in this packet. And then that library sends TCP packets to a daemon that runs in the background called FC Server for the FadeCandy server. And that's an open-source program that you can edit if you want,
Starting point is 00:39:43 but you can also just download it and run it without having to really fuss with it. And then that manages all the USB communications in the most efficient way it can. And you say black box, but this is all pretty open source. Oh, yeah, everything is open. Everything from the PCB layout to the firmware to the bootloader to the server, it's all open. I wanted to make this something that artists can tinker with and extend, but they don't have to. So you can just download the binaries, you can buy a pre-made
Starting point is 00:40:09 board and just get started in five minutes. Or if you really want to tinker, you can make the board yourself. You can, you know, flash the firmware yourself. You can edit the firmware. So, you know, I wanted to make something where the, you know, proprietary hardware or software was never a barrier for people. I'm not really worried about people copying the design. I worry much more about obscurity than duplication. And in fact, other people already have been copying it. There are actually three different versions of the fake candy board out there right now. There's the original one that I'm making, which I made a hundred of and then stopped. There's the one that Adafruit's
Starting point is 00:40:43 manufacturing now. And then one of my collaborators is actually starting to do his own run of the boards based on the same open source designs. You're giving this a lot of time and energy. Why are you not selling these? Well, so, I mean, I am selling the boards. I guess the point is like you can buy one from me, but you don't have to. So, you know, if it's really important to you that you make it yourself or if you want to make a variant of the design, you can. But, you me, but you don't have to. So, you know, if it's really important to you that you make it yourself, or if you want to make a variant of the design, you can, but you know, most people don't want to go through that. And it's actually more expensive to make one single quantity than it is to buy one. So, um, you know, and like Adafruit's handling all the manufacturing. Cause like I didn't, you know, I did that for the first hundred and,
Starting point is 00:41:20 you know, it was a lot of work and I'd rather be able to focus on other things. So, you know, they get, they get most of the profits, but you know, I was a lot of work and I'd rather be able to focus on other things. So, you know, they get most of the profits. But, you know, I do get a kickback from each board. So, you know, it's something where, you know, I'm making a little bit of money off of it, but that's not the point. The point was that I was going to be building these tools anyway for my own art. And I want to make this all more accessible. You know, I don't want to have this club of like electrical engineers and embedded systems geeks who know how to make things that are pretty you know i want this to be accessible so that anyone who has a good idea for
Starting point is 00:41:49 something that would look good or you know a new interaction idea or has like a sculpture that they want to light interestingly that anybody can with a little bit of electronics knowledge pick this stuff up and make something beautiful and you know my ongoing work is partly in just making it easier and easier you know i want to remove more of these barriers so that you you know, my ongoing work is partly in just making it easier and easier. I want to remove more of these barriers so that you need less and less sort of weird electronics domain knowledge in order to just do something that's pretty. Very cool. So Adafruit, you've been to the warehouse. What was it like? Oh, yeah, I've been there a few times. I actually first got in contact with them when I did a I did an article for them on my work at Siftio a while ago. And then I was
Starting point is 00:42:30 visiting New York shortly after that, and they invited me to stop by. And it's a really great place. I think I showed up shortly after they moved to their the current space they're in, in Soho. And it's really weird. They have an electronics factory in Manhattan, which isn't really what you'd expect, but it's really working for them. It's a really beautiful building, you know, full of racks and racks of parts and people assembling kits. And they just have a new pick and place machine, a new stenciler. So it's a really magical place. And I really like Phil and Limor. They've been wonderful people to work with and they're really doing amazing work. And so you wrote an article for them. That's how you kind of got started with them or? Yeah, that was, I mean, I'd known of Adafruit, but that was the first time I got to
Starting point is 00:43:14 meet them in person. I wrote an article for the Adafruit blog talking about kind of the whole Whirlwind experience that I had at Siftio building their platform in 2012. So Siftio, you used to work there? Yeah, I worked there for about a year. It was, you know, I moved to San Francisco, quit my job in Silicon Valley and joined a startup. And Siftio was a really interesting experience to basically take every single esoteric sort of electronics and compiler and operating system skill that I had developed up to that point and put it into one just completely ridiculous platform
Starting point is 00:43:53 and build something really technically impressive and then just get really tired of that kind of work. So it was a really great opportunity to just sort of take all these skills I'd had and just bring them all together and do something amazing with them and then realize that it wasn't really what I wanted. That's kind of heartbreaking. I mean, it was heartbreaking in a way that I really liked. Maybe I just like unpleasant stuff sometimes. Well, I mean, it's kind of hard to take all these things. You're like, oh, I'm good at this. I know how to do this. I like this.
Starting point is 00:44:26 And then realize that, oh, I didn't actually want to do this entirely. I wanted to do something else entirely, really. And so you shifted directions. Yeah. I mean, it's something, it's definitely been challenging. But I think I always end up appreciating experiences that challenge me. You know, they're usually, you know, they're hard at the time, right? But I mean, I look back on it.
Starting point is 00:44:53 And, you know, I think working at Siftio was something where I got an opportunity to build something really amazing. And then it sort of left me with an opportunity to do a whole bunch of personal growth and to turn around and look back on, you know, the like 20 plus year career that I've had doing electronics and software and to have really concrete evidence that, you know, there's really a lot more to life than this and I need to take the time to explore that. So I'm really grateful for that opportunity. And it's led you here, which is pretty cool. So Fade Candy is a sideline or is this kind of your full-time job? No, I don't have a full-time job right now, actually. I sort of like jumped off the deep
Starting point is 00:45:36 end when I quit Siftio and decided to, because like, I feel like I'd spent my whole life kind of running from one thing to the next, you know, I would sort of just do the thing that I thought I was supposed to do. So, you know, I went to college because, you know, my parents told me it was the thing I was supposed to do. And then I went to get a job in Silicon Valley because it seemed like the thing I was supposed to do. And I'd never just taken a break and let myself just make a space and then see what filled the space. So that's what I did when I quit Siftio. I had some savings from my Silicon Valley job. Terrifying. Courageous. Very cool. Well, it was something. So yeah, I quit my job and just decided to make space. I'd actually
Starting point is 00:46:18 been really inspired by a close friend of mine who had done something similar. You know, she'd been working in HR for a while and, you know, liked some aspects of it, but, you know, just really hated the environment and other aspects. And so she quit without really any idea what she was going to do and made some space and tried to see what would come to her and ended up kind of transitioning
Starting point is 00:46:39 into a career doing software. And, you know, she has a full-time software job now that she really likes after kind of teaching herself programming from the ground up. So her story was really inspiring to me. And it helped give me the courage to just, you know, kind of go the other way to quit my software job, and make some space and see what happened. So I've done a lot of things since then, like I've done, you know, I've done art projects, I've done consulting projects. Um, I've found that the things that have been most fulfilling to me are things that feel very creatively expressive and things that involve sort of building or supporting
Starting point is 00:47:16 a community. So one reason that I took Fade Candy as far as I did after originally developing the technology for the ArtMobile cloud, um, is that I'd never really built a community around my projects before. You know, I would build something and sort of do it as an interesting technical exercise and, you know, write a blog post about it or something. And then, you know, I would have this thing that I didn't really know what to do with and it would sit in my, you know, in my storage for a while. With FadeCandy, I wanted to take something and actually turn it into not just
Starting point is 00:47:46 like a software and a hardware project, but a social project. I wanted it to be something where I was actually cultivating a community around it and, you know, giving talks and teaching people and, you know, running a mailing list and all the things that go into trying to make something accessible. And that's been really new for me. And it's, it's something I'm still figuring out how to do effectively, but it's been really rewarding so far. It's, it's funny, you started out talking a little bit about being a loner as a kid, and now you're talking about building communities. Yes, it's that's been kind of a theme in my life, especially for the last couple years. You know, I historically have been very much a loner. Like
Starting point is 00:48:26 I didn't really have any friends until very late in college and then had a really hard time figuring out how to be a social person. And then, you know, I moved to San Francisco. I completely absorbed myself in SIFTO. Like I didn't really have a life outside of that while I was working there. And it was really draining for me. You know, it was very technically fulfilling to be able to do all this interesting stuff, but it was really hard on the rest of my life. And so quitting it also gave me the opportunity to just like figure out how to be a social person. And that's been, it's been really fun. Like I've been finding some incredible communities of people making things, people, you know, just changing the world. And, you know, whether that's by getting ideas out there, by doing political change, by building things, by creating companies,
Starting point is 00:49:11 creating art, I feel like I'm surrounded by people that are doing amazing things. And it's been extremely motivating. And it's the sort of thing that makes me want to build community, that makes me want to come together with people and to just be a part of this larger world instead of just letting myself get absorbed in the technology. That is great. It's finding your tribe and making sure other people find their tribe too. Yes. As we were organizing this recording, you did mention you were doing things that were less focused on technology. And now that we've talked, I'm not really sure I agree.
Starting point is 00:49:49 It's more like more focused on bringing technology to more people or bringing a form of technology. Well, that's been part of it. I guess like the technology is still there, certainly. But to me, it's been more sort of acknowledging my history
Starting point is 00:50:02 and like sort of being true to who I am in that, you know, the path that's gotten me here involved a lot of technology and like, that's a big part of me. And I want to continue being true to who I am and using that in my work, but it isn't really what I want to focus on now. The things that I want to focus on are, I mean, to some extent still to be determined, but they involve a lot of kinds of creativity and sort of human interconnection. And it's been a challenge recently to try to figure out how to integrate those things. And, you know, the LED stuff I'm doing is one way that I found to do something that has a lot of this sort of technological nuance that I find interesting, while still
Starting point is 00:50:39 being something that's very accessible to people. It's something that it's easy for people to get interested in. And it's easy to make something that has a lot of nuance that isn't just there if you're a programmer and if you look at the code, but it's nuance that you can see right away. And that's been really good for my mental health to be able to have creativity that people can see and not just that sort of goes into the inner workings of something. So, uh, this has been a theme on the show. Um, and I ask people, how do you introduce yourself? Because I, I say engineer. I mean, it's so I wrote a book and I would never say author. Um, I was introduced once as author and I looked around to try to figure out who they were talking about. I am an engineer. You meet somebody not,
Starting point is 00:51:30 not really in a professional context, then that maybe, maybe at a bar, maybe at a friend's house, friend's party that you kind of know. How do you introduce yourself? Oh, I have trouble with that. I actually hate that question because it's, um, because you don't want to be defined by your job or, well, I mean, it's, it's almost as bad as like when people ask you, so what you do and it's like oh my god I have no idea how to explain that or like how do you spend your time what do your days look like well every day is different I don't even know how to explain that um but like I guess it used to be I would introduce myself as like you know an embedded systems engineer or like a hardware and software hacker and that's certainly still part of my identity. I guess these days I would sort of tend toward introducing myself as an artist. It's taken a long way to actually or a lot of time to feel confident in that.
Starting point is 00:52:13 You know, there's a lot of outsider syndrome. But I've had a lot of supportive friends that have helped me realize that that's a part of me that is actually real and that I can use that as an identity. But it certainly isn't my entire identity. So, you know, I've made up words like art engineer that seem to resonate with people. and that I can use that as an identity. But it certainly isn't my entire identity. So, you know, I've made up words like art engineer that seem to resonate with people. Artist is a tough one. I have to say people who walk up and say, yeah, hi, I'm an artist.
Starting point is 00:52:35 That is, yeah, that's tough. I kind of like how it just gives you latitude to be as weird as you want to be. But it forces you to weirdness to some extent. You can't be normal. But the thing is, like, I don't think I would be normal even if I tried. Like, I tried to be, I mean, I didn't try that hard, but I kind of tried to be normal a while ago.
Starting point is 00:52:55 And it really doesn't work for me. Like, being able to, like, have a word that just says to people, like, well, yes, that thing where I'm really weird, like, it's intentional, you know? I feel like that works for me. No, that's great. An art engineer, engineering artist or just artist, whatever. It's cool. I like you recognize that it's an identity thing and that it does make a difference, but only to other people.
Starting point is 00:53:21 Yeah, exactly. Like I think identity is much more about trying to figure out how to communicate something. And maybe even just how to communicate it to yourself than trying to figure out, like, who you are. But so much of the way we describe things can kind of change our perception of them. You know, words have a lot of power. And, you know, getting used to being able to describe myself as an artist has also given me a lot more confidence to be in circles where I wouldn't be comfortable if I wasn't an artist. To be able to talk to people about doing installations and things like that. Whereas before, it would be like, well, yes, I know how to make the LEDs go, but I'd better leave the artist stuff to a professional.
Starting point is 00:54:00 Well, I'm afraid it may be you. Yeah, that is kind of what's happening. Very cool. I think we're about out of time, but do you have any last thoughts you'd like to share? Oh, I can't think of any. This has been wonderful. It's been great to actually be able to talk about
Starting point is 00:54:17 more about just what life means and not just how the electronics work. Yes, I know. They're going to ask me to have you back on not just like how the electronics work. Yes, I know. They're going to ask me to have you back on to talk about how the electronics work. I'm sure that, you know, at some point I'll have to explain what all the chips on that board do. But realistically, it is open source. And the tutorial on Adafruit really went over all the steps. It was really nice. I understood it without, you know, I didn't have the, usually I have to have the hardware to understand the tutorial. This one I actually managed. I wrote the tutorial way before the hardware was actually available, actually, because
Starting point is 00:54:49 they wanted to see what the tutorial would look like before, like, kind of carrying the board to see, like, oh, is this something that people are actually going to be able to use? So it's like part of writing the tutorial was sort of showing people, well, yes, the point of this board is to be easy. So here's, you know, here's an example. It wasn't hard to go after processing and actually try some stuff. It was really cool. So my guest has been Micah Elizabeth Scott, creator of Fade Candy, which is very cool. Thank you. Thank you for being on the
Starting point is 00:55:16 show. Oh, thank you so much for having me. Thank you also to Christopher White for the first time in several weeks. He didn't have to push any markers to take out my coughs, so we're happy for that. But mostly, thank you for everything else he does. Now, all of you out there talking about communities, thank you for listening. A few upcoming guests have asked about you, so I wondered if you're curious about who else is listening with you. Well, those who email or hit the embedded.fm's contact link are mostly software, firmware, or electrical engineers. And while there are 3,000 subscribers to the RSS feed, many of you came over from the AMP
Starting point is 00:55:58 Hour, which I'm going to be on this week, so you may get a double dose of me. And even when you email suggestions or mild complaints, you've all been so wonderfully nice. So when I say thank you, I mean for listening and for being there, being excited about making gadgets and for being a community. So thank you. Now for the final note this week, it's one of my all-time favorites and somewhat relevant to this show. From Eleanor Roosevelt, It is better to light a candle than curse the darkness.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.