 Hello, I'm Mike Harrison. I'm sure some of you will be familiar with my YouTube channel where I take stuff apart and find out why it's a really bad idea to take things like fuel cells to pieces. Today what I'm going to be talking about is actually my day job, which is designing custom electronics generally for large scale lighting installations of various sorts, typically involving ludicrous numbers of LEDs, often in same time scales. But this one I thought was interesting because there's some construction techniques I came up with which might be of interest to small scale projects and be usable for other applications. So basically I've been talking to some designers that I've worked with over the years and they sort of pitch various ideas for retail and for various other architectural type things. And for a long time we've been talking about let's try and make something just using printed circuit boards. So we've got structure and electrical connection in one place. It also means we don't have to deal with mechanical manufacturers which can be a real pain, sort of trying to do everything in one. So this is the first idea we come up with which is basically L-shaped PCBs to make like this sort of cube form. And we got sort of part way through figuring out how this was going to work sort of mechanically but this project didn't happen, it was pitched and they decided they didn't have any budget for it. So that was a couple of years ago. So more recently one of these people I worked with has moved to Hong Kong and they started pitching around some of the big shopping malls and they got a succeeded with a pitch to a very high end shopping centre in Hong Kong called Pacific Place. This is all like designer brands everywhere. And this was quite a big space that needed filling with stuff for Christmas lights but not tacky horrible Chinese Christmas lights, stuff that looked interesting. So we thought well what are the themes, Christmas themes, Hong Kong, weather sort of like this but more humid? Well snowflakes obviously, I mean it would be. So we think okay, we got the idea we're going to make something that looks vaguely like a snowflake. So how do we actually, obviously it's too big to make in one piece so how do we join all these pieces together? We like the idea of doing something modular where we could stick things together in different shapes to make different forms. This is the first idea we had. These are a connector made by a company called AVX. If you're interested, if you're ever after interesting ways of connecting boards together, AVX do lots of really cool connectors particularly for the LED lighting industry. This is our first idea. So these are basically back to back edge connectors so you can just plug two PCBs in. And the attractive thing about that is it didn't require any connector on the PCB which is PCB with the edge that plugs straight in. So in principle it reduces the cost of your board because you don't have to fit the connectors to the board. So we sort of started working around out some ideas on this but this didn't really work out because although you got this sort of nice electrical connection we needed to add these additional plates just to get the mechanical stiffness. And because of the size of these connectors it was all starting to get a bit too big, just didn't really quite work out. Also the, purely just the space we needed but also the fact that we were making these triangles and actually trying to, because these are inserted from the end, trying to do that on a triangle would mean it would actually be quite difficult to put together, we'd have to start putting chamfers on the end and it was all a bit better. So had a long think and this was really what we wanted to end up with, something where we just snapped these things together. So this is what we end up using, trying to remember which order things are in here. So we've got these PCBs that snap in using these plastic snap rivets which are super cheap, super quick to install. Now what you can't do is just mount two PCBs flat to flat because you need something to actively push to get and maintain the electrical connection. If you just do two bits of flat PCB the slightest movement means they're going to disconnect, you get creepage over time and it's generally a really bad idea. I mean if we'd had time to do a lot of engineering time into this maybe we could have made that work but this was really, we had like a fairly limited amount of time so we had to go with a solution we just knew would work without risk. So I started looking at various options for spring contact, there's quite a lot of nice little surface mount spring contacts like this which I started looking at. This is one of these things where having a paper catalogue is a lot nicer than just searching for stuff on the website because you quite often find stuff that's on the next page that's related but you'd never find that just on a web search. So what we end up using is these, these are mobile phone SIM connectors. So we've got six contacts in a nice ready-made package that we can just mount in one operation onto the PCB as part of a normal surface mount flow-soldering process. There's quite a few varieties of these, we set them on one particular one by Molex because the thickness was just right so we have our LED strip, we have our star and we then have a spacer which is also made of PCB and the thickness of this connector just matched up nicely with a 1.6mm PCB as a spacer. So these are actually really cheap, they're 13P. You'll notice on here the quantity showed you zero. Basically we cleared out the entire worldwide distributor stock of these things, 28,000 of them. Again because we were on a fairly tight time scale we had to make sure we had the stock before we committed to the design so we just had to go and just buy enough straight away before we pushed the button on anything else so for a while it was quite hard to get hold of these because we had them all. So these are the sort of the final components of the system. We've got this LED strip which is a two-sided assembly, we've got sort of six RGBW LEDs on there. Now the RGBW bit is quite important, there's a small section over there, afterwards you can come up and take a close look at that. But you'll see that actually looks, it's quite a nice sort of pastel-y colours because obviously our theme was snow and snowflakes so we wanted quite a lot of white in there. And RGB by its own makes a horrible white, it just looks horrific because of the colour variations and the colour balancing, it just looks totally nasty. So by adding that white in there it means you've got most of your light which is white is coming out as a fairly pure white and then you can just use the RGB to tint and accent it. The other advantage is white is a ton more power efficient so compared to generating bad white with RGB compared to a standard white LED, it's something the order of eight times more efficient in terms of the light you get out versus the power you put in. So that's another big advantage. So these are the components, we've got the one on your bottom right, that's the star interconnect so that provides the mechanical interconnect and also the electrical interconnect via these pads that touch the SIM card connectors on the strips. So on the strip we've got these six RGB LEDs, RGBW LEDs, they're all wired in series so we've got a 24 volt supply and we're just using current limiting resistors so we don't need to mess about too much with constant current power supplies. That's then driven by a pic, I'll go into a little bit more detail there. They might pick 12F322 from memory, I believe, which is a nice low cost device and I'll go into the details in a second as to why that was a really almost ideal device for this project. Sorry, I like 12F1501. Incidentally, in this presentation there is one mistake. If anyone can shout out when they see that mistake, I'll give them a free one of my prototyping boards so just shout mistake. It's a little bit further on but it is a very obvious mistake to anyone that knows what they are talking about. I just spotted it when I was reading through it a minute ago. So there's a modus, that gives us our star plate, we've got these strips, we can snap them together in almost any hexagonal arrangement we like. Then we've got the drop attachment that these are actually hung from. So we've got this thick PCB, it needed to be a little bit thicker than standard PCB just to get the rigidity. So at the bottom you can see the actual shape. I did quite a lot of iterations, I've got one of these cheap CNC engravers that was really handy for cutting out these test pieces. So that basically just snaps into a slot in the centre piece. We've got this right angle pinheader that just plugs into the socket on the black part you can see on the right. So as long as you're careful and line the pins up so you don't bend, these snap together really easily because of course once this vertical is in it's a rather unwieldy thing to carry. So we've got these things manufactured flat, they're all assembled flat and packed and then when we came on site we snapped these vertical pieces on. Then the other detail on the left is how the hanging cable connects. So we've got this hook on the end so the cable loops through it twice, that gives us our mechanical strain relief and then it plugs in. There's a little notch there so we could actually put a cable tie around there, which is actually fairly unnecessary but it reassured the client a little bit that it wasn't going to fall down. You'll notice there's a couple of holes on that bottom piece. There's a couple of holes, the idea is that we'd snap it in, then we could put a wire through it as an extra safety precaution. Again that's something that we told the client, they're a bit wider. If you actually try, it's almost impossible to pull one of these apart, they're very very strong. In the end we actually forgot to put those wires in and nobody noticed and it hasn't fallen down so I'm not too concerned about that. The only other thing we needed, because these were flat and of course the PCB is a bit flexible, we actually had to put some suspension wires so what we did, we had a couple of holes in the vertical and then we had some custom wire forms made out of, I think it was something like half millimetre stainless steel wire which had hooks preformed in the end. So again something we did on site was we put the things out flat, we plugged the vertical in, we then threaded these wires through and that then kept the whole thing flat so you could suspend it and it holds itself nice and flat. You can see on there right, you can see how that hook, it's like a V-shape hook so you just push it through and it snaps through. So it's really quick to assemble, you go snap snap and it all holds together and these have been pre-made on a machine that gets the length precisely right so obviously the length of that wire is critical to get it totally flat so that adzabi got just right. The other thing we did was we've got an array of these snowflake shapes. Now if you just hang them they're going to twist and rotate relative to each other and of course we wanted to do nice pattern sweeping across it and like co-ordinated shapes across the whole thing. So we needed to stop them rotating so we had these additional pieces which again used the same snap in detail and at the other end of this strip it just passes through a slot, there's no fixing, it just passes through it. So that basically ties pairs together so they can't rotate relative to each other so as long as each pair is linked then they're all going to stay the same way around and again that was a quite neat solution. Again, all entirely made out of PCB, no extra parts. I don't think we actually, the only thing that wasn't a PCB was those mechanical wires. Everything else has done standard electronic PCB process which is something that I'm familiar with and I don't like dealing with subcontractors in areas that I'm not familiar with because it gets too stressful. We tend to speak different languages. So back to the pick that we used, I don't know how technical you are, please go to sleep if this is boring but I won't stay on this too long. It was a really nice fit for this project, it's got four PWM channels which means for RGBW that's perfect, all the dimming is basically done completely in hardware. It's ten bit, now that's important, you might think well for doing dimming all you need is eight bits. That's actually not true, if you just want to do a nice fade from like completely off to completely on. If you use eight bits what you'll find is the bottom few at the dim end you'll get really steppy because the eyes response to light is non-linear. So what you generally do, if you want a nice smooth fade literally all the way from black up to however bright it goes, you need a minimum of about ten bits and you then apply a curve which is the opposite of the eyes response. In practice a very good approximation to that is you simply take the eight bit value, square it and then use the top however many bits your hardware supports and that works really nicely and of course connotationally it's really simple. These picks have only got I think five, twelve words of memory so even a look up table would have been difficult to do but all it's doing is it's taking the eight bit value, multiplying it by itself and slapping it out to the PWM hardware. Some other nice features got self-progambal flash which means that we can upload the firmware over the cable so this entire installation if we needed to we could upload the firmware in every single pick. There's 60px segments per snowflake. The total was about I think 14,000 strips in the entire installation so obviously it's really important that if we needed to we could update the firmware easily. Also it can hold a device ID. It hasn't actually got e-squared prompt but you can self-program the flash to achieve the same thing and I'll go into that in a second. It's got an internal oscillator that's accurate enough to do serial communication so that's one less component we need to deal with. It's a five volt part. It'll run from anything from I think 2.5 up to five volts so we don't need a precision voltage regulator. We just have a resistor and a zener diode to go from our 24 volt supply to our pick. Yes, see me afterwards for the prototype board. Well done. Right, so yes, it's cheap 50 cents and one really really nice thing I like about picks is that microchip will supply them ready programmed with your code for very very little money, far far cheaper than using a third party programming service. So for another six cents our chips already had all our code in it. In fact because we could upload the firmware it actually the thing that you really just have to have a bootloader because there was some changes I made to the firmware after we'd send off the order for the picks. But because they had the bootloader in there already the jig you'll see in a moment part of the programming process we also uploaded a new firmware to it. But the fact that we didn't have to stick these on an in-circuit programming jig of course like 14,000 boards was a real-time saver and also because the assembly was being done by a subcontractor in Hong Kong. It's one less thing for them to screw up. We say here's the chip, it's got the code in, stick it on the board and it works. And the other thing is it's got some built-in test facility so that when you turn it on it'll cycle through all the colours of the LED. So again for the subcontractors to be able to test it all they had to do was power it up and again there's a slide further on about that. Quick detail it doesn't have a UART so we're doing 125k board serial which is quite fast but we can actually do a soft UART if we cut a few corners. Instead of the traditional approach of doing a soft UART is you basically have an interrupt on the start bit and then you generate an interrupt on each bit that you want to sample. Now once you get up to higher board rates that becomes a bit problematic because of the amount of time it takes to get you into and out of the interrupt routine. So what I do, we actually, we still generate an interrupt on the start bit but we stay inside the interrupt code for the entire duration of the byte which means we can sample it. I've used this up to about half a megabit and it works fine. We used an additional stop bit just to give us a bit of extra time to deal with getting in and out of the interrupt routine. So I originally did this using DMX which is actually 250k board with two stop bits and an extra stop bit really is a lifesaver. The disadvantage of this is that your foreground processing doesn't, if you've got this data streaming continuously every byte you get in takes up almost all of the processing time. That's a vaguely representative picture at the bottom but fortunately because we've got this hardware PWM, the only thing the foreground task is doing is waiting until the new packet comes in saying yes I've got the packet, here's my RGBW bytes squaring it, throwing out the PWM hardware and it's got a complete frame time of about 30 milliseconds to do that. So even if on every incoming byte you only get like three or four instructions executed that's fine, that still works which is great and it's cheap. So this is just on the detail of this interconnect star so it's a two layer PCB. We've got plus 24 volts ground and data and say it's data it's 125k TCL level UART data which works fine over. We had up to about 10 meters of cabling. We made sure that we didn't produce nasty spikes, we smoothed it off so it got nice control rise times and that works pretty well. It'll work at twice that bit bit rate but we just didn't need that so we decided let's play safe and keep everything going as slow as possible to minimise the things that can go wrong. Now within this Starflake shape we've got 60 strips obviously we need a consistent way of addressing those strips. They're all sharing the same data bus remember so we've got each strip sees this stream of data but it needs to know well where am I, which of these bytes in this incoming data do I need to respond to. So each strip has a unique ID programmed into it and to do this we made a jig. So our original idea was we'd as well as programming we also needed something to help with the assembly because these are going to be assembled by other people in Hong Kong under our supervision. So the idea was we'd get say a sheet of MDF mill out the shape then you just drop all the strips and stars in. The problem is that you know we're here and that's in Hong Kong and sending out a four foot square sheet of MDF to Hong Kong is really not a very good idea. So I come up with this idea of making a modular jig which again is made out of PCB. So the jig actually follows the same form as the shape that you're trying to create. We've got these strips, we've got the stars, we've got the locating pins so that what you do is you assemble this jig by again snapping it together with the snap rivets. You drop all the stars onto the jig, you drop all the strips onto the jig, you then push all the snap rivets in and that then gives you your physical structure that's the right shape. And also on these jig we've got these little programming pins and that's connected to a programming box which is part of the jig system. So that once you've assembled it all up you push it down, we use like crop clips and bulldog clips just to hold it down to make sure it's making contact. And the jig would then generate data and these pins are actually out like a chip select so remember every board is seeing exactly the same data so how do you know how to program that particular one? So we send a command that says ID number 46 but only if you can see your pin being pulled low. So the jig just pulls each of these pins in turn, sends the ID command and then each strip within the jig is programmed. We then do a test so we can see all lighting out, we can see it's all in the right order, we can see everything's all got the right address and that process takes about 15 seconds I think that entire process. These are a few little details of the jig, unfortunately I forgot to take some decent quality pictures of these. So you can see the various parts of the jig, you can see the strips here, the stars being ready to drop on. That's the complete jig running through its test. So as it goes through its programming thing the various colours on the layers just indicate the progress. When it's finished it flashes some fixed patterns which are designed in such a way that because the eye is very good at recognizing patterns that are out there. The eye can immediately spot in the air so we can verify that all these have been programmed correctly. So that's the actual process of the snowflake itself. In terms of the system as a whole each of these 60 strip snowflakes plugged in to one of these units and what this does, this has got a high speed RS485 bus running between two or three of them. That then takes data at two megaboard and it then splits that out into 12 simultaneous streams at 125 kb for up to 12 snowflakes. The dark squares you can see on the right are polyfuses to provide protection because obviously each snowflake would take up to about two amps at 24 volts at full load. So we've potentially got 24 amps going through this thing. So we have this individual polyfuse protection to avoid sort of if to say a cable short to avoid setting anything on fire. Shopping centres really really hate that so you want to make sure smoke really gets them twitchy so there's safety there. There's also some zenders and resistors so that if for example we had a short between our data line now 24 volt line it wouldn't blow anything up. We'd just sit there and draw a little bit of current but there's some little zener diodes and some resistors and I think we used some PTC polyfuses on the data lines as well. So just to make sure that it was pretty much idiot proof you could do anything it just wouldn't, the worst it would do is not work. It wouldn't kill anyone or set anything on fire. This was part of the factory test. Like I said having the firmware in the pick from the factory meant that we could do some tests. The strips were made in panels of I think something like 15 strips on a panel for the whole surface mount process. And we actually put some tracking around the panel so that you could take a complete manufactured panel, plug 24 volt power into it and then all the strips on the thing would cycle through all the colours. So it meant the manufacturer could instantly check that all the LEDs were working, there weren't any shorts very quickly and very easily. And again, that's part of the instruction we give to the manufacturer. So hopefully what we get from them is pre-tested known working strips ready to go on the jig. And also you've got that secondary test procedure once we go through the jig. But it means that any bad soldering or so on in theory that should be taken care of by the factory that's manufacturing the strips themselves. That's the actual architecture. I've just got some video of this. Unfortunately there is some video of the full thing with all the final animations. Unfortunately no one's got round to editing it yet. So this is a mixture of a build video and also some footage I shot on site with some test animation because I left Hong Kong before they'd finished doing all the programming stuff. So this is just a sort of general overview thing. I've edited some of the boring stuff out of here but this is part of the actual process of installing test. That's me going around testing every single drop wire before it got lifted. Make sure all the cabling is working. So there's a custom framework made. That was put on winches and then it was winched up. The snowflakes were put on in sort of height order. It was then just gradually winched up and more snowflakes put on and then winched up and more pulled up and then pulled up to the final height. So this is the big installation in the main foyer. It's like a Christmas tree type shape. And then around the sides there was some long thin installations. It's like a round building with like thin corridors that go all the way around it. So we've got this big feature thing at the front. And then round the sides we've got these tenor parts which I think are here are the side bits. The nice thing because it's this nice open shape it's very transparent. It doesn't look like a huge sort of thing. We're filling a lot of volume but we're not really making it like a big lump in the space because it's very transparent. You can actually see through it quite nicely and when the snowflakes are off you hardly even notice they're there. But obviously when they come on you see the light. You get some really nice reflections from this curved glass. So you look up you see the things. You can see the reflection from the glass, the curved glass which is quite a nice effect. So the overall aesthetic. The end client was absolutely delighted. We're actually going back in October. We're going to take the strips. We're going to rearrange them into things that look less like snowflakes on different frames. I'm going to put them back up again as a sort of permanent installation. So these are the ones that are down the sides. There are four different clusters which are just sized and shaped to fit basically the shape of the space we had to put them in. So you can see this nice reflection on the lift shaft. This curved glass on the lift shaft on the left is this really nice reflection of this cluster here. Unfortunately there were some quite nice animations that were done but unfortunately I don't have any. I think at the end there's some really grotty video that's actually some guy in Hong Kong. I found it on YouTube so I've been through the shopping centre and actually videoed it. So I've just stolen a few snippets from that video just to show some of the animations. But it's rather poor quality but saying I need to go and kick someone and get them to actually edit all the footage they've got of the final things. That was all shot quite nicely but it's been sat on a hard disk for a long time. So these were just me just wandering around waving a camera just to get something. But you get some quite interesting, because as the angle changes you get different sort of impressions of it from sort of high density to low density and so on. I think this is the footage of the animation to say this is a rather bad YouTube grab. But you can get some idea of the animation. I think on every hour they played a tune through the PA. Remember this was Christmas themes? They played some jolly Christmas tune through the PA system. We had this animation that made them all cool sort of funny animation colour things. Then it went back to a more sort of passive sort of gentle background thing in between that. So you can see some of that. We're generating from shapes with these animations based around that hexagonal shape. I'll leave that playing. We've got five minutes. Quick questions. Someone's going to come to you with a microphone. I've got this spotlight in my face. It's a bit hard to see. Hi. Could you tell us something about the software used to generate these animations? Was that you or someone else? Most of these installations, my responsibility, generally ends at the USP port. So the most I do is some software just to fire it all up, find the addresses and test it. All the creative stuff. I leave to creative people. It's not really my, something I have anything to do with it. It was running on a Mac Mini. That's about all I know. Any more questions? Any more? You showed us the boards which have like a megabit coming in and several lower bordering. What was providing those megabit streams to feed all those? That was coming out of a quad USB to RS485 interface. That's just got an FTDI, FT4232H. They're made by subsidiary of FTDI called EasySync. They do these nice industrial boxes which I use all the time. RS485 is a really good way of getting a crap load of data out of a PC. Easily, cheaply, easy to debug. It's a lot easier than Ethernet in a lot of respects. How long did it take to put up? Each of the big clusters was one night. I think the big front one was two nights. It's shoppy said we can only work overnight. We made good progress. We had some contingency. It was damn hard work. The thing is we had a really good installation crew. For example, assembling those suspension wires. We showed these guys how to do it once and they just did it beautifully. It was really good. That saves us a ton of time. We knew it would get done right. Any more? Yep, this one. What was the total power draw of one of those clusters? One limitation we had was the only power we had was a number of 13 amp sockets in the proximity of each section. Some of the design constraints actually came from that. Each snowflake was about 57 watts. It was 24 volts at about 2.5 amps. The software did have a metering thing. We could measure from the content how much power it was going to draw. If necessary, we could cap that because obviously we didn't want any fuses to be blowing. In the end, we did have a system where we could, if we wanted, run it up either at 100% or three out of the four colours at 100%. How did you do in manufacturing yield and failures and failures in the installation itself over its run? We didn't have many failures. Obviously, we've got a lot of strips. If one strip went down, it wouldn't be that noticeable. Certainly in terms of dead strips from the factory when we were assembling, there was about half a dozen out of 14,000. Failures during the installation, I don't have the figures, but it wasn't a huge number. It was no more than tens, I don't think. I think this is possibly the last question. Last question. You've got a lot of LEDs in a fairly small space. Was there any consideration for the thermals of it? No, basically because they're all spread out, it just isn't an issue. For things where I'm generating fairly bright lights, where possible I would sooner, for example, use a cluster of six small LEDs than one big power LED because that heat is spread out so you don't need a metal slab PCB. You can run that flat out. It will get a little bit warm, but no more than that. If we're using white, the white LED, the white is so efficient, we can get a really decent amount of brightness. Those LEDs are running at, I think, about 15 milliamps. They're not even running at their full power. OK. This one. Were you waving at the back? No, he's just fanning himself. OK. Can we thank Mike, please?