1 00:00:00,000 --> 00:00:05,380 Thank you all for coming. This is going to be the badge life, badge panel for DEF CON 25. 2 00:00:06,400 --> 00:00:10,640 In front of you we have a bunch of badge makers, independent badge makers, unofficial badge 3 00:00:10,640 --> 00:00:20,720 makers. All of us are friends from Slack. We are on Slack for sharing ideas, sort of 4 00:00:20,720 --> 00:00:26,880 humble bragging and all of the fun things that we like to do. I guess we'll just get in 5 00:00:26,880 --> 00:00:32,320 complaining and lots and lots of complaining. So I guess we'll move forward and we'll start 6 00:00:32,320 --> 00:00:38,580 with the first badge, right? So you guys want a mic? Why don't you come over and grab the mic? 7 00:00:41,840 --> 00:00:51,040 Hey. Okay, here we go. Hey, I'm John, AKA Netic. We created the odds of DEF CON badge which has 8 00:00:51,040 --> 00:00:56,700 been surprisingly popular. That's this guy. See, I just rebooted it. This is the problem with 9 00:00:56,700 --> 00:01:00,740 your own hardware. It's so fragile. All you need to do is short out the right pins and it 10 00:01:00,740 --> 00:01:06,760 automatically reboots. This is a feature. It's not a bug. We produced about 225 of these. We 11 00:01:06,760 --> 00:01:12,880 had about five people on our team. We had a hardware person, software person, Bill, Paul is 12 00:01:12,880 --> 00:01:17,060 standing next to me. Bill was a low-level firmware engineer. He worked on all of our 13 00:01:17,060 --> 00:01:25,720 drivers, radio drivers. The concept of this was we were coming to DEF CON 25 and we wanted to do 14 00:01:25,720 --> 00:01:29,760 something great for the 25th year of DEF CON. I personally have been coming to DEF CON for about 15 00:01:29,760 --> 00:01:36,460 20 years. And we said, oh, Caesar's Palace. We have to do Rome. We have to bring back the Ninja 16 00:01:36,460 --> 00:01:41,500 Network. So like DC 18, Ninja Networks had a fighting game and we sort of extended that and 17 00:01:41,500 --> 00:01:48,360 made it more modern. I think it was next slide. So the device consists of an ARM Cortex M0 18 00:01:48,360 --> 00:01:55,340 processor. The KW01 has a 915 megahertz AES 128-bit encrypted radio that runs in the ISM band. 19 00:01:55,720 --> 00:02:01,420 There's a chip antenna on board because doing your own RF design really sucks. And, you know, 20 00:02:01,440 --> 00:02:07,040 the effective range of this device is probably 30 to 50 feet. It's not very good. I don't really 21 00:02:07,040 --> 00:02:13,140 know RF, but we made it go. We have a 12-bit DAC so we can play audio. We have amplifier 22 00:02:13,140 --> 00:02:19,240 speaker, 4 gig SD card, 320 by 240 TFT touchscreen. And there's a joypad plus an FTDI chip. 23 00:02:19,320 --> 00:02:25,120 So if you plug in a USB cable, you automatically get a console. And then we have 12 of the WS2812 24 00:02:25,720 --> 00:02:33,280 RGB LEDs. Boo! The RGB, the WS2812 is on every, well, almost every person's badge here. It is an 25 00:02:33,280 --> 00:02:39,160 epic piece of shit. Do not use it. It does not survive reflow. You should never solder it any 26 00:02:39,160 --> 00:02:45,980 other way than by hand, preferably with labor that is not yours. 1,200 milliamp hour battery in 27 00:02:45,980 --> 00:02:50,060 the back because, oh, my God, every time you go to DEF CON, your battery dies. The nice thing 28 00:02:50,060 --> 00:02:54,420 about this is you can also plug in the USB cable and charge. Are you attacking me? You're 29 00:02:54,420 --> 00:02:54,860 attacking me. 30 00:02:57,460 --> 00:03:01,560 You can plug in a standard USB cable and get a console and charge the badge. Next 31 00:03:01,560 --> 00:03:10,020 slide. So what did we learn? Try to use pre-made systems on a chip with RF built in. RF design is 32 00:03:10,020 --> 00:03:14,200 difficult. The entire design that we had was plagued by a really shitty footprint we have for 33 00:03:14,200 --> 00:03:20,780 the KW01. We had so much solder float. I have spent the last three days in a hotel room with a 34 00:03:20,780 --> 00:03:25,640 microscope looking through it and re-soldering and reflowing badges, which I did start 35 00:03:25,720 --> 00:03:30,820 at 830 this morning, and I haven't even had lunch yet. My entire lunch has consisted of one beer 36 00:03:31,460 --> 00:03:38,780 because I have been so busy fixing badges. But we did very well. At the end, we ended up with a 14% 37 00:03:38,780 --> 00:03:45,200 failure rate, which I think is really awesome. Do proper design for manufacturing. So if you're 38 00:03:45,200 --> 00:03:49,680 making badges, put a test system in the badge. Make sure you test things. So at least on our 39 00:03:49,680 --> 00:03:55,700 badge, if you eject the SD card somewhere, and then you reboot, you're good to go. You're good to go. 40 00:03:56,240 --> 00:04:00,700 Then we blink the lights RGB, and that tells us the lights are good. And if you hold down all the 41 00:04:00,700 --> 00:04:06,600 buttons, then we will light the lights white that says all your buttons are working. Exterminate, 42 00:04:06,600 --> 00:04:11,540 exterminate. That's Bill's phone. It's awesome. And then also be conscious of design user. We 43 00:04:11,540 --> 00:04:14,980 tried to make a really nice package and make it look great for people. Next slide. I think that 44 00:04:14,980 --> 00:04:19,060 should be it. Oh, and just some photos. We used key CAD. This is the evolution of the badge real 45 00:04:19,060 --> 00:04:22,820 quick. I don't want to take up all the time. But we started on a breadboard. We went from 46 00:04:22,820 --> 00:04:25,680 breadboard to development board to prototype to this nice little keyboard. And then we went to a 47 00:04:25,700 --> 00:04:32,440 massive ugly Flavor Flav prototype. And then we went to in April, we had our first real board. And 48 00:04:32,440 --> 00:04:40,400 then we finally produced in May 2017 the final. Next one. Yay. And thank you. I hope you have fun 49 00:04:40,400 --> 00:04:46,340 with it. And car hacking village team. Yeah. But can you hack it? Can you hack it? Yes. It's 50 00:04:46,340 --> 00:04:50,160 completely hackable. There's a secret puzzle. And I will give you a clue to start the puzzle 51 00:04:50,660 --> 00:04:54,640 underneath the screen. Take the screen off. There's a URL or something you might want to do 52 00:04:55,100 --> 00:04:55,520 something with. 53 00:04:55,700 --> 00:05:00,640 Okay. You'll figure it out. All right. Cool. Nathan? All right. Hello, everybody. This is Nathan Hoke. 54 00:05:00,780 --> 00:05:07,440 And I'm Robert Liali. We well, when I say we, I came up with initial design and then I let Nathan do 55 00:05:07,440 --> 00:05:11,880 everything else. So I'm going to hand the mic over to him. And he's going to tiredly tell you 56 00:05:11,880 --> 00:05:18,420 everything that we did. I've been up for quite a while. I understand the stories about using a 57 00:05:18,420 --> 00:05:22,960 microscope. I was doing that in the back of the car from the drive between 4 Wayne. Let's not get 58 00:05:22,960 --> 00:05:25,680 ahead of ourselves. Okay. Let's not get ahead of ourselves. Okay. Let's not get ahead of 59 00:05:25,680 --> 00:05:29,260 ourselves. All right. Ready? So basically, you know, we wanted to come up with something a 60 00:05:29,260 --> 00:05:33,800 little bit more unique than just a standard badge. So Robert and I came up with this idea of a belt 61 00:05:33,800 --> 00:05:40,540 buckle because we have a lot of truck stuff going on in the village. So Robert came up with 62 00:05:40,540 --> 00:05:47,280 this badge wearing modes state chart. So basically, you know, you have the various modes that 63 00:05:47,280 --> 00:05:53,740 you can wear this thing in. Belt mode, badge mode, right? You can wear it on your armpit. Yep. 64 00:05:53,740 --> 00:06:01,080 Headband. Ankle band. Thigh band. And then you decide, right. But one thing that I always try to 65 00:06:01,080 --> 00:06:06,920 do with the car Hacking Village Badge is I've always wanted it to be more than a badge. You know, 66 00:06:06,940 --> 00:06:12,200 being an engineer myself and working a lot with automotive stuff, I like to make a badge that, 67 00:06:12,300 --> 00:06:19,340 you know, first and foremost is a badge. But after DEF CON's over, you know, somebody who, you 68 00:06:19,340 --> 00:06:23,720 know, works on the kind of stuff that we do could possibly use it to, you know, every day. If, you 69 00:06:23,740 --> 00:06:29,780 as a development tool. So I always try to put in a lot of, a lot of extras into it, um, that people 70 00:06:29,780 --> 00:06:34,340 can use. So this year, um, you know, depending upon which badge you ordered, whether it was a 71 00:06:34,340 --> 00:06:38,840 pre-order badge or the one, you know, you got here, you, you got a lot of different automotive 72 00:06:38,840 --> 00:06:43,100 interfaces, some of the newer ones too. So, you know, CanFD and automotive ethernet, et cetera. 73 00:06:44,300 --> 00:06:51,980 Um, you know, big thanks to NXP, um, sponsor, um, and Rapid7, um, for, for helping out on this 74 00:06:51,980 --> 00:06:57,160 because, you know, there's, in order to bring a lot of these more advanced automotive interfaces, 75 00:06:57,380 --> 00:07:03,740 uh, into a badge that, you know, costs $50, um, you know, can be quite challenging. So thank you 76 00:07:03,740 --> 00:07:09,520 very much. So, you know, a lot of you are probably familiar with the process. I mean, you know, 77 00:07:09,540 --> 00:07:15,360 we paste boards, we pick and place, we reflow, and then we work on them in the back of a rental 78 00:07:15,360 --> 00:07:21,960 car between Fort Wayne, Indiana and Las Vegas because when you try to ship lots of 79 00:07:21,960 --> 00:07:27,520 LiPo batteries, no matter how much process you go through, I had two people at FedEx tell me that I 80 00:07:27,520 --> 00:07:32,720 had everything in place. The driver shows up a week and a half before DEF CON. He's like, I can't 81 00:07:32,720 --> 00:07:36,000 take these. I'm like, well, what are you talking about? I talked to two different people. He goes, 82 00:07:36,000 --> 00:07:40,720 well, you don't have DOT form this and you don't have this. So I'm actually kind of glad that I 83 00:07:40,720 --> 00:07:45,840 made the decision again this year to drive them because last year I had to do this as well. But 84 00:07:45,840 --> 00:07:49,720 that was my fault because I dropped the ball. I thought I could just like throw them at FedEx and 85 00:07:49,720 --> 00:07:51,380 ship them. Well, that was pretty naive. 86 00:07:51,960 --> 00:07:56,700 So this year I really tried. But I'm glad that I didn't because FedEx called me like two days 87 00:07:56,700 --> 00:08:00,960 later and said, hey, you missed your pickup, right? You didn't give anything. So they were telling me 88 00:08:00,960 --> 00:08:06,100 the horror stories of what happens with hazmat stuff. You know, it'll get accepted. It'll go 89 00:08:06,100 --> 00:08:11,680 from Fort Wayne to Kansas City. And then some curmudgeon who's in, you know, whatever department 90 00:08:12,100 --> 00:08:17,780 there at that FedEx facility will say, sorry, we can't ship this. Which, you know, DEF CON is not 91 00:08:17,780 --> 00:08:21,940 going to reschedule for our badges, right? So got to do it. 92 00:08:21,960 --> 00:08:22,300 Cool. 93 00:08:22,580 --> 00:08:24,440 So but can you hack it? 94 00:08:25,640 --> 00:08:32,120 Yes, you can. So last year, you know, we last year and the year before, it was kind of a closed 95 00:08:32,120 --> 00:08:37,760 system that you could script using pawn to do a lot of stuff, which was cool. But this year I 96 00:08:37,760 --> 00:08:43,340 wanted to kind of open it up more. So, you know, on our website, I'm just, you know, all the 97 00:08:43,340 --> 00:08:49,700 schematics, all the software, everything. So somebody could actually use this in the way that I, 98 00:08:49,800 --> 00:08:51,520 you know, was explaining before. 99 00:08:51,960 --> 00:08:55,340 But basically, you know, use it to do stuff after DEF CON, right? 100 00:08:56,020 --> 00:09:01,420 Thanks. Yay. Car Hacking Village Bash. Thank you. Who's next? All right. DC801. 101 00:09:01,900 --> 00:09:02,380 Yeah, here you are. 102 00:09:02,620 --> 00:09:03,480 All right. 103 00:09:03,700 --> 00:09:04,100 Come here. 104 00:09:07,720 --> 00:09:16,360 Hi. I am Ruchon. I'm the... What's this on? All right. I need to hold this higher. So I'm the 105 00:09:16,360 --> 00:09:21,940 parts junkie, hardware guru. I did the majority of the design of the DC801 party bash. This is the 106 00:09:21,940 --> 00:09:29,460 badge and that layout and how to carry it. And then Michael Peterson, celerity, he helped do the 107 00:09:29,460 --> 00:09:36,240 layout and Eagle. That was the badge. He's not able to attend DEF CON here. And then we got 108 00:09:36,240 --> 00:09:43,800 Hamster here, which is our master programming guru. Code monkey. Code monkey. And then we have 109 00:09:43,800 --> 00:09:51,900 Nemus, which is our wizard that helped organize the backend stuff for our badge. Our badge is 110 00:09:51,900 --> 00:10:01,840 a homage to Helga, which is a sheep that deals with our DC801 space that if you come to our 111 00:10:01,840 --> 00:10:09,160 party, you'll learn more about. Special DEF CON 25 badge. Prototypes are all in yellow to do with 112 00:10:09,160 --> 00:10:17,820 golden fleece and get in with the mythology. They all have Hermes helmets. And the final badges 113 00:10:17,820 --> 00:10:21,880 are in white. They grant VIP access to our parties on Saturdays and Sundays. And then we have 114 00:10:21,900 --> 00:10:30,280 Saturday night here at DEF CON. We pre-sell them early, around May or June of the year. 801 115 00:10:30,280 --> 00:10:35,320 labs is the hacker space. So all the proceeds that we get from the badge just goes back to our 116 00:10:35,320 --> 00:10:41,540 hacker space in Utah to help make that better for everyone else. And there's a few other hidden 117 00:10:41,540 --> 00:10:47,060 means within the badge. If you look at it, different labels on it and there's some hidden buttons. 118 00:10:48,380 --> 00:10:48,900 Thanks. 119 00:10:49,780 --> 00:10:50,040 Thanks. 120 00:10:52,580 --> 00:10:58,620 Hey, basic specs. We're using our Regato BMD300, which you notice there's a few other independent 121 00:10:58,620 --> 00:11:11,620 badges using that. It uses a Nordic NRF52832 and ARM Cortex-M4F processor. It has about 32 GPIOs, 122 00:11:11,660 --> 00:11:19,960 512 kilobytes of flash memory and 64 kilobytes of RAM. We run fully off of the onboard chip. And 123 00:11:19,960 --> 00:11:21,880 then we have two RGBIs. We're using two RGBIs. We're using two RGBIs. We're using two RGBIs. We're 124 00:11:21,900 --> 00:11:23,440 using two RGBIs. We're using two RGBIs. And they're rotating at 180 degrees, which on the final 125 00:11:23,440 --> 00:11:28,220 badges are rotated at 180 degrees. So if you want full green capability, you need to learn to 126 00:11:28,220 --> 00:11:32,720 desolder and resetter on your RGB. Nothing goes perfect. 127 00:11:33,080 --> 00:11:36,860 And then there's going to be the 0-1-0-2 resistors that are right next to the eyes. 128 00:11:37,160 --> 00:11:37,320 And then there's going to be the 0-1-0-2 resistors that are right next to the eyes. 129 00:11:37,320 --> 00:11:43,840 Yes. We use small things because we fully kit out our badge and it's fab for us because we want to 130 00:11:43,840 --> 00:11:49,640 enjoy DEF CON a little bit more and not spend time doing badges all the time. So... 131 00:11:49,640 --> 00:11:51,880 I have a question about the 132 00:11:51,900 --> 00:11:59,420 It's a lot of fun. Programming is one of our longer pulls in our development. It has a 133 00:11:59,420 --> 00:12:06,440 speaker, it has six red on the wings, and then it also has a red charging LED, and then 134 00:12:06,440 --> 00:12:12,740 it has seven yellow ones for the helmet, so you have a golden helmet with red wings. To 135 00:12:12,740 --> 00:12:16,740 go with it, it has two capacitive buttons that you need to figure out where they are. 136 00:12:16,740 --> 00:12:22,880 There is a test mode functionality code-wise that you can get into that you can play around 137 00:12:22,880 --> 00:12:26,560 with to figure out where the buttons are, so when we release our source code and everything 138 00:12:26,560 --> 00:12:32,820 at the end, you guys can play and program and have fun with the sheep. What else is 139 00:12:32,820 --> 00:12:38,680 there? We're right in front of some of the words. It has an LCD screen, has selected 140 00:12:39,320 --> 00:12:44,960 pinouts right underneath the LCD screen, right above the buttons, JTAG interface, micro 141 00:12:44,960 --> 00:12:46,480 USBs only for charging. 142 00:12:46,740 --> 00:12:58,000 You cannot program through it. Software development is Eclipse GNU ARM GCC. You need a Sega J-Link 143 00:12:58,000 --> 00:13:06,800 to really program it. We do put the program report on the badge. You get the Education 144 00:13:06,800 --> 00:13:14,420 one, 60, 70 bucks, program all ARM chips. Pretty nice. Bomber is all after the DC-801 145 00:13:14,420 --> 00:13:14,760 GitHub. 146 00:13:14,760 --> 00:13:20,320 hub after the con and we'll have everything released, full files, everything. 147 00:13:21,900 --> 00:13:28,040 Some precursor things, we start out with the basic design of the sheep and then start doing 148 00:13:28,040 --> 00:13:33,640 layout in Eagle and make sure the parts line up right, get our silkscreen the right size, 149 00:13:34,300 --> 00:13:38,320 everything else, figure out a way of carrying it. We didn't want to do normal lanyards so 150 00:13:38,320 --> 00:13:45,840 we decided to do six inches of Velcro and then give you an awesome S-Beaner that's also a 151 00:13:45,840 --> 00:13:50,400 bottle opener. Figured it's very useful at DEF CON to have a bottle opener and have a badge 152 00:13:50,400 --> 00:13:54,840 that you can print anywhere. So you don't have to wear it around your neck. Okay, go next. 153 00:13:56,080 --> 00:14:06,500 Some tips. So there's always a contest for our DC801 badge. During LINE CON we usually have 154 00:14:06,500 --> 00:14:08,300 some people throwing out coins and stuff like that. So if you're interested in doing that, 155 00:14:08,320 --> 00:14:08,560 you can go to our website, some of our links are in the description. So if you're interested 156 00:14:08,560 --> 00:14:09,120 in doing that, go to the link in the description. So you can win a badge or other things that 157 00:14:09,120 --> 00:14:15,420 some of you may have picked up that has a male sheep on a ram and that goes for a contest 158 00:14:15,420 --> 00:14:20,780 that you can end up winning a DC801 badge and we also have another contest for whoever 159 00:14:20,780 --> 00:14:26,920 makes the best can crusher to go back to our hackerspace for recycling efforts. We'll also 160 00:14:26,920 --> 00:14:34,960 win a badge. So pay attention how the badge changes. You can notice our screens rotating 161 00:14:34,960 --> 00:14:42,080 because some of the other badges are also BLEE enabled. So we do have some hellos to other 162 00:14:42,080 --> 00:14:48,660 badges. Another key thing, follow the BadgeMakers on Twitter if you want to learn more about 163 00:14:48,660 --> 00:14:59,320 badges and when things get released and what not. And...anything else? Yeah, so we were 164 00:14:59,320 --> 00:15:04,100 really fortunate to have our BadgeMaker select this year and we were able to develop something 165 00:15:04,100 --> 00:15:08,740 of a common Bluetooth protocol so that the different badge groups can identify each other and 166 00:15:08,740 --> 00:15:13,620 somewhat talk to each other depending on functionality. And the final thing that we did on 167 00:15:13,620 --> 00:15:19,200 these guys is we're running a game of Contagion. So we'll see, you get to enter what we're 168 00:15:19,200 --> 00:15:22,740 calling an offensive vector into your badge. So we'll see by the end of the weekend who comes 169 00:15:22,740 --> 00:15:28,540 out on top as which team infects the most badges. So watch for that. Oh yeah, and that will 170 00:15:28,540 --> 00:15:33,520 be at our party. So it comes to our party and we'll have a BLEE slipper and everything else and 171 00:15:33,520 --> 00:15:34,080 projectors. And we'll have a BLEE slipper and everything else and projectors. And we'll have a BLEE 172 00:15:34,080 --> 00:15:35,060 slipper and everything else and projectors. And we'll have a BLEE slipper and everything else and 173 00:15:35,060 --> 00:15:37,280 projectors. And we'll have a BLEE badger and see all the fun BLEE badges at our party. 174 00:15:39,200 --> 00:15:44,220 Who's... they are, they're not here right now. I guess I'll just do this. Real quick. No, 175 00:15:44,240 --> 00:15:51,440 I'm kidding. So I guess we'll skip over them. They might, they might come later. We'll come 176 00:15:51,440 --> 00:15:57,620 back to them. Yeah, me too. Maybe, you know, they're too busy doing flash sales right now. So 177 00:15:58,220 --> 00:16:04,060 OK, here we are. Hi, I'm Borgl on the internet, the online system throughout. I'm just 178 00:16:04,520 --> 00:16:08,300 I'm a random asshole who decided I was going to make a badge for Defcon because I came to 179 00:16:08,300 --> 00:16:13,220 Defcon for quite a while and planned every single year to build one and then finally got off my 180 00:16:13,220 --> 00:16:19,540 ass and actually did it. So it is a dragonfly. If you've read the book, The Diamond Age by 181 00:16:19,540 --> 00:16:23,660 Neil Stevenson, it's a book I quite enjoy. There's a sequence in which a character goes to a party 182 00:16:23,660 --> 00:16:27,540 and everyone is wearing these funny cloisonné dragonfly pins. And over the course of the party, 183 00:16:27,580 --> 00:16:33,860 they notice they kind of synchronize. And then in the context of the book, there's nanites and 184 00:16:33,860 --> 00:16:41,500 there's no nanites in the badge, to be clear. The team is me. I did the things. The theme of this 185 00:16:41,500 --> 00:16:46,560 was, so last year I kind of tried to build a few and mostly failed. But last year the theme was 186 00:16:46,560 --> 00:16:50,160 learn about electronics. This year the theme was learn about building more than one of something, 187 00:16:50,720 --> 00:16:56,880 which means, God, that's so hard. So that means focus on reliability and reduce risk. So that 188 00:16:56,880 --> 00:17:02,080 means reduce financial risk. And there's a bunch of money stuff in here. And it also means reduce 189 00:17:02,080 --> 00:17:03,840 risk of failure, increase yield. And it also means reduce risk of failure, increase yield. 190 00:17:03,860 --> 00:17:14,280 Things like that. Beep. Okay. So I have no features besides exactly what it says on the tin. 191 00:17:14,380 --> 00:17:18,320 It has no puzzle. There is, like, SWD is available. So if you want to reprogram it, you can do 192 00:17:18,320 --> 00:17:23,080 that. There's no, you can plug into the UART. There's no puzzle there either. It does exactly 193 00:17:23,080 --> 00:17:28,080 what it does on the tin. So if you're alone, it does random RGB fades. And it beacons 194 00:17:28,080 --> 00:17:33,840 periodically in infrared. And if you are near other people, it will use the beacons to synchronize 195 00:17:33,840 --> 00:17:37,700 a clock. And then they'll kind of all traverse the color space together. And then as you move away 196 00:17:37,700 --> 00:17:42,640 from each other, they'll spin off randomly into RGB fading again. Last year the code didn't work 197 00:17:42,640 --> 00:17:46,880 at all. This year the code actually works, which is cool. It also has a button, which you can use 198 00:17:46,880 --> 00:17:52,920 as a TV mute toggle button. And it also kind of juices other people's dragonflies. So that's been 199 00:17:52,920 --> 00:17:58,660 neat. I don't, there's no other features. My features are low cost. So I'm using almost the 200 00:17:58,660 --> 00:18:03,680 shittiest STM32F0, because it turns out they're really inexpensive from China. And I'm going to use 201 00:18:03,680 --> 00:18:03,700 this one. And I'm going to use this one. And I'm going to use this one. And I'm going to use this one. And 202 00:18:03,700 --> 00:18:03,820 I'm going to use this one. And I'm going to use this one. And I'm going to use this one. And I'm 203 00:18:03,840 --> 00:18:09,960 using APA102s, which are sort of like a, they're a six pin. They're almost like the NeoPixel WS28 204 00:18:09,960 --> 00:18:16,560 whatever's. They don't melt. Well, they don't melt sometimes. They're impossible to hand rework. 205 00:18:17,640 --> 00:18:24,740 They, I successfully can do them in my reflow oven most of the time. It has an infrared LED and a 206 00:18:24,740 --> 00:18:30,700 receiver and a battery. You can't charge it. That's cost. It doesn't have a switch. That's cost. 207 00:18:30,980 --> 00:18:32,480 In assembly time. 208 00:18:32,480 --> 00:18:38,900 In assembly time. Can you go to the next one? We'll see if. Okay. So again, reduce risk. So lots of 209 00:18:38,900 --> 00:18:43,020 iterations. I have a little CNC, I have all these with me if anyone wants to see them. I have a 210 00:18:43,020 --> 00:18:47,820 little CNC mill, which is really cool for cutting circuit boards. So I cut the first version of the 211 00:18:47,820 --> 00:18:53,620 board, which is broken button, fucked up infrared receiver, ripped a pad off for the IR LED. But 212 00:18:53,620 --> 00:18:57,140 this was enough to prove that it would work. Which meant that when I made the next one, I was 213 00:18:57,140 --> 00:19:02,460 less likely to be wasting money. This one was also wrong. I also discovered that I was going to switch it. 214 00:19:02,460 --> 00:19:07,260 And that required a little bit of rework. You'll notice on the final one I eventually ripped some 215 00:19:07,260 --> 00:19:13,380 buttons off because that reduces cost and reduces assembly time and reduces failures. I made it a 216 00:19:13,380 --> 00:19:17,180 cool shape because I figured I'd end up with a bunch of them. I'll talk about these LEDs in a 217 00:19:17,180 --> 00:19:21,720 minute. I did another iteration, which is functionally equivalent to the final one. And then 218 00:19:21,720 --> 00:19:25,400 a final iteration to make sure the size and the shape and everything was right. And then the real 219 00:19:25,400 --> 00:19:30,080 final one that came after that had the real silk art and everything courtesy of my mom. She did a 220 00:19:30,080 --> 00:19:31,740 great job. I really appreciate it. 221 00:19:33,160 --> 00:19:41,700 Shout out to moms. Awesome. Okay. So these were all hand assembled. So the cost to me to build 222 00:19:41,700 --> 00:19:47,560 one is about $7. The cost including all my rounds of prototypes and burned parts and everything 223 00:19:47,560 --> 00:19:53,480 comes out to about $9. So that's thoroughly in the like beer money sort of zone, which was 224 00:19:53,480 --> 00:19:57,960 exactly where I wanted to be. I had no idea what the market would be like. So the plan was to 225 00:19:57,960 --> 00:20:02,080 reduce my personal financial risk because there's no sponsorships and if I ended up selling none of 226 00:20:02,080 --> 00:20:07,840 them, I didn't want to be in a hole that was too deep. Hand assembly means optimize for things 227 00:20:07,840 --> 00:20:12,780 that you will probably succeed at hand assembling. If you look at a crypto privacy badge, they use 228 00:20:12,780 --> 00:20:18,780 these incredible 2 millimeter square versions of the same LED I use. I was going to use those, 229 00:20:18,900 --> 00:20:25,780 but those are basically impossible for me to hand assemble. So I didn't use them. I, let's see. I 230 00:20:25,780 --> 00:20:29,800 think there are other examples. I have a couple work arounds. So these LEDs fail during reflow 231 00:20:29,800 --> 00:20:32,060 pretty frequently. And if you look at the back, there are these little circles. And then you can 232 00:20:32,080 --> 00:20:36,520 use these little jumpers to cut them out of the chain in case they fail so I don't have to fix 233 00:20:36,520 --> 00:20:41,480 them. There's also an extra pair of holes at the top in case I couldn't get the IR LEDs I was 234 00:20:41,480 --> 00:20:46,040 expecting. I could just swap in a through hole one. So there are a couple things like that. If 235 00:20:46,040 --> 00:20:51,180 you're building one yourself, cost compared with China, China will save you unbelievable money on 236 00:20:51,180 --> 00:20:56,340 certain things. So I switched CPUs because it turned out the CPU I was using I couldn't get from 237 00:20:56,340 --> 00:21:01,900 China. But boy, I could get this slightly worse CPU for almost nothing. And I got like a CPU tray 238 00:21:02,080 --> 00:21:08,260 in Saran Wrap in a padded envelope from China. It was great. So at some point, it was like, okay, 239 00:21:08,280 --> 00:21:12,420 cost compare. Well, if I switch to this part, it will be cheaper or easier. So that's totally worth 240 00:21:12,420 --> 00:21:17,200 doing. Have test firmware. Other NETIC had test firmware. So there's a version. The first 241 00:21:17,200 --> 00:21:20,660 thing I flash it with lights the LEDs in response to the button and the IR and stuff. Super helpful 242 00:21:20,660 --> 00:21:26,140 for fast testing. Service mount parts are scary, but you kind of, if you want to assemble things 243 00:21:26,140 --> 00:21:30,580 like in a manufacturing line, it's easiest to do service mount. If you do service mount, get a 244 00:21:30,580 --> 00:21:32,060 paste stencil. It's a little bit more expensive. But if you want to assemble things like in a 245 00:21:32,080 --> 00:21:36,980 factory, it's Google around or ask me or something. They're very easy to use. I built this 246 00:21:36,980 --> 00:21:40,900 little programming fixture using these little spring-loaded pins out of another dragonfly so I 247 00:21:40,900 --> 00:21:44,560 can just press it on top and push program and it programs it, which means I don't need to solder 248 00:21:44,560 --> 00:21:49,420 headers, which saves cost and time like everything else. It also makes it really easy to 249 00:21:49,420 --> 00:21:54,900 reflash them, which is useful. Let's see. It's a marathon, not a sprint. I worked on this for 250 00:21:54,900 --> 00:21:58,800 like nine months. I would guess that most of these other people worked on them for similar or 251 00:21:58,800 --> 00:22:02,060 longer periods of time. It's just a little bit. Every day, it's just a little bit. Every day, it's 252 00:22:02,060 --> 00:22:04,900 a day, even when you really don't want to. And then at the very end, it's a sprint after the 253 00:22:04,900 --> 00:22:12,580 marathon, which sucks, but that's badge life. Sorry. Let's see. Yeah, strip unneeded stuff, pull 254 00:22:12,580 --> 00:22:17,000 off buttons I didn't need, things like that. I totally overoptimized my like cool animation 255 00:22:17,000 --> 00:22:21,560 framework, which is great now, but it made it basically impossible to debug, which was stupid. I 256 00:22:21,560 --> 00:22:26,700 shouldn't have done that. Don't optimize. You need to optimize because you'll be wasting time. I 257 00:22:26,700 --> 00:22:32,040 think that's pretty much it. Cool. All right. Cool. Thank you. 258 00:22:32,060 --> 00:22:40,160 Thank you very much. All right. Let's do crypto and privacy, Carl. I'm Carl Kosher from the 259 00:22:40,160 --> 00:22:47,800 crypto and privacy village. Hey, Justin, do you want to come up? Sure. All right. Yay. All 260 00:22:47,800 --> 00:22:55,160 right. So, I ‑‑ we did the crypto and privacy village badge. I focused on the hardware 261 00:22:55,160 --> 00:23:02,040 development and the low‑level firmware as I'll talk about later. There's an 8 bit microcontroller and a 262 00:23:02,060 --> 00:23:09,500 ESP32. And so the low level stuff on both of those I did. Whitney Merrill, another co-organizer 263 00:23:09,500 --> 00:23:16,740 of the Crypto and Privacy Village did the badge art. She also made these PCB keys. Also in 264 00:23:16,740 --> 00:23:23,180 KiCad. Also produced at the same board house. They're pretty sweet and part of a puzzle. And 265 00:23:23,660 --> 00:23:30,120 developed some of the puzzles that are on the badge. And then Justin did Python development 266 00:23:30,120 --> 00:23:44,280 and wrangled China a lot. Oh yeah. So specs of our badge. So we, I like to say that we have a 267 00:23:44,280 --> 00:23:51,340 quad core badge. So the ESP32 module actually has three cores on it. There's two 32 bit extensa 268 00:23:52,400 --> 00:23:59,040 risk CPUs running at up to 240 megahertz. There's one ultra low power core which uses some 269 00:23:59,040 --> 00:24:00,100 custom installs. And there's one ultra low power core which uses some custom installs. And 270 00:24:00,120 --> 00:24:00,380 there's one ultra low power core which uses some custom installs. And there's one ultra 271 00:24:00,380 --> 00:24:07,840 instruction set basically to like do GPIO and other low power things when so the rest of the 272 00:24:07,840 --> 00:24:16,620 CPU can sleep. It supports Wi-Fi, Bluetooth, Bluetooth low energy in there. It has a ton of 273 00:24:16,620 --> 00:24:24,920 peripherals, only some of which that we use has about half a mega of SRAM although once you add 274 00:24:24,920 --> 00:24:30,100 in like Wi-Fi and Bluetooth and all that and micropython which I'll talk about in a moment. So 275 00:24:30,100 --> 00:24:37,920 minute. You start getting crunch for space. The modules we get have an antenna built into them 276 00:24:37,920 --> 00:24:42,300 and they have a flash chip on them so we have four megs of flash. There's an 8 bit micro 277 00:24:42,300 --> 00:24:51,640 controller that we use for power management and to talk to the LEDs and the rotary encoder. It 278 00:24:51,640 --> 00:24:59,280 also does USB to serial and it's actually it's from Silicon Labs and it's actually cheaper than 279 00:24:59,280 --> 00:25:06,760 the USB to serial dedicated chip that Silicon Labs sells which is way cheaper than the FTDI chip 280 00:25:06,760 --> 00:25:15,340 that everyone uses. So it's a pretty nice piece of hardware despite it being based on an 8051 and 281 00:25:15,340 --> 00:25:21,060 programming 8051 code is a nightmare because there's like five different address spaces and 282 00:25:21,820 --> 00:25:29,260 it's a mess. We have headphone and microphone amps on here. We were hoping that the USB to serial 283 00:25:29,280 --> 00:25:30,100 would get into it. But that's not the case. So we are going to go ahead and do our own 284 00:25:30,100 --> 00:25:36,540 research. Okay. So the ESP32 SDK would support audio in. It doesn't have it yet. Technically the 285 00:25:36,540 --> 00:25:42,800 ESP32 is still in beta so they are still developing the SDK for it. So we made a gamble there 286 00:25:42,800 --> 00:25:47,780 and we kind lost on that but oh well. It has an accelerometer on it. We don't use it. We are 287 00:25:47,780 --> 00:25:53,100 going to use it for other things that we'll probably do next year. Same with the crypto 288 00:25:53,100 --> 00:25:59,260 accelerator chip. It has a rotary encoder and of course these awesome import and export 289 00:25:59,260 --> 00:26:08,280 tiny LEDs that you absolutely cannot hand solder. You want a stencil for that in hot air. Beep. 290 00:26:09,620 --> 00:26:16,360 All right. So our process. Back in so I actually forgot a lot of this so I went back on 291 00:26:16,360 --> 00:26:22,860 GitHub to look at actually what we did. So our first commit was in 2016 where we committed a 292 00:26:22,860 --> 00:26:30,040 rough outline of the badge design. And then through, you know, the Christmas season and into 293 00:26:30,040 --> 00:26:37,020 the new year we created the schematic. Next few months we did the initial PCB layout. Made the 294 00:26:37,020 --> 00:26:43,660 first prototype PCBs, had them shipped. In April I started writing from where to test all the 295 00:26:43,660 --> 00:26:52,840 parts. Assembled these by hand. Unfortunately I got some of the, you know, some of the 296 00:26:52,860 --> 00:26:58,320 footprints wrong especially for like the LEDs so I couldn't test that. So I started design of the 297 00:26:58,320 --> 00:27:05,640 second prototype PCBs which were mostly the same just with some footprint fixes. Then we got that 298 00:27:05,640 --> 00:27:15,280 back in May. We did more testing and tweaking of that. In June we finalized our hardware design 299 00:27:15,280 --> 00:27:22,840 and kicked that off to PCBWay who started the production process. And then in June we 300 00:27:24,360 --> 00:27:26,340 did the next part of the project. So that's the last part of the project. So to do that to 301 00:27:26,340 --> 00:27:33,100 actually assemble these things they need like a very precise bomb or bill of materials. They need 302 00:27:33,100 --> 00:27:39,240 assembly and testing instructions. So we have to say this LED is oriented this way. This chip is 303 00:27:39,240 --> 00:27:44,860 oriented this way. And show where all the orientation markers and being very precise about 304 00:27:44,860 --> 00:27:52,840 everything so you don't end up with issues with rotated parts and stuff like that. So that took a 305 00:27:52,860 --> 00:27:57,580 while to actually develop. Same with the test firmware. So we had them flash some test 306 00:27:57,580 --> 00:28:04,300 firmware on there. Turns out the USB to UART firmware that we have on the EFM8 doesn't support 307 00:28:04,300 --> 00:28:11,880 anything. Supports OSX, Linux, and Windows 10. If you're on a version of Windows below that you 308 00:28:11,880 --> 00:28:18,000 have to like install a custom driver. And so they were running Windows 7 so wrote a different 309 00:28:18,000 --> 00:28:22,840 version of the firmware that pretends to be that silicon light. So that's kind of like the 310 00:28:22,860 --> 00:28:30,920 labs part. And they just give you firmware for that. But it was wonky in other ways. So back like a 311 00:28:30,920 --> 00:28:37,720 week or two ago I finally got micro Python building on this. And then just, huh? 312 00:28:38,040 --> 00:28:46,480 . Yes. So Justin starts, you know, right about then July 22nd we get a UI framework 313 00:28:46,480 --> 00:28:52,520 up and running on Python. The nice thing about Python is it lets you be very productive in getting 314 00:28:52,860 --> 00:29:03,080 pretty fancy user interfaces and other things going. We wrote these bindings so they show up as 315 00:29:03,080 --> 00:29:08,820 Python modules that you can make like a method call to and it calls some underlying C code which 316 00:29:09,700 --> 00:29:16,560 messes with the hardware. And so we were working on that. Making some pretty good progress on 317 00:29:16,560 --> 00:29:22,840 that. Past week furiously doing final assembly. Assembly and firmware development. We're 318 00:29:22,860 --> 00:29:28,380 using our retrofit. Today as of 3 a.m. We started flashing the badges with things. And. Today 319 00:29:28,380 --> 00:29:39,280 at 10 a.m. We started selling the badges. Another news for you guys. We just saw I 320 00:29:43,240 --> 00:29:52,840 was getting noticed by a viewer. And so the difference changes every week. Another news is 321 00:29:53,820 --> 00:30:01,480 Yeah, so we were, so this rotor encoder is the only through hole part and that's where the 322 00:30:01,480 --> 00:30:05,980 battery goes and through hole parts and lipo batteries don't really mix. So we had to like 323 00:30:06,460 --> 00:30:11,380 get some flush cutters and like make them nice and smooth. Then we put some double-sided foam 324 00:30:11,380 --> 00:30:18,140 tape on there and it works rather well, but you have to cut off like 3,500 different connections 325 00:30:18,140 --> 00:30:29,740 in total. And so, you know, there's metal everywhere in my room now. Boop. This is sort of 326 00:30:29,740 --> 00:30:39,460 the aftermath of the initial assembly process as of last night. So this was right before we went 327 00:30:39,460 --> 00:30:45,220 in, well, it was actually several hours before we flashed the firmware. But basically, you know, 328 00:30:45,260 --> 00:30:47,480 this is badge life. Boop. 329 00:30:48,540 --> 00:30:54,700 So some tips. So two categories of tips. One about the badge that we made and one about, you 330 00:30:54,700 --> 00:31:01,020 know, making your own badges. For the Crypto and Privacy Village badge, it's actually fully 331 00:31:01,020 --> 00:31:08,080 reflashable over USB. You don't need any custom tools to flash it. If you hold down the 332 00:31:08,080 --> 00:31:16,280 rotor encoder while you plug it in, it will come up as a HID device which you can reflash the 333 00:31:16,280 --> 00:31:18,120 8-bit microcontroller with a USB cable. You can also use the USB cable to connect the HID device to the 334 00:31:18,120 --> 00:31:24,080 some of the Silicon Labs tools. And then once that's up, then you can reflash the ESP32 with the 335 00:31:24,080 --> 00:31:30,760 standard ESP32 development toolkit. If you don't want to deal with that, there's MicroPython 336 00:31:30,760 --> 00:31:37,920 running on it. If you plug into it, you'll get a serial port. You get basically an interpreter 337 00:31:37,920 --> 00:31:44,260 interface. And you can start playing around with the badges directly from over USB like that. 338 00:31:44,560 --> 00:31:48,100 There's no puzzles in the firmware. If the firmware is acting strange, it's okay. But if you're 339 00:31:48,100 --> 00:31:56,740 trying to fix it, it's a bug. It's not a hint. We've had many questions like, oh, why does it do 340 00:31:56,740 --> 00:32:04,700 that? It's not part of a puzzle. There are many things that we wanted to do on this badge that we 341 00:32:04,700 --> 00:32:09,460 just didn't have time for. As you might have noticed, there's a lot of hardware on there that 342 00:32:09,460 --> 00:32:15,900 we don't have software support for. So we might reuse a large part of at least the electrical 343 00:32:15,900 --> 00:32:24,880 design on this and do something interesting in the future. For, you know, making your own badges 344 00:32:24,880 --> 00:32:31,700 start earlier than you were planning. We thought we did. It wasn't early enough. A lot of making 345 00:32:31,700 --> 00:32:36,960 the schematic was just, you know, picking out interesting parts and looking at the data sheets. 346 00:32:37,160 --> 00:32:42,200 And the data sheets will typically have like a typical application or example circuit. And you 347 00:32:42,200 --> 00:32:45,660 can mostly follow those and just mash them up together. And it will 348 00:32:45,900 --> 00:32:46,740 mostly work. 349 00:32:49,160 --> 00:33:00,340 So be very aware of every part on your bill of materials. Like some parts you think there would be 350 00:33:00,340 --> 00:33:07,040 enough for and you go to order them and there are not 500 in the world. You cannot buy them without 351 00:33:07,040 --> 00:33:11,580 an 11-week lead time. That is not going to make it work in June. 352 00:33:13,080 --> 00:33:15,880 Oh, yeah. By the way, so we got 353 00:33:15,900 --> 00:33:22,980 a recommendation for a voltage regulator from an Avernat Report, and it was a great 354 00:33:22,980 --> 00:33:27,140 power regulator and so we put it on our first prototype and then we go to actually 355 00:33:27,140 --> 00:33:32,760 build them. And it turns out Avernat Re bewusst bought the entire supply of them. 356 00:33:36,520 --> 00:33:43,500 So it was either delay the badge by 12 weeks or substitute a different part. So we substituted a 357 00:33:43,500 --> 00:33:45,380 different part, which required another prototype. 358 00:33:45,480 --> 00:33:45,880 Why did that happen??! 359 00:33:45,900 --> 00:33:52,940 sure that we weren't building 500 bricks and so that added some delay. We have these Badge 360 00:33:52,940 --> 00:34:01,340 Life shirts run DRC. DRC stands for design rule check. Basically it is a bunch of schematic and 361 00:34:01,920 --> 00:34:09,060 PCB tools will check for things like shorts, things that aren't connected, whether you have 362 00:34:09,520 --> 00:34:15,040 traces that are too close to each other. And so this just ensures that it can be manufactured 363 00:34:15,040 --> 00:34:20,260 and it matches the schematics and there's also ERC for checking that the schematics are 364 00:34:20,680 --> 00:34:27,100 saying. I really like this book, The Hardware Hacker by Bunny. There's a chapter about 365 00:34:27,660 --> 00:34:37,120 outsourcing stuff to China and how to make bombs that China will build. Precisely, basically 366 00:34:37,120 --> 00:34:42,840 it's like you have to be very precise about what you want. You can't just say, oh, I want one 367 00:34:42,840 --> 00:34:45,020 microfiber, or one microfiber. You have to be very precise about what you want. You can't 368 00:34:45,040 --> 00:34:47,060 just say, oh, I want one microfiber, or one microfarad capacitor. You have to say, one 369 00:34:47,060 --> 00:34:58,420 microfarad, 0603, plus or minus 10% NPO, COG, you have to specify like the precise type of 370 00:34:58,420 --> 00:35:07,640 capacitor you want. But the one advantage of outsourcing is you can get parts a lot cheaper 371 00:35:07,640 --> 00:35:15,020 than you can get from domestic sources. There's some pitfalls in getting stuff fairly cheap. It's 372 00:35:15,040 --> 00:35:19,920 from overseas, but it definitely dropped our costs 373 00:35:19,920 --> 00:35:23,980 by probably 3x, I would estimate. 374 00:35:25,260 --> 00:35:27,020 Boop. Boop. 375 00:35:27,920 --> 00:35:31,280 Oh, I think we're out of slides. 376 00:35:31,580 --> 00:35:33,680 Yeah, well, we were talking about the engine's amenity. 377 00:35:33,820 --> 00:35:35,440 You're missing one tip, by the way. 378 00:35:35,620 --> 00:35:36,360 What's the tip? 379 00:35:36,440 --> 00:35:38,740 You know how to ship LiPos. 380 00:35:40,960 --> 00:35:41,820 What's your tip? 381 00:35:41,820 --> 00:35:45,200 The tip was ask Crux. 382 00:35:45,720 --> 00:35:49,420 So Crux actually ordered... 383 00:35:49,420 --> 00:35:52,200 So one thing that was new for this year 384 00:35:52,200 --> 00:35:55,080 is a bunch of us are in a small Slack 385 00:35:55,080 --> 00:35:59,140 where we can talk about making a common Bluetooth protocol 386 00:35:59,140 --> 00:36:01,340 and doing group buys of things. 387 00:36:02,060 --> 00:36:04,580 And one of the things that we did a group buy for 388 00:36:04,580 --> 00:36:07,420 was LiPo batteries, because they are an absolute nightmare 389 00:36:07,420 --> 00:36:08,660 to get shipped here. 390 00:36:08,760 --> 00:36:11,460 So we organized it with... 391 00:36:11,820 --> 00:36:15,720 people at SendShop and DC Darknet Project, 392 00:36:15,980 --> 00:36:18,520 and basically they ordered something like 393 00:36:18,520 --> 00:36:21,500 1,500 LiPo batteries directly to Vegas. 394 00:36:21,900 --> 00:36:25,040 And so, like, on Wednesday night, 395 00:36:25,200 --> 00:36:27,700 we just get a text being like, 396 00:36:27,840 --> 00:36:30,280 hey, I got the goods, come upstairs, bring cash. 397 00:36:30,760 --> 00:36:31,700 And we did. 398 00:36:31,900 --> 00:36:32,820 One floor up. 399 00:36:32,920 --> 00:36:35,640 Just went down, made an exchange, 400 00:36:35,760 --> 00:36:39,020 and we got 500 LiPo batteries without any issue. 401 00:36:39,140 --> 00:36:40,240 So that was great. 402 00:36:40,540 --> 00:36:41,740 I meant the way you got them last. 403 00:36:41,820 --> 00:36:44,180 The way that we got them... 404 00:36:47,540 --> 00:36:51,320 So we asked our supplier in China 405 00:36:51,320 --> 00:36:54,720 if they could source LiPos for us. 406 00:36:55,140 --> 00:36:59,300 And they said yes, but it might be tricky. 407 00:37:00,300 --> 00:37:04,880 And then, I don't know what happened after that, 408 00:37:05,040 --> 00:37:07,600 but they showed up in Beats headphone boxes. 409 00:37:08,220 --> 00:37:08,900 Um... 410 00:37:11,820 --> 00:37:13,960 I was not aware that that was going to happen. 411 00:37:17,740 --> 00:37:20,860 It turns out you can't ship LiPos by plane. 412 00:37:21,320 --> 00:37:23,560 Well, you can just on cargo. 413 00:37:23,820 --> 00:37:26,760 You can't ship it as, like, on a commercial passenger. 414 00:37:28,240 --> 00:37:30,340 Yeah, there's a big, like... 415 00:37:30,800 --> 00:37:33,700 Oh, our LiPo boxes have warnings up the wazoo on them. 416 00:37:34,600 --> 00:37:36,180 All right, here's QueerCon. 417 00:37:36,880 --> 00:37:37,900 Hey, I'm George. 418 00:37:38,040 --> 00:37:40,540 I'm a third of the QueerCon badge team. 419 00:37:40,640 --> 00:37:41,180 This is Evan. 420 00:37:41,180 --> 00:37:42,120 He's the hardware guy. 421 00:37:42,200 --> 00:37:43,100 I'm the software guy. 422 00:37:43,500 --> 00:37:45,140 Among the badge community, 423 00:37:45,560 --> 00:37:47,180 I'm kind of known for two things. 424 00:37:47,400 --> 00:37:50,380 One of them is a slavish devotion to Texas instruments. 425 00:37:52,140 --> 00:37:55,200 And the other is getting added as a friend on Facebook 426 00:37:55,200 --> 00:37:58,060 by the sales reps that are Chinese suppliers 427 00:37:58,060 --> 00:38:02,000 and also receiving inappropriately familiar e-mails 428 00:38:02,000 --> 00:38:03,260 about their vacation plans. 429 00:38:06,020 --> 00:38:07,780 So, yeah, dealing with China 430 00:38:07,780 --> 00:38:10,580 is a really unusual kind of experience to have. 431 00:38:10,580 --> 00:38:12,220 Apparently, especially for me. 432 00:38:13,360 --> 00:38:16,300 So, we're a little different in some ways 433 00:38:16,300 --> 00:38:19,120 than some of the other badge communities. 434 00:38:19,580 --> 00:38:21,100 We've been doing this for about five years. 435 00:38:21,340 --> 00:38:22,380 And from the outset, 436 00:38:22,580 --> 00:38:26,820 our goals have been mainly surrounding communities. 437 00:38:27,080 --> 00:38:31,400 So, we don't have hackability as a major goal of our badges, 438 00:38:31,420 --> 00:38:34,760 in part because our group is really a social subgroup 439 00:38:34,760 --> 00:38:37,280 of the technical conference. 440 00:38:37,500 --> 00:38:40,300 So, you know, there are some things that you can kind of do. 441 00:38:40,580 --> 00:38:42,720 And last year, we had some, you know, 442 00:38:42,740 --> 00:38:44,720 we had some daughter board capabilities. 443 00:38:44,840 --> 00:38:47,540 But that really doesn't ever factor into our design 444 00:38:47,540 --> 00:38:49,920 nearly as much as is our goal 445 00:38:49,920 --> 00:38:53,460 to make people interact with each other 446 00:38:53,460 --> 00:38:56,400 using the badge as the vector to accomplish that. 447 00:38:56,560 --> 00:38:58,520 And that's really what informs everything 448 00:38:58,520 --> 00:39:00,840 that we do as a team. 449 00:39:01,520 --> 00:39:04,840 Another thing that we've done every year 450 00:39:04,840 --> 00:39:06,320 that we're really proud of is 451 00:39:06,320 --> 00:39:07,880 our first year, we did 100 of these. 452 00:39:07,920 --> 00:39:09,200 That was five years ago, I think. 453 00:39:09,200 --> 00:39:12,200 And we didn't sell any of them. 454 00:39:12,260 --> 00:39:13,240 We just gave them all away. 455 00:39:13,460 --> 00:39:16,480 And we've started doing paid pre-reservations for them, 456 00:39:16,540 --> 00:39:19,280 mostly for people who book with our block in the hotel. 457 00:39:19,520 --> 00:39:23,080 But even though we do now do paid pre-reservations, 458 00:39:23,080 --> 00:39:25,480 every single year, we've given more away for free 459 00:39:25,480 --> 00:39:26,640 than we did the previous year. 460 00:39:26,820 --> 00:39:28,720 And that's something that we really want to continue 461 00:39:28,720 --> 00:39:33,140 being able to do is to have folks who are able to, 462 00:39:33,140 --> 00:39:35,540 you know, take part and get them for free. 463 00:39:36,820 --> 00:39:38,600 That was partly enabled this year 464 00:39:38,600 --> 00:39:39,180 by StarCraft. 465 00:39:39,200 --> 00:39:40,480 Starbucks sponsoring our badge. 466 00:39:40,600 --> 00:39:41,080 So that was great. 467 00:39:41,140 --> 00:39:42,560 If you happen to see anybody wandering around 468 00:39:42,560 --> 00:39:45,640 with a cup of coffee on their screen, 469 00:39:46,480 --> 00:39:48,460 that's because they're one of the sponsors. 470 00:39:48,660 --> 00:39:49,420 That's all they asked for. 471 00:39:49,480 --> 00:39:51,840 They wanted a special little icon to show up on the lights. 472 00:39:51,920 --> 00:39:53,840 They didn't even want anything on the board. 473 00:39:54,060 --> 00:39:54,620 So that was great. 474 00:39:55,420 --> 00:39:57,100 Our stack is built, 475 00:39:57,280 --> 00:39:59,320 well, really the experience is built around 476 00:39:59,320 --> 00:40:02,740 these really cool self-mating hermaphroditic connectors. 477 00:40:03,120 --> 00:40:05,640 It's an Amphenol part called a RotaConnect. 478 00:40:05,920 --> 00:40:08,100 And they're these surface mount parts 479 00:40:08,100 --> 00:40:09,180 that show up on the board. 480 00:40:09,200 --> 00:40:12,240 Which are technically only rated for 25 uses, 481 00:40:12,480 --> 00:40:13,580 but they work. 482 00:40:13,920 --> 00:40:15,660 And so you sort of, 483 00:40:15,680 --> 00:40:20,160 and so the entire basis of it is connecting them together. 484 00:40:20,540 --> 00:40:25,000 There's a little game based on this really irritating 485 00:40:25,000 --> 00:40:28,920 but still addicting web and phone game called Alchemy, 486 00:40:29,040 --> 00:40:31,020 where you start with a handful of elements 487 00:40:31,020 --> 00:40:33,580 and you combine them with each other to create new ones. 488 00:40:33,680 --> 00:40:34,920 And there's 44 different ones 489 00:40:34,920 --> 00:40:37,480 that can be explored by all the attendees. 490 00:40:37,600 --> 00:40:38,560 But you only have access 491 00:40:38,560 --> 00:40:40,560 to the most recent one that you've unlocked. 492 00:40:41,240 --> 00:40:44,080 Via the QueerCon app on phones, 493 00:40:44,120 --> 00:40:48,780 listens to Bluetooth beacons that come from the badge 494 00:40:48,780 --> 00:40:52,320 and hits a web service to populate 495 00:40:52,320 --> 00:40:54,060 what amounts to a leaderboard, 496 00:40:54,220 --> 00:40:57,040 even though it's collaborative rather than competitive. 497 00:40:57,080 --> 00:40:59,000 So there's not really any leaders. 498 00:40:59,160 --> 00:41:02,180 But in our suite, we've got a big screen up 499 00:41:02,180 --> 00:41:05,840 that shows a map of all of the elements that can be unlocked. 500 00:41:05,900 --> 00:41:08,440 But the ones that nobody's gotten so far are question marks. 501 00:41:08,560 --> 00:41:09,740 And whenever anybody gets one, 502 00:41:09,880 --> 00:41:11,640 they sort of start populating 503 00:41:11,640 --> 00:41:17,920 and you can see the map of how to connect them, more or less. 504 00:41:18,880 --> 00:41:21,840 Going back to my slavish devotion to Texas Instruments, 505 00:41:21,940 --> 00:41:25,860 we actually kind of also have a triple core badge. 506 00:41:26,220 --> 00:41:30,960 Our part is a, the main processor is an ARM Cortex-A3. 507 00:41:31,280 --> 00:41:34,640 It's an RF system on a chip from Texas Instruments 508 00:41:34,640 --> 00:41:36,140 called a CC2640. 509 00:41:36,340 --> 00:41:38,540 It's actually got two Cortex-A3s, 510 00:41:38,540 --> 00:41:39,800 two A0s on it as well, 511 00:41:39,920 --> 00:41:41,460 one to run the radio core 512 00:41:41,460 --> 00:41:44,780 and another that's like this low-power sensor controller 513 00:41:44,780 --> 00:41:46,960 that was too complicated for me to figure out how to use, 514 00:41:47,040 --> 00:41:47,920 so I don't use it at all. 515 00:41:48,040 --> 00:41:48,840 But it's on there. 516 00:41:49,320 --> 00:41:54,100 And then we also run a TI LED driver. 517 00:41:54,580 --> 00:41:56,280 And then we have, I think, 518 00:41:56,280 --> 00:42:00,240 15 channels of multiplexing across all of these LEDs. 519 00:42:00,480 --> 00:42:04,360 So there's, what's 49 plus 24 is 63. 520 00:42:05,880 --> 00:42:07,340 63 RGB LEDs. 521 00:42:07,460 --> 00:42:08,460 And they're just dumb LEDs. 522 00:42:08,540 --> 00:42:11,800 In a neat little 0606 form factor. 523 00:42:11,920 --> 00:42:13,640 Bought from China for 2.8 cents each. 524 00:42:16,780 --> 00:42:19,280 That's actually the vendor that added me on Facebook. 525 00:42:19,580 --> 00:42:21,260 We've used them a couple years in a row. 526 00:42:22,560 --> 00:42:23,220 They're great. 527 00:42:23,420 --> 00:42:23,920 They are. 528 00:42:24,040 --> 00:42:24,540 They're great. 529 00:42:24,740 --> 00:42:26,820 And they're very cheap, but kind of strange. 530 00:42:28,020 --> 00:42:30,420 Kind of talking about the production thing. 531 00:42:30,580 --> 00:42:33,540 Last year, I don't know if you saw the bloopers, 532 00:42:33,660 --> 00:42:37,200 the little squid badges with the aqua-colored LED eyes. 533 00:42:37,980 --> 00:42:38,520 Those are the ones that we used. 534 00:42:38,520 --> 00:42:41,120 Those eyes that made it, or the LEDs that made up the eyes, 535 00:42:41,300 --> 00:42:44,560 we bought all of them, as far as we were able to tell. 536 00:42:45,420 --> 00:42:47,400 We couldn't find a single U.S. supplier 537 00:42:47,400 --> 00:42:49,100 that had any left after we were done. 538 00:42:49,240 --> 00:42:50,800 And we couldn't even find a Chinese supplier 539 00:42:50,800 --> 00:42:52,420 that had any left after we were done. 540 00:42:52,480 --> 00:42:55,240 We had to kind of cobble them together from multiple sources. 541 00:42:55,940 --> 00:42:58,840 We bought Arrow, DigiKey, Mouser. 542 00:42:59,620 --> 00:43:00,060 Yeah. 543 00:43:00,280 --> 00:43:03,560 And then that weird Chinese distributor 544 00:43:03,560 --> 00:43:07,820 whose logo was the Windows logo rotated 90 degrees. 545 00:43:11,240 --> 00:43:13,180 Yeah, I was like, well, you know, 546 00:43:13,320 --> 00:43:16,280 it's worth the $60 to find out if they're actually real. 547 00:43:18,200 --> 00:43:19,740 So anything you want to add, Evan? 548 00:43:20,300 --> 00:43:20,740 Sure. 549 00:43:21,660 --> 00:43:25,000 So as they mentioned, you really want to start... 550 00:43:25,000 --> 00:43:26,780 Sorry, this is only my second time with a microphone. 551 00:43:26,940 --> 00:43:29,760 The other time was this morning, and I was hungover as fuck. 552 00:43:30,760 --> 00:43:31,400 Still am. 553 00:43:32,700 --> 00:43:33,140 So... 554 00:43:34,360 --> 00:43:34,800 Yeah. 555 00:43:36,000 --> 00:43:36,680 Overdoing it. 556 00:43:37,800 --> 00:43:41,500 So, yeah, whenever you think you need to start, 557 00:43:41,540 --> 00:43:42,940 start two months before that. 558 00:43:43,260 --> 00:43:45,720 So we'll start the design for next year, 559 00:43:45,820 --> 00:43:47,680 probably on Sunday, and... 560 00:43:48,780 --> 00:43:49,940 There it begins again. 561 00:43:51,020 --> 00:43:53,700 So other funny stories from this year is 562 00:43:53,700 --> 00:43:57,520 we had a really cool idea, and we'd been wanting to do it, 563 00:43:57,560 --> 00:43:59,040 and we were working really hard on it. 564 00:43:59,100 --> 00:44:01,960 I hadn't started designing at all in January, 565 00:44:02,280 --> 00:44:04,020 especially waiting on the kind of graphics. 566 00:44:04,480 --> 00:44:06,360 And we suddenly decided 567 00:44:06,360 --> 00:44:08,340 that that's going to be a low return on investment, 568 00:44:08,500 --> 00:44:09,260 going to be a lot of work. 569 00:44:09,380 --> 00:44:10,640 People aren't going to understand it. 570 00:44:10,760 --> 00:44:11,840 I can't tell you what it is, 571 00:44:11,880 --> 00:44:13,500 because we might actually end up doing it next year. 572 00:44:14,440 --> 00:44:16,980 So we scrapped everything in January 573 00:44:16,980 --> 00:44:18,200 and started over again. 574 00:44:18,420 --> 00:44:19,360 And this was sort of the, 575 00:44:19,500 --> 00:44:22,340 okay, this is just what I have sitting around in my brain. 576 00:44:22,700 --> 00:44:23,680 Let's just make it happen. 577 00:44:23,820 --> 00:44:24,760 I'd already started the schematics, 578 00:44:24,880 --> 00:44:26,500 because I kind of saw it failing. 579 00:44:28,200 --> 00:44:30,640 And so we cobbled that together pretty quickly, 580 00:44:30,740 --> 00:44:32,200 and it works fine. 581 00:44:33,700 --> 00:44:36,080 Another funny, to the lead time, 582 00:44:36,360 --> 00:44:38,180 problem is one of the resistors, 583 00:44:38,220 --> 00:44:40,020 which is a normal, like, 2K resistor. 584 00:44:40,520 --> 00:44:42,500 We went to order them, and it was like, 585 00:44:42,600 --> 00:44:43,900 oh, yeah, they're out of stock. 586 00:44:44,180 --> 00:44:45,140 Okay, what's the lead time? 587 00:44:45,440 --> 00:44:46,240 52 weeks. 588 00:44:46,820 --> 00:44:47,820 No, 54 weeks. 589 00:44:47,920 --> 00:44:48,200 I'm sorry. 590 00:44:48,420 --> 00:44:50,120 It's like, so if we order them now, 591 00:44:50,400 --> 00:44:52,400 they won't be here in time for next year. 592 00:44:53,180 --> 00:44:53,580 Good. 593 00:44:53,780 --> 00:44:54,060 Okay. 594 00:44:54,180 --> 00:44:55,360 So, like, sometime next year, 595 00:44:55,400 --> 00:44:57,100 we're going to get a little packet of some LEDs, 596 00:44:57,340 --> 00:44:58,720 or some resistors, 597 00:44:58,760 --> 00:45:00,240 and wonder where the hell that came from. 598 00:45:01,980 --> 00:45:04,340 A couple things in terms of kind of process 599 00:45:04,340 --> 00:45:06,340 of developing these things. 600 00:45:06,360 --> 00:45:07,780 Some people touched on this, 601 00:45:07,880 --> 00:45:11,420 but we typically go through a handful of designs 602 00:45:11,420 --> 00:45:14,440 that have nothing to do visually with the final design. 603 00:45:14,720 --> 00:45:16,940 So we'll typically buy an evaluation board 604 00:45:16,940 --> 00:45:20,420 of whatever chip we've wound up deciding to use, 605 00:45:20,560 --> 00:45:22,340 and then essentially build a development board 606 00:45:22,340 --> 00:45:25,140 that can plug into it using breakaway headers 607 00:45:25,140 --> 00:45:28,540 and just hookup wire to validate it electrically. 608 00:45:28,760 --> 00:45:30,820 And then, as of the last couple of years, 609 00:45:30,880 --> 00:45:33,160 we've also been doing orders of boards 610 00:45:33,160 --> 00:45:35,340 that we have no intention of actually assembling, 611 00:45:35,340 --> 00:45:38,240 just in order to test out different visual elements. 612 00:45:38,380 --> 00:45:40,240 So we actually ordered one of these 613 00:45:40,240 --> 00:45:44,440 with all four corners having different designs on them, 614 00:45:44,500 --> 00:45:45,840 just so we could sort of evaluate 615 00:45:45,840 --> 00:45:47,700 which ones looked good or not. 616 00:45:48,200 --> 00:45:50,920 There's a shop, Crypto Privacy Village, 617 00:45:51,000 --> 00:45:52,840 uses them for all of their assembly. 618 00:45:53,040 --> 00:45:55,180 We use them for prototypes called PCBWay, 619 00:45:55,300 --> 00:46:00,100 and they are faster than any U.S. shop that we've used. 620 00:46:00,220 --> 00:46:01,340 You can order... 621 00:46:01,340 --> 00:46:02,640 You can make groovers on Sunday, 622 00:46:02,780 --> 00:46:04,460 get them in your hands Friday morning. 623 00:46:04,680 --> 00:46:05,000 Yeah. 624 00:46:05,340 --> 00:46:06,280 For like five bucks. 625 00:46:06,520 --> 00:46:06,760 Yeah. 626 00:46:07,060 --> 00:46:09,020 Well, it's $25 shipping, but... 627 00:46:09,020 --> 00:46:09,520 Well, yeah. 628 00:46:11,180 --> 00:46:13,440 So it'd be nice to send them in batches. 629 00:46:13,740 --> 00:46:14,900 Yeah, but it's fantastic. 630 00:46:15,260 --> 00:46:17,260 They're a great tool for that. 631 00:46:17,380 --> 00:46:18,700 I mean, it's cheaper and faster 632 00:46:18,700 --> 00:46:21,120 even than using one of the batch services 633 00:46:21,120 --> 00:46:23,080 based in the U.S. like Osh Park 634 00:46:23,080 --> 00:46:25,720 or batch PCB before them and so on. 635 00:46:27,360 --> 00:46:27,800 Cool. 636 00:46:28,120 --> 00:46:28,720 All right. 637 00:46:29,120 --> 00:46:29,920 Want to try that? 638 00:46:32,360 --> 00:46:33,040 All right. 639 00:46:33,260 --> 00:46:35,080 So I guess there's a new event. 640 00:46:35,340 --> 00:46:36,520 There's a new event at DEFCON this year 641 00:46:36,520 --> 00:46:37,840 called Whose Slide Is It Anyway? 642 00:46:38,660 --> 00:46:40,960 Where you present someone else's slides 643 00:46:40,960 --> 00:46:43,740 and you have no idea what they are. 644 00:46:43,940 --> 00:46:46,100 I have sort of seen these in advance, 645 00:46:46,240 --> 00:46:48,820 so we'll just try to BS our way. 646 00:46:49,340 --> 00:46:51,360 You know, some people... 647 00:46:52,200 --> 00:46:53,060 I don't know. 648 00:46:53,440 --> 00:46:55,420 One of them actually designed 649 00:46:55,420 --> 00:46:57,540 the original Crypto Privacy Village badge 650 00:46:57,540 --> 00:46:59,460 because that guy, 651 00:46:59,600 --> 00:47:01,420 he was very interested in doing a badge 652 00:47:01,420 --> 00:47:03,920 and then we tried to get him to do last year's 653 00:47:03,920 --> 00:47:05,200 and he's like, no, I'm doing Bender, 654 00:47:05,200 --> 00:47:06,380 instead, so whatever. 655 00:47:06,740 --> 00:47:07,300 Boop. 656 00:47:08,540 --> 00:47:09,300 All right. 657 00:47:09,480 --> 00:47:12,260 These were the guys who suggested 658 00:47:12,260 --> 00:47:14,760 the BMD 300 with BLE to talk to everyone. 659 00:47:14,980 --> 00:47:15,700 It does BLE. 660 00:47:15,840 --> 00:47:18,060 It has, you know, a nice, fancy 661 00:47:19,480 --> 00:47:21,820 128 by 128 color LCD 662 00:47:21,820 --> 00:47:24,620 that can do like 20 frames per second of video. 663 00:47:25,700 --> 00:47:27,100 That is pure BS. 664 00:47:28,480 --> 00:47:31,020 They actually were going to use 665 00:47:31,020 --> 00:47:34,220 the APA 5050 LEDs, 666 00:47:35,200 --> 00:47:38,960 but they melted in the LED-free process 667 00:47:38,960 --> 00:47:42,140 and actually the WS2812Bs did not, 668 00:47:42,340 --> 00:47:45,500 so they had to replace that at the last minute. 669 00:47:46,640 --> 00:47:48,540 Slow power, has SD card, 670 00:47:50,060 --> 00:47:51,920 has lots of puzzles, blah, blah. 671 00:47:52,140 --> 00:47:54,380 They were hand-building all the LEDs. 672 00:47:55,380 --> 00:47:56,520 Oh, did they? 673 00:47:56,680 --> 00:47:59,060 Because the LED-free process wouldn't work for them 674 00:47:59,060 --> 00:47:59,840 because it was too hot, 675 00:47:59,920 --> 00:48:02,480 so they got them in as fully assembled boards 676 00:48:02,480 --> 00:48:03,980 without the WS2812Bs. 677 00:48:05,200 --> 00:48:06,220 Oh, right. 678 00:48:08,120 --> 00:48:09,240 Yeah, yeah. 679 00:48:11,140 --> 00:48:13,660 So they have this Ship 8 emulator, 680 00:48:13,860 --> 00:48:17,260 which is some like retro console emulator thingy. 681 00:48:17,460 --> 00:48:19,180 They have a mode on here 682 00:48:19,180 --> 00:48:21,880 that will actually connect to a bottle of vodka, 683 00:48:22,020 --> 00:48:25,740 which has a LED display on it that talks BLE, 684 00:48:25,860 --> 00:48:27,300 and they like reverse engineered that. 685 00:48:27,480 --> 00:48:30,600 It has some tickle-ish scripting language on there 686 00:48:30,600 --> 00:48:31,160 that it supports. 687 00:48:31,340 --> 00:48:31,640 Boop. 688 00:48:33,740 --> 00:48:34,580 You know, 689 00:48:34,580 --> 00:48:36,020 it was a long process. 690 00:48:36,140 --> 00:48:38,960 They started the day after DEF CON last year, 691 00:48:39,020 --> 00:48:39,720 and they, you know, 692 00:48:40,320 --> 00:48:43,000 they were a lot more on top of their game 693 00:48:43,000 --> 00:48:44,300 than we were. 694 00:48:44,880 --> 00:48:45,400 Boop. 695 00:48:47,360 --> 00:48:48,980 They have some tips. 696 00:48:49,080 --> 00:48:51,460 I guess they make fancy charts 697 00:48:51,460 --> 00:48:53,820 because they actually do that for a living. 698 00:48:54,020 --> 00:48:55,540 They're in like management hell. 699 00:48:59,240 --> 00:49:00,700 Yeah, and then Kickstarter, 700 00:49:01,000 --> 00:49:03,020 and yeah, stuff. 701 00:49:03,300 --> 00:49:04,480 You can read the tip. 702 00:49:05,040 --> 00:49:05,400 Boop. 703 00:49:05,900 --> 00:49:06,900 All right, that was it. 704 00:49:07,300 --> 00:49:07,660 Yay. 705 00:49:09,400 --> 00:49:10,820 Yeah, one more thing. 706 00:49:12,020 --> 00:49:14,480 So when I first sat down to do the software for this, 707 00:49:14,540 --> 00:49:15,680 when I got the screen working, 708 00:49:15,840 --> 00:49:16,760 I thought, how can I do video? 709 00:49:16,940 --> 00:49:18,620 And when I saw how much trouble it would be, 710 00:49:18,780 --> 00:49:20,180 I put it aside for a while. 711 00:49:20,300 --> 00:49:22,000 And then when we joined the Slack, 712 00:49:22,160 --> 00:49:24,600 where everybody was demoing their stuff and talking, 713 00:49:24,880 --> 00:49:28,000 I saw an early prototype of the Bender badge 714 00:49:28,000 --> 00:49:29,300 with a little video player on it. 715 00:49:29,300 --> 00:49:30,820 And I'm like, well, shit, now I have to make it work. 716 00:49:31,940 --> 00:49:34,040 So I went back and finally managed to do it, 717 00:49:34,040 --> 00:49:35,100 but it was a real big challenge. 718 00:49:35,180 --> 00:49:36,640 But that was what inspired me in the end. 719 00:49:36,960 --> 00:49:37,420 All right. 720 00:49:37,960 --> 00:49:39,780 All right, guys, so thank you guys very much. 721 00:49:39,860 --> 00:49:40,620 Thanks, badge makers. 722 00:49:40,780 --> 00:49:41,820 Thanks, badge buyers. 723 00:49:42,160 --> 00:49:44,360 Really, without you guys, honestly, 724 00:49:44,520 --> 00:49:45,500 what are we doing this for? 725 00:49:45,720 --> 00:49:46,660 If you think about it? 726 00:49:47,780 --> 00:49:50,860 Yeah, we got your money, and you have a badge.