So, I got this nifty 2x2 meter 400 LED curtain and immediately went to work dismantling it. The LED strands are tapped off the main wire, rather than daisy-chained, which is a departure from the norm. Turns out, these LEDs are pre-programmed, allowing them to intelligently latch onto the right serial data. Unraveling the control unit, we see an IR receiver and other key components responsible for driving the LED strings. Despite my misgivings about deciphering in-built Bluetooth characteristics, I hooked the circuit back up with our dependable WLED software and got some amazing grid patterns. Interestingly, the LEDs operated smoothly at 3.3V. All in all, a fun exploration of hacking this LED curtain.
[0:00] I got this 2x2 meter 400 LED curtain. I’ll do a quick run through of it, but we’re not
[0:06] here to do a review. We’re here to take it apart and see how hackable it is.
[0:10] There are a whole bunch of built in patterns that you can control with the remote and there’s
[0:14] an app that connects to it over bluetooth. I have had a look at the bluetooth characteristics
[0:19] but as is typical with bluetooth devices there’s no way to know what they mean or what values
[0:24] to put into them, which is a shame. Let’s take it apart and see how it works, then we’ll
[0:28] see if we can hack around with it. So there’s something pretty interesting about these LEDs.
[0:34] Let’s just start off with the power supply. So it’s a 5 volt 3 amp power supply, that’s
[0:39] pretty beefy. If we unscrew this then we can pull this apart and you can see it’s keyed
[0:46] so we can’t plug it in the wrong way round, which is good because that’s the kind of thing
[0:51] I would definitely do. Now if we follow the power cable round, so I’ve got it all rolled
[0:59] up here so it doesn’t get tangled up, then we can see it just ends up being spliced into
[1:06] the main cord and it’s just joined in and then we have these three wires going off to
[1:12] the control. And then coming out we have three wires, so one of these will be power, one
[1:19] of them is ground and one of them is the data line to drive the LEDs. Now each strand of
[1:25] the LEDs, they just tap off three wires, so you can see a strand here and that just taps
[1:33] off from the main cable, goes to all the LEDs and then it’s just cut off at the end. So
[1:40] we just have three wires going through here as well. And then the next one is the same,
[1:46] so it just taps off the main cable, three wires are just tapped off, going down the
[1:54] next strand. So that’s pretty interesting. Now you’re probably asking, why is this interesting?
[2:01] Well normally with addressable LEDs you need to daisy chain them together. They have four
[2:06] pins, two for the power and then a data in pin and a data out pin. You feed the data
[2:12] into the in pin of the first LED and it then drives the next LED and then that drives the
[2:17] next LED and so on. This is how the LEDs know what to display. You feed all the data into
[2:23] them serially and then once you’ve finished sending all the data, each LED just locks
[2:27] in the last serial data it received. For an LED matrix you normally need to link the end
[2:33] of each column or row of the LEDs to the next column. So for an LED curtain you would either
[2:38] expect them to be joined at the bottom or to have a return wire for the last LED in
[2:43] the column. With this LED curtain the data line is actually a bus and all the LEDs are
[2:48] connected in parallel to it. This means that the LEDs receive the entire data stream. The
[2:54] LEDs need to be pre-programmed with their position in the string so they can pick out
[2:58] the data that is relevant to them. It’s very clever stuff. I have found a great thread
[3:03] on the doubly led GitHub repo where these pre-addressed LEDs are discussed. They got
[3:08] some nice close up shots of the actual LEDs and a good discussion on how they work. I’ve
[3:13] put a link in the description. So that’s the LED strands with all these little LEDs encased
[3:19] in some kind of epoxy. Not sure what. So let’s have a look at the control thing. So there’s
[3:30] a clicky button and it’s quite easy to take apart. We just undo these screws. I’ll use
[3:36] the wrong screwdriver. So let’s just get these out. That’s one screw, the next screw. That’s
[3:45] our four screws. That’s already come off. So here’s our PCB. You can see the IR receiver.
[3:55] I’ll take a proper photo of this and we’ll do a bit of reverse engineering and see how
[4:00] it works. But let’s finish getting this open. So I think this will just pop off as well.
[4:05] It just seems to be sealed on with some silicon. So we can get that off. And then we’ll be
[4:15] able to extract the PCB completely. Ok, that’s that off. Lots of silicon. Nice. There’s the
[4:26] wires going in. Let’s see how we can get this out. I’d quite like to not destroy this because
[4:32] we do want to put it back together again at some point. But it’d be nice to get it out
[4:38] and just see if there’s anything on the other side of the PCB. There we go. Excellent. So
[4:52] hopefully we loosen some of this. There, free. So what I do want to do eventually is desolder
[5:05] this but let’s have a look at some of the signals first. So I’ve plugged everything
[5:10] in and I’ve got my multimeter. So as far as I can tell, this middle pin seems to be ground
[5:17] and that’s our 5V supply. And we’ve also got the same on this end, so ground and 5V. And
[5:28] then this pin here must be the signal pin. So let’s hook up our oscilloscope and see
[5:32] what that looks like. And I’ll just hook my crocodile clip to there. And then we should
[5:41] be able to just probe there. With a bit of luck. I can get my ground connection to actually
[5:52] connect. So rather than try and film the oscilloscope screen, which I never seem to get a good picture
[5:58] from, I’ve just taken a screenshot. So what we can see here is we can see the data being
[6:03] clocked out to the LED matrix. So we can see the data, then there’s a gap and then more
[6:09] data. So what happens during the gap is that’s when the LEDs detect, there’s no more data,
[6:14] and they latch in the current display. And then it just repeats itself and that’s how
[6:18] you get the animated frames. So that’s pretty cool. Let’s have a look at the PCBs in close-up.
[6:25] I’ve cleaned off most of the silicon and taken some nice close-up photos. There’s actually
[6:29] not much on the back of the board, but it is nicely labelled. Let’s have a quick look
[6:33] at the components on the front of the board. There’s a 3.3V regulator here which powers
[6:38] the main IC, an ST17H66B2. This is a Bluetooth low energy system on a chip. The antenna for
[6:46] the Bluetooth is this PCB trace here. To actually drive the LED string, it’s using this buffer
[6:52] IC to level shift the 3.3V output back up to 5V. The resistor here is just a 0 ohm link
[6:59] and the blank space next to it allows them to bypass the buffer IC completely. So it’s
[7:03] possible that for smaller LED curtains, the buffer chip is not needed. Hopefully this
[7:08] also means that the LEDs will operate at 3.3V and we won’t need a level shift of ourselves.
[7:14] Over here we’ve got the IR receiver and I believe that this area here along with the
[7:18] microphone is for the audio responsive mode of the curtain. That’s kind of it really.
[7:23] Pretty simple. Let’s have a go at driving it ourselves from an ESP32. On the subject
[7:29] of PCBs, now’s a good time to mention PCBWay who are sponsoring the channel. I’ve got a
[7:34] couple of PCBs with them right now. I’m waiting on my new ESP32 TV board to come back. Really
[7:39] excited about it and if you want some PCBs, have a look at PCBWay. They’re really good.
[7:44] So I’ve flashed WLED onto this ESP32 and I’ve just crimped some header pins onto the wires.
[7:54] We can just power this from the 5V power and it seems to work so we’re connected up. Let’s
[8:01] try changing the colours. That seems to work nicely. We can go all the way around the colour
[8:09] wheel. Let’s have a look at the effects. I’m not sure what any of these really do. Blink.
[8:15] I guess that blinks on and off. Very exciting. Blink rainbow. Blobs. So this is quite nice.
[8:25] It seems to be working off 3.3V. What I’ll do is I’ll get this laid out on the floor
[8:31] so we can actually see what it’s doing and see if the grid’s actually working. So one
[8:36] moment. Okay, so I’ve got it laid out on the floor and I’m connected through to the WLED
[8:42] Wi-Fi interface so we can try a few of the grid patterns. So that is black hole. This
[8:50] is called blobs. Colour bursts. That’s quite nice. Crazy bees. Distortion waves. Interesting.
[9:05] This is supposed to be DNA. I quite like that pattern. That’s quite nice. DNA spiral. That’s
[9:11] pretty cool. There’s something called drift. Interesting. Let’s see. Fireworks. Doesn’t
[9:21] seem to do very much. Fireworks 1D. There we go. That’s pretty nice. So I do like this
[9:31] WLED software. It’s pretty cool. Very impressive. Let’s see what else we have. Hiphotic or hyphotic.
[9:43] That’s a pretty nice pattern. I like that. That’s very cool. We have a lissajou. Looks
[9:51] kind of like the DNA. And of course we have the matrix effect. That’s quite a cool effect.
[9:57] I like that. And something called octopus. There’s an absolute tonne of these. So I recommend
[10:04] checking out WLEDs if you get yourself a LED curtain. Very cool.