 Hi there! Since we're on Twitch, I would nominally be in a hot tub, unfortunately. I have too much electronics down here for any of that. In this presentation, I'm going to show you that badges are awesome, functional pieces of art. They should be lit up and not tucked away somewhere. Specifically, I'm going to show you a couple mods for the 2018 to 2019 NSEC badges, including parts and step by step. So no pawning, no odays, just a frivolous how-to, which I hope you'll have fun with someday yourselves. Just a little about me. Here's some of the stuff that I've messed around with. As you can see, I'm not big on clean presentation. I'm not very wise sometimes, either. This is a picture of me boarding a plane with a blinking box of wires, perhaps even more unwise as I'm telling you all about it now. Probably these slides are all about why you should listen to me, so why should you listen to me? I don't know, you probably shouldn't. So we're going to talk about the 2018 and 2019 NSEC badges, the Sputnik and Brain Beauties. They have a little display, they have some push buttons, they're both Nordic NRF 52, so they have BLD and Bluetooth. They also include an STM32, which is programmed with the Blackmagic Probe firmware. They have addressable LEDs, they're schematics, they're source code. These things are way better than a lot of the badges you might get at a con. They are the perfect candidates for make-your-own-use, and they are beautiful, functional pieces of art. So the process. You probably saw the process a lot on the agenda. Now that you see it, it doesn't amount to much. It might seem a bit like a cat poster, but it's going to help us to frame what we're talking about as we go through the lengthy, sometimes, process of doing the rework. Generally speaking, you have to understand what you've got, you have to imagine what you could do, you have to plan the rework, you have to do the rework, and hopefully you don't have to repeat, but sometimes, maybe more often than not, you do have to do a little bit of re-re-work. Here's an example where I fried a GPIO and I had to migrate that trace to the adjacent trace, so I removed the solder resist and then did a solder bridge, and you can see that's how I moved it over. A little bit of a disclaimer, I don't expect you're going to fry your IOs like I did. I fried that GPIO because I connected the NRF at 3.3 volts to the LEDs at 5 volts, which is just a dumb idea. I definitely shouldn't have done that. You're not going to because I'm planning to, we're planning to use level translators in this rework that I'm going to walk you through. I was lazy, you won't be, but a disclaimer is still warranted. I'm going to do my best. You can do these badge mods. If you have questions, please contact me. These mods can be done with basic tools and simple parts, but I'm not responsible for damage to any of your badge, LED strips, or USB ports that you may plug into. So a round of thanks. At this point in the talk, I would love to ask for a big hand for the badge designers, of course, we're virtual, so we can't do that. So everyone please light up the chat with thanks to the NSEC badge designers, if you please. I have a list of names here that I think contributed to the 2018 to 2019. Badges have done my best. If I missed your name, I'm really sorry. Thank you so much for your work. I love your work. Thanks also to Jonathan Beverly for loaning me his two badges as test subjects for this talk. Thanks to Ken Salt for his reviews and insights. And thanks to Medium Rare for sharing his passion for badge mods with me and also for giving me a couple of cool boards that he's fabbed. First up is the NSEC 2018 badge. Step one in the process is understanding what you've got. Thankfully the designers block diagram page from the schematics on GitHub does a great job of summarizing what's available on this badge. This is a little screen. We have both an STM32 and an NRF 52. There's tons of handy test points, and the test points even include the LED signal. The NRF 52 supports also I2C, and because the NRF 52 allows you to pinmux any function to any pin, you could easily use those push buttons for I2C if you wanted to. Step number two in this process is imagining what you can do. The NRF 52 has SPI and I2C peripherals available, and we could put them anywhere. So any of the SPI peripherals or I2C peripherals that you can buy are up for grabs. That includes screens, LEDs, audio devices, temperature, IMU accelerometers, you name it. A little trip through AliExpress or through Mouser might pique your interest and get those creative juices flowing. A little bit of an aside, we're going to be doing some bit banging on those LEDs. So what is this bit banging? Well, the chips, the system on chips that usually get on the badges, they include peripherals that are built for toggling wires in a very specific way to meet a protocol. When you don't have those peripherals available, usually what the firmware designers do is they'll create software routines to toggle the wires for them, and when they do this, they call it bit banging. So a specific example is this is how the NSEC 2018 and 2019 badges actually do their WS2812 LED control is by bit banging it. So what are these WS2812 LEDs? Well, they have a bunch of different names, sometimes SK2812, sometimes known as Neopixel. They're designed to be daisy chained. You can see how they're actually daisy chained on the strip, excuse me, shown here on the left, the white strip. The output of one LED is the input of the next. They only have three inputs, ground, five volt, and then one other wire. And that one other wire has to take care of sending data and clock and framing, and it does that by doing very specific timings to be toggled. The NSEC 2018 and 2019 badges use a slightly modified version of the WS2812 FXCVP library. And what we're going to do is take that library, bit bang these 2812s and add some more to the badge. So let's plan the rework. We're going to add some connectors to those connectors. We're going to connect strips of WS2812 LEDs. We're going to need to power those strips. You could power WS2812 or Neopixel, whatever you want to call them, strips from 3.3 volt. If we did that instead, we would be limited by the amount of current that the power supply on the badge could supply from that 3.3 volt. It also might not be as bright, so you might not be able to create as much light or as many LEDs as you might want. To avoid those problems, we're going to go straight for the 5 volt, and then we can supply as much current as we could from the USB port we're going to plug into. The problem being that then those LEDs are running a 5 volt, and the NRF 52 is running a 3.3 volt, and we're going to need to introduce some kind of level translation. So this green line connecting the LED to those strips is just notional. We're going to need something else. So what are the parts we're going to need? Well, we need the strips. A lot of these LED strips come with this kind of JST spring clip thingy in the orange circle. The good news is that these connectors, these GST spring clips are actually compatible with 0.1 inch headers. You can also just buy strips that don't have any connectors on them, and you can add connectors. The socket 0.1 inch headers are really good for this. You can cut them and saw them on. We're going to need some wire. Any wire is really going to do. But for the connecting to the SMD components, particularly on the 2019 badge, I think what you're going to want is a 30 AWG quote unquote wire wrap wire. And then I think it's good to have heavier gauge wire for like the current carrying bodges we're going to put together. For that, I like to use hookup wire. We're also going to need 0.1 inch headers, super glue, UV curing glue. I think Bondic is great. And finally, we're going to need those level translators to protect our 3.3 volt domain from the 5 volt LEDs. Here, we're going to be using the Bob 12009 from Sparkfun that you can buy from Digikey. But there's lots of other level translators, and they will also do the job. What kind of tools do you need? Nothing special. You need a soldering iron, think a pencil, you're going to need some solder, flux, all the stuff you would expect to find with your soldering iron. When you get your wire strippers, if you're going to buy them, make sure you get ones that support 30 AWG wire wrap wire, because it's very small and hard to strip. Otherwise, if you're building out a lab or you want to get some more kit, highly recommend Dimitri Nidospasov's Google Sheet, where he tracks all kinds of different options for buying at low price and also high price. So I'll go to that here. We'll post the link somewhere in the chat or the deck will be available. Let's move on to planning the rework in some detail. So we're going to put down that level translator. Obviously, we have to remove the battery pack first, and we're going to need to pick up the five volt and the ground from the board somewhere. There's a handy ground through hole plated via here in the green star. And then for the five, the location nearest to our connectors is the high side of the capacitor, the power management area. There's also the five volt will have to go to the high side of the translator. It'll also have to go to the connectors. Ideally, when we make these connections, they're all made in a star point. And that way you don't have voltage reference problems, particularly if you have bad solder connections. But when you're trying to do rework like this, soldering down two or three wires at the same point can be really hard and usually ends up in the other wires lifting up as you're trying to solder down the new one. So we might want to think of alternate connection points if we have problems. An obvious one is you might be able to connect directly to that USB connection. And then another alternative, which we're going to do in the video is to snake a connection. So it's one continuous wire that's bent and soldered down in one place of the snakes across the PCB, and you'll see some more of that in a bit. And then also we need to connect the ground to the level translator and to the connectors. Same problem here with trying to solder multiple wires at one point. What you can do if you have problems is scrape away the solder, resist a picture here in that green star, the center of the PCB. And that could be an easy place to get ground. Then we're going to need one single flying leaf with a 3.3 volt connection level translator. Then we're ready to connect up those LEDs so we can go from that LED data connection signal that's on those test points over to the level translator then from the level translator out to the connectors. And then we are ready for blinking lights. So here's a little sped up video. We're going to take off that battery connector first. You apply heat and pry them off. You don't need to keep the battery connector. And if you don't want it, then you could just reach in there with side cutters and just cut it out. And that could be a lot easier than trying to force it out with heat and prying. But I wanted to preserve Jonathan's battery connector. Then we're going to glue on those headers. So putting them into the socket headers so that they stay aligned and then putting them now with clamps and super glue. Here we go. We're going to attach the level translator to the center of the badge again with super glue. Let's set. Next up and first, we're going to be connecting that power rail. So we're going to use a snake. I'm going to take this hookup wire and remove strip sorry, remove insulation from the middle of the wire in the right locations as I fit it. I mark it with a marker and then I take two cuts and I twist or remove the insulation. And then once I get it in the right shape, I'm going to put sort of protective elements onto those pin headers so that when I solder to the pin headers, the pins stay aligned. I'm adding tacky flux to things so that I'm ready to solder. Put it in the right place, add some heat, add some solder. Hopefully it stays in place. Remember for the large connections, you might need to hold your soldering iron for quite a while to get to some heat, but to connect to something like that SMD capacitor, it's not going to take nearly as much heat. I like to work from the middle outwards when doing these kind of snakes. We're almost got that one connected to the level translator and now we're ready to move on to the connectors. But one thing that I highly recommend is always testing continuity. So how good is your solder join? It's way better to know. You have a bad solder join early in the process than trying to debug what's going on later. So you'll see a lot of testing for continuity. Again, testing for continuity. You'll notice that I like to measure continuity on the outside of the connectors that lets me avoid accidentally testing continuity sort of on something that's the benefit of the solder gets a better picture of what it'll be like when you put it together as well. So I needed to fiddle with this connector a few times to get a better connection. That one looked good. Now we're going to connect up the ground snake and it's the same technique. So the the point one inch sockets, headers that I've connected to those point one inch pin headers. We put those on there so that when you apply heat to the pins and you're connecting that wire, the plastic that's around the pin actually gets pretty liquid. And if you don't have the headers in place on the outside, the pins can kind of float and get all crooked and then you won't be able to connect anything to them when you're done. So it's really important to put the point one socket headers or you know, if you're doing something upside down, you can do it on a breadboard just to make sure that everything stays nice and aligned. So after we connect these up, we're going to test for continuity. It's way better to do it now. Then we're on to attaching the 3.3 volt flying lead to the level translator. The this is smaller wire. So after we connected up, we're going to want to tack it down. You'll see a little black tube and a flashlight, which is a UV flashlight. And the glue is bondic glue. That's my favorite. Here we go. We'll tack it down. All right, then we're on after testing continuity. Then we're going to be on to connecting up the LED signal. If you watch closely, you can see where I connect up the LED signal to the wrong place on the test points. And I won't notice until later, but we have to relive it now and we'll rework it later in the video. So we're starting from the connectors to the level translator and then going backwards to the LED signal, tacking down the little wires of UV glue and then testing continuity. That's important. Needed a little better connection there. So at some point, I realized I had it on the wrong part of the test points, moved it over, connected it up. Tested continuity. And it worked. Excellent. And we use a lot of tacky flux. So it's important to use isopropyl alcohol to clean up that flux so you don't get corrosion later. Here's a picture of the board for your future reference. And here is what it looks like when connected up in my shop. And here is the one that I redid for Jonathan. Looking pretty good. I love the look of this sputnik badge. All right, next up is the 2019 insect badge. First, understand what you got. Once again, they gave us a great block diagram on the GitHub schematics. It's going to look a lot like the 2018 badge. Same NRF 52, it's got a smaller SBI controlled screen. USB one skin past the SDM 32. We have those nice LEDs controlled by a single wire. We do have test points for the test points. Do not include LED data. So this badge is not as rework friendly. There's no easy place to grab five volts on here either. And the only way to get all the data is to get it from one of those SMD resistors. But we have SPI, we can have I2C as well, because this is an NRF 52. So all the possibilities that you can imagine with little add on peripherals are within the realm of the possible here. Let's plan the rework a little same plan. We are going to add connectors and LED strips. We're going to power those LED strips and we're going to pick up LED data from the resistor on the chain picture here in the bottom right. What kind of parts do we need? Same parts. Let's do this. We're going to put the level translator down. We're going to need to pick up five volt and ground. Ground is available on a pin with a pretty big pad on that through hole row. Five volt is on the USB pads, but they're pretty far away. Connecting to those would mean snaking a connector all the way up the badge. We can also pick up five volt from C400 there below the power manager. If if connecting to an SMD resistor is something you're not comfortable and SMD capacitor is something you're not comfortable doing, you can try to strip off some of the solder resist on the trace leading up to that capacitor, which can give you a better solder point, a larger point. You have to be very careful not to take off the solder resist on the ground pad next to that trace or else you could risk bridging five volt to ground and a lot of wick and solder wick will be necessary to take that mess off. So just like before, five volt will need to go to the connectors into the high side of the level translator and the ground also like before needs to go to level translator and the connectors to avoid the problem of trying to solder to multiple wires to one spot, we can instead solder to the ground plane by removing some solder resist pictured here on the right connector. You can also then pick up the ground at the battery terminal pictured here on the left with the green star, which is actually a through hole plated via very easy to solder to. Then we're going to need to pick up three point three volt, put that at the level translator and then it's the same strategy for the LEDs from that resistor to the level translator from level translator to the connectors and then we're ready for blinking lights. So here's a sped up video. We're going to put those point one inch pin headers in place with clamps and superglue. We're going to put the level translator down with some more superglue, let that set, then it's on to the power rail. So we're going to go with a snake again. I trimmed the insulator from the middle by twisting it off after making two cuts with the strippers. Using tacky flux, I like to solder from the middle outwards. Now, there's no good reason to use heavy gauge hookup wire here since the only reasonable way to pick up the five volt after we've connected up this big heavy wire is with a much smaller wire wrap wire, which won't have the same current carrying capacity. So I could have just gone with blue wire here, but I do enjoy the heavier gauge stuff rebending into the right shape. So here we're going to pick up the five volt from C 400, the capacitor and bring it over to level translator. I'm not going to try to solder down on top of that large wire on the circular via on the level translator. I'm going to tack the wire wrap blue bodge wire on to an SMD resistor pad that I know is also connected to five volt to the high side. And it's much easier generally speaking to put one wire one solder location to try to stack the wires together. Testing continuity after putting some bondic down to hold the flying lead down. And I think here I mistakenly I really don't know why I did this, but I moved to the wire to the wrong side of the capacitor right there. And we're gonna have to redo that later. Tacking down that red wire with some bondic, it was really floating up so it needed another pass. So we're going to shape the ground rail connection now. Same technique. Just shape it the right way, take the insulation off in the right places, and then solder it down working from the middle outwards. When you're connecting to grounds, you're going to need a lot more heat to make the solder flow. So be prepared to hold your iron on the ground connection that you're trying to solder to for a long, longer time than you're used to on the rest of the board. And then for example, when you're connecting to those pins, it doesn't take much time at all. So here I think I realized that I put it on the wrong side of the capacitor and shorted five volt to ground. So here I'm doing a bunch of continuity testing trying to give us myself. I've found the problem. Yeah, I did. Okay, now we're going to fix it, put it on the right side. Yep. Let's tack down that wire again with some UV curing glue. Good, I did a little test there wasn't shorted. Now we're going to connect 3.3 volts up to the level translator. It's not really easy to get it from the 3.3 volt through hole on that row that we planned because the red wire is in the way. So we're going to pick it up from the SAO header instead, which is that little square collection of four through holes right there. So I'm trying to connect that. This one had a lot of metal on it. So it took quite a while to heat up. Don't be frustrated. Just hold your iron there and try to get it hot enough for the solder to flow. Testing continuity once again, this is important. If you don't test continuity early, you will have to undo things to test continuity later. Now we're going to pick up the LEDs. So this is a snake with wire wrap. We're going to connect it to the left most column and level translator, then the right most column and level translator, and then on to that resistor and that's one continuous piece of wire, tacking it down with some UV curing glue. Now we're ready to connect up from the level translator to the connectors, tacking it down, testing it. It worked. Excellent. So here's the results for your reference later. This is what it looks like in my shop. And this is the one that I redid for Jonathan looking pretty good. I love these brains too. So you added more LEDs, you're going to have to change the firmware slightly so that it can drive more slots. It has to do more framing for more LEDs on that single one wire data line. It turns out it's very easy to do this. The insect badge designers did a great job putting together a GitHub repo that is easy to modify easy to compile and easy to flash. You're going to have to just change one token in one location, nrf52 slash LED effects on the 2018 badge and then follow the build and flash instructions and they read me. Similarly for 2019 they moved the file, but otherwise it's the same process. Edit it, save it, follow the build instructions. So we talked about how to add LEDs to these badges and I showed you for 2018 to 2019. But what else could you possibly do? There's a whole world of weird stuff you could do to these badges. Great example of doing cool weird stuff to badges is what Medium Rare does. He actually designs these add-ons for badges based on photos before he gets to an event and then integrates them onto the badges there. So pictured here is the cigar add-on for the DC-24 Bender badge by Ann Nott Exor and the Oxfox add-on to the DC-503 party badge at DC-25 which also then turned into the B-Sides Portland badge. I was lucky enough to be gifted an Oxfox by Rare. I also had a 503 party badge and at the same time I was playing with a 2018 insect badge and I noticed that the 2018 insect badge is very similar to the 503 and I thought it was close enough that you could actually dead bug port the 503 badge to an unmodified 2018 firmware and dead bugging is when you flip the chip over and then do all the connections with flying leads on the backside of the chip which I show you pictured here and it does work running an unmodified badge. This is definitely a messy mod. It doesn't serve any purpose other than to kind of demonstrate that it can be done but maybe I plant the seed in your brain. You have an idea of how you could do a port or a mod at this point and that's the gist of it. You know these conference badges they're all beautiful works of functional art and with few exceptions they're potential debboards for your experiments. What can you plan? How can you make your own use? I'll list a couple examples and badges that are going to be easy for projects. So there's the waving cat badge by Deboops. The Mr. Robot badge is modifiable as is the ThoughtCon hex A badge and all of the and not XOR badges. There's a lot of those. Also HHV is a community that's all about this kind of modification and making your own use. We would love to hear your ideas and to help you however you can. We have a discord of course. Come and join us. Thank you so much for your attention. I'm really looking forward to the discussions that will follow this with Eric Ebenchuk. Hope you had a good conference. Bye!