1 00:00:05,125 --> 00:00:06,834 Hardware hacking with microcontrollers: A 2 00:00:06,834 --> 00:00:08,334 panel discussion. 3 00:00:08,334 --> 00:00:11,999 Moderating this panel and introduction to micro controllers and it seems 4 00:00:11,999 --> 00:00:15,000 like every seat is filled here. 5 00:00:17,626 --> 00:00:19,375 Pressure is on. 6 00:00:19,584 --> 00:00:22,667 I mean, I'm not wearing pants so this gets more interesting. 7 00:00:22,999 --> 00:00:27,292 And your crotch is right at the level of Joe's giant red fist. 8 00:00:29,876 --> 00:00:31,375 Excuse me a moment. 9 00:00:31,584 --> 00:00:33,584 It's going to be one of those panels. 10 00:00:33,584 --> 00:00:34,999 You don't want to know what's going 11 00:00:34,999 --> 00:00:37,083 on behind the podium. 12 00:00:37,667 --> 00:00:41,584 On my left we have FirmWarez. 13 00:00:43,751 --> 00:00:47,209 We have LosT who everybody should know. 14 00:00:47,209 --> 00:00:50,876 And I have a personal grudge against for number of years 15 00:00:50,876 --> 00:00:54,334 of mystery torture challenge, Smitty Halibut 16 00:00:54,334 --> 00:00:59,834 on the end and custom made hat and vest and Joe Grand. 17 00:00:59,834 --> 00:01:02,083 I'd like to correct that RenderMan. 18 00:01:02,083 --> 00:01:03,417 That's TV's Joe Grand. 19 00:01:05,542 --> 00:01:07,083 Discovery channel. 20 00:01:07,083 --> 00:01:08,999 Please, no applause, please. 21 00:01:09,792 --> 00:01:14,083 So we're basically here talking microcontrollers. 22 00:01:14,709 --> 00:01:17,999 I'm elated because I get to pick these guys' brains 23 00:01:17,999 --> 00:01:20,083 for an hour here. 24 00:01:20,083 --> 00:01:23,792 That's something I would have killed for at any other time. 25 00:01:24,417 --> 00:01:27,999 So basically, we're just going to go down and just sort 26 00:01:27,999 --> 00:01:30,999 of have everybody sort of introduce how they got 27 00:01:30,999 --> 00:01:34,709 into micros and just sort of their history. 28 00:01:34,792 --> 00:01:36,375 And we'll go from there. 29 00:01:36,999 --> 00:01:38,125 So FirmWarez. 30 00:01:38,125 --> 00:01:40,083 I started hacking code on an ATH800B. 31 00:01:40,626 --> 00:01:43,751 And a lot of you guys loved writing software 32 00:01:43,751 --> 00:01:47,918 but I wanted to do hardware stuff but I ended up in the day 33 00:01:47,918 --> 00:01:51,999 of 8051 microcontrollers and that was all for fun and ended 34 00:01:51,999 --> 00:01:56,083 up being an embedded systems near making my way to being VT 35 00:01:56,083 --> 00:02:00,959 for contract design house I love making hardware that does something 36 00:02:00,959 --> 00:02:05,292 and some of it has blown stuff up and some helped people live so 37 00:02:05,292 --> 00:02:07,375 a good balance. 38 00:02:12,459 --> 00:02:15,083 A 50/50 there. 39 00:02:15,083 --> 00:02:16,999 First foray was Motorola. 40 00:02:20,417 --> 00:02:22,999 We just dated ourselves, right. 41 00:02:22,999 --> 00:02:23,999 '80s called. 42 00:02:23,999 --> 00:02:27,250 They want their street cred back. 43 00:02:28,999 --> 00:02:31,999 I've just always been interested in how things work not just electronics 44 00:02:31,999 --> 00:02:33,999 but just things in general. 45 00:02:34,542 --> 00:02:36,292 I was always taking stuff apart and occasionally being able 46 00:02:36,292 --> 00:02:38,209 to put it back together. 47 00:02:38,209 --> 00:02:42,959 Usually things hacked to have different functionality. 48 00:02:42,959 --> 00:02:44,876 I've had numerous jobs over the years. 49 00:02:44,876 --> 00:02:47,334 I've worked for Parallax, I worked as a design consultant 50 00:02:47,334 --> 00:02:51,167 for companies doing embedded systems and specifically embedded 51 00:02:51,167 --> 00:02:55,709 systems security because that's where my interests lie. 52 00:02:56,999 --> 00:02:59,999 And you have experience with badge design. 53 00:02:59,999 --> 00:03:01,292 A little. 54 00:03:02,417 --> 00:03:05,918 Not as much as Joe. 55 00:03:06,250 --> 00:03:08,918 Yeah, so I'm Joe Grand. 56 00:03:08,999 --> 00:03:10,626 TV's Joe Grand. 57 00:03:10,626 --> 00:03:14,999 JOE GRAND: Thank you. 58 00:03:16,959 --> 00:03:22,918 I got started with computer in 1982 with Atari 300. 59 00:03:22,959 --> 00:03:25,876 My brother was interested in this stuff and 60 00:03:25,876 --> 00:03:29,250 he threw electronics and tools at me. 61 00:03:29,375 --> 00:03:32,999 Didn't literally hit me but I was exposed to a lot 62 00:03:32,999 --> 00:03:37,375 of electronics at an early age which was cool. 63 00:03:37,375 --> 00:03:40,250 So I first started getting involved in kind 64 00:03:40,250 --> 00:03:44,167 of nonmicrocontroller development. 65 00:03:44,167 --> 00:03:46,626 So making boards for red boxes and blue boxes and various phone 66 00:03:46,626 --> 00:03:48,417 phreaking stuff. 67 00:03:48,417 --> 00:03:50,709 The state of limitations is probably up. 68 00:03:50,709 --> 00:03:54,959 I got involved in embedded development 69 00:03:54,959 --> 00:04:00,209 in teenage years, I was Motorola HC05 guy 70 00:04:00,209 --> 00:04:05,083 and got involved with microchip picks 71 00:04:05,083 --> 00:04:08,999 and stayed with those. 72 00:04:08,999 --> 00:04:10,167 Motorola scaled off into free scale so I started 73 00:04:10,167 --> 00:04:11,792 using that. 74 00:04:11,918 --> 00:04:15,999 But, if you notice for DEF CON 14 badge was 75 00:04:15,999 --> 00:04:21,459 a microchip pick and 15 18 was all free scale. 76 00:04:21,667 --> 00:04:25,334 That's because they would talk me out to dinner more than microchip did. 77 00:04:26,709 --> 00:04:27,876 So. 78 00:04:27,876 --> 00:04:30,876 Fastest way to Joe Grand's heart is through his stomach. 79 00:04:30,876 --> 00:04:31,999 JOE GRAND: Free food. 80 00:04:31,999 --> 00:04:33,501 So remember that. 81 00:04:33,876 --> 00:04:38,334 So yeah, I sort of specialized in embedded system development 82 00:04:38,334 --> 00:04:42,501 of low end consumer and household devices. 83 00:04:42,501 --> 00:04:44,167 And then of course I do hardware security break 84 00:04:44,167 --> 00:04:46,792 stuff once in a while, too. 85 00:04:46,999 --> 00:04:49,918 Interesting side note, Joe, did you notice that some 86 00:04:49,918 --> 00:04:53,542 of the stuff you submitted to parallax for sail I was looking 87 00:04:53,542 --> 00:04:56,083 at them with Joe bare man. 88 00:04:56,083 --> 00:04:57,083 I know. 89 00:04:57,083 --> 00:05:01,584 That's how Joe and I met so before we met through DEF CON, 90 00:05:01,584 --> 00:05:07,792 I was looking at his products and I think it was the GPS module. 91 00:05:07,999 --> 00:05:11,501 When we were having before GPS was easy to deal with. 92 00:05:11,501 --> 00:05:13,375 And we were standing outside and was it John Williams 93 00:05:13,375 --> 00:05:16,209 busting your balls about something? 94 00:05:16,209 --> 00:05:17,751 I just remember the interaction we had 95 00:05:17,751 --> 00:05:20,584 and you were going to I think Ryan was at DEF CON 96 00:05:20,584 --> 00:05:23,999 and I was at DEF CON but I don't know if we knew each other, 97 00:05:23,999 --> 00:05:26,375 you work at Paralax, weird. 98 00:05:26,999 --> 00:05:29,876 Embedded world is a small community. 99 00:05:29,876 --> 00:05:30,918 And Ford for the record I do not work 100 00:05:30,918 --> 00:05:32,792 for them any more. 101 00:05:33,542 --> 00:05:40,667 The first question for everyone The funny thing 102 00:05:40,667 --> 00:05:46,999 is Smitty put this whole thing together. 103 00:05:48,209 --> 00:05:51,501 MARK "SMITTY" SMITH: I'm not sure how I convinced these people to do 104 00:05:51,501 --> 00:05:53,292 the panel with me. 105 00:05:53,584 --> 00:05:56,834 I'm Mark Smith or Smitty, I'm the only one who does not use 106 00:05:56,834 --> 00:05:59,834 microcontrollers professionally. 107 00:06:01,125 --> 00:06:02,999 I'm a lobbyist. 108 00:06:02,999 --> 00:06:05,250 I spend most of my time at@mail and not. 109 00:06:05,999 --> 00:06:10,667 Thank you for saying that and not the other A word. 110 00:06:21,334 --> 00:06:24,751 Got a bad reception on that one. 111 00:06:24,751 --> 00:06:27,999 But I got a start at I very I don't think age. 112 00:06:27,999 --> 00:06:33,999 Older sister got a TS80, I think the 8800 beats that. 113 00:06:34,751 --> 00:06:37,209 So I started on that doing basic. 114 00:06:37,209 --> 00:06:39,584 I didn't get into assembly until comment in the early 90s, 115 00:06:39,584 --> 00:06:43,125 my first micro controller work was on 801 but I didn't spend a lot 116 00:06:43,125 --> 00:06:46,792 of time on Intel because that assembly sticks. 117 00:06:49,751 --> 00:06:51,626 I'm a lobbyist. 118 00:06:51,626 --> 00:06:54,083 I'm network engineer and system administrator by trade 119 00:06:54,083 --> 00:06:57,459 and I do this on weekend for fun and I like making stuff 120 00:06:57,459 --> 00:06:59,709 and thing that work. 121 00:06:59,918 --> 00:07:02,125 I've been into electronics for a long time and then once 122 00:07:02,125 --> 00:07:05,083 microcontrollers started getting really cheap in the 90s, 123 00:07:05,083 --> 00:07:09,375 that's when I started add being programmability to my projects. 124 00:07:11,999 --> 00:07:14,999 And thanks for putting this panel together 125 00:07:14,999 --> 00:07:17,292 by the way, Smitty. 126 00:07:17,542 --> 00:07:21,626 (Cheers and applause) You're welcome. 127 00:07:21,876 --> 00:07:27,292 So everyone who is not playing with microcontrollers or just starting 128 00:07:27,292 --> 00:07:33,417 like I am, initially it's the question of where do you start? 129 00:07:33,417 --> 00:07:36,792 Because it is such a huge field and so many platforms, 130 00:07:36,792 --> 00:07:40,375 so many development tools out there. 131 00:07:40,626 --> 00:07:43,999 How the hell are you supposed to know where to begin. 132 00:07:44,584 --> 00:07:47,459 Some of you teach classes on this. 133 00:07:47,459 --> 00:07:51,459 What is a good place to start and learn this? 134 00:07:51,459 --> 00:07:53,083 Should we go down the line? 135 00:07:53,083 --> 00:07:54,501 Let's just talk. 136 00:07:54,667 --> 00:07:56,918 I think that's definitely like people come up to me and ask 137 00:07:56,918 --> 00:07:58,459 the same thing. 138 00:07:58,876 --> 00:08:00,626 There's so many different choices. 139 00:08:00,626 --> 00:08:03,999 And the good thing about nowadays is that there are so many choices. 140 00:08:03,999 --> 00:08:04,709 Back in the day if you wanted to get 141 00:08:04,709 --> 00:08:06,959 into the micro controller development, you had to get 142 00:08:06,959 --> 00:08:09,876 the individual microcontroller, deal with the development environment, 143 00:08:09,876 --> 00:08:13,125 add a bunch of external stuff just to get the platform up. 144 00:08:13,999 --> 00:08:17,999 And then you were writing like assembly. 145 00:08:18,709 --> 00:08:20,584 So now it's like you have Arduino platforms, 146 00:08:20,584 --> 00:08:23,999 you have propeller processor, Raspberry Pi, beagle bone. 147 00:08:25,501 --> 00:08:28,792 And all these things it depends on what you want to do 148 00:08:28,792 --> 00:08:31,792 with that device, because there's so many different 149 00:08:31,792 --> 00:08:35,999 flavors and so many different levels, if you're doing something basic, 150 00:08:35,999 --> 00:08:39,501 maybe use a basic stamp or Arduino, maybe raspberry pie which 151 00:08:39,501 --> 00:08:43,083 is Linux based so you can write Linux stuff. 152 00:08:43,083 --> 00:08:44,959 You don't have to be a hardware guy. 153 00:08:44,959 --> 00:08:47,501 You can just write code and have it work on the stuff. 154 00:08:51,959 --> 00:08:53,999 I agree it depends on what you're doing, 155 00:08:53,999 --> 00:08:57,999 but for somebody who's new, it depends on the tool chain for me. 156 00:08:58,167 --> 00:09:01,584 I can't take a n00b and drop them into certain tool chains that are 157 00:09:01,584 --> 00:09:04,542 like slamming your nuts in a door. 158 00:09:05,125 --> 00:09:10,751 Certain PGA development software packages, for lack of a better word, 159 00:09:10,751 --> 00:09:14,083 are not exactly user friendly. 160 00:09:14,083 --> 00:09:15,125 I think a lot of engineering tools suck anyway, 161 00:09:15,125 --> 00:09:18,125 so you have to find the one that sucks the least. 162 00:09:18,999 --> 00:09:21,542 Yeah, you mentioned the A word. 163 00:09:21,542 --> 00:09:25,125 But the one thing I think Arduino has above many of the other platforms it 164 00:09:25,125 --> 00:09:28,334 is meant for artists not engineers. 165 00:09:29,083 --> 00:09:33,918 So the thing that Arduino did that made it so popular is that 166 00:09:33,918 --> 00:09:39,501 they made everything so incredibly simple and trivial to use. 167 00:09:39,501 --> 00:09:41,209 You don't have to buy a programmer. 168 00:09:41,209 --> 00:09:43,083 The programmer is on the board itself. 169 00:09:43,083 --> 00:09:44,542 The only problem I had with the Arduino and 170 00:09:44,542 --> 00:09:46,751 the Arduino zealots. 171 00:09:46,999 --> 00:09:48,999 I don't have any problem with AVR. 172 00:09:48,999 --> 00:09:50,501 To be clear I'm not a zealot. 173 00:09:50,501 --> 00:09:51,501 I get that. 174 00:09:51,501 --> 00:09:52,999 The thing that frustrates me is they talk as though it's 175 00:09:52,999 --> 00:09:56,292 the first time it's been done because there was a lot of money, 176 00:09:56,292 --> 00:09:58,876 0'Reilly and the maker crowd started backing it 177 00:09:58,876 --> 00:10:01,417 and processing and environment. 178 00:10:02,584 --> 00:10:05,999 But they're not doing the basic stamp, yeah. 179 00:10:06,584 --> 00:10:09,792 So I mean I think really, as far as going that route, 180 00:10:09,792 --> 00:10:13,584 the stamp was really the first chip to do that. 181 00:10:13,584 --> 00:10:14,667 Yeah, that's true. 182 00:10:14,667 --> 00:10:18,209 The problem the stamp has had and I'm so are people out there, 183 00:10:18,209 --> 00:10:23,626 they haven't grown with the pay that user space has grown. 184 00:10:23,626 --> 00:10:26,542 And they're still charging 50 bucks for a basic stamp too. 185 00:10:26,542 --> 00:10:29,375 And you can't compete at that price point and actually have 186 00:10:29,375 --> 00:10:31,751 talked to Ken Gracie. 187 00:10:32,501 --> 00:10:34,125 I love the basic stamp. 188 00:10:34,125 --> 00:10:35,125 I do. 189 00:10:35,125 --> 00:10:37,083 On a number of occasions I've heard Joe say when 190 00:10:37,083 --> 00:10:42,167 I'm prototyping I grab basic things off the shelf but it's ridiculous 191 00:10:42,167 --> 00:10:46,417 to charge 50 bucks for that chip these days. 192 00:10:46,959 --> 00:10:49,375 If you're going to stay competitive as far as the stamp is concerned, 193 00:10:49,375 --> 00:10:52,083 you're going to need to lower the price on that. 194 00:10:52,083 --> 00:10:54,292 I don't mean to be airing dirty laundry but that's 195 00:10:54,292 --> 00:10:57,584 the kind of stuff you want to hear. 196 00:10:59,999 --> 00:11:04,709 People bash on Arduino on hackabay, Arduino, lame. 197 00:11:08,083 --> 00:11:11,999 There's a religious war just like open source 198 00:11:11,999 --> 00:11:15,209 and Linux versus whatever. 199 00:11:15,209 --> 00:11:18,792 But Arduino for what it is it's good. 200 00:11:18,792 --> 00:11:22,459 If you want to get something done, there's lots of example code out there. 201 00:11:22,459 --> 00:11:24,584 There's lots of support from the community versus something 202 00:11:24,584 --> 00:11:26,834 like the basic stamp. 203 00:11:26,834 --> 00:11:29,083 You have community support you about you have support directly 204 00:11:29,083 --> 00:11:31,459 from parallax but the community support tends 205 00:11:31,459 --> 00:11:32,999 to be okay. 206 00:11:32,999 --> 00:11:34,501 My only problem with Arduino is that a lot 207 00:11:34,501 --> 00:11:38,083 of the open source stuff that's out there, the modules people write, 208 00:11:38,083 --> 00:11:40,792 nobody's validating that stuff. 209 00:11:40,792 --> 00:11:42,083 You don't know if it's good. 210 00:11:42,083 --> 00:11:44,125 Paint by numbers, plug stuff together. 211 00:11:44,125 --> 00:11:46,083 Great for prototyping but once you're done if it's a one 212 00:11:46,083 --> 00:11:48,334 off project, that's fine. 213 00:11:48,334 --> 00:11:49,834 If you want to move it forward, that's when you have 214 00:11:49,834 --> 00:11:51,501 to start going through and making sure it's 215 00:11:51,501 --> 00:11:52,999 actually good. 216 00:11:53,292 --> 00:11:55,083 But with the subject on the subject 217 00:11:55,083 --> 00:11:59,083 of how do you get started, though, I would rather have somebody who 218 00:11:59,083 --> 00:12:02,501 is new to the hobby get an Arduino for 30 bucks, plug it 219 00:12:02,501 --> 00:12:06,334 in with a USB cables, load up the blink code, get it functioning 220 00:12:06,334 --> 00:12:09,083 and go that's fucking awesome. 221 00:12:10,334 --> 00:12:13,167 Look at the blink code for Arduino and OS2. 222 00:12:13,167 --> 00:12:16,334 I can put my mom in front of a OS2 and she'll understand it. 223 00:12:16,334 --> 00:12:18,999 Am I mom did not do computers. 224 00:12:19,125 --> 00:12:21,918 Or the board of education stuff. 225 00:12:22,209 --> 00:12:25,125 So I'm not trying like I said, I'm not a zealot I'm not trying to put 226 00:12:25,125 --> 00:12:28,292 the Arduino in instead of basic stamp stuff. 227 00:12:28,292 --> 00:12:29,751 Definitely not doing that. 228 00:12:31,459 --> 00:12:34,250 So I guess we need to make two categories 229 00:12:34,250 --> 00:12:38,083 of the simpler consumer targeted microcontrollers versus 230 00:12:38,083 --> 00:12:42,999 the industrial I work on this shit all day, I have the programmers and 231 00:12:42,999 --> 00:12:46,417 the you know, I can write together. 232 00:12:46,999 --> 00:12:50,999 Smitty just as a matter of confession, I've sold Arduinos 233 00:12:50,999 --> 00:12:53,083 at DEF CON before. 234 00:12:53,626 --> 00:12:57,292 I'm not anti Arduino, what I'm anti is the attitude of this 235 00:12:57,292 --> 00:13:00,334 is the holy grail come down from high to save me 236 00:13:00,334 --> 00:13:03,501 from my microcontroller ignorance. 237 00:13:05,959 --> 00:13:09,999 Or the idea that anything else is way too difficult. 238 00:13:09,999 --> 00:13:11,209 You know, I don't know how many guys think 239 00:13:11,209 --> 00:13:13,250 Arduino is great because I don't need 240 00:13:13,250 --> 00:13:16,709 an in circuit programmer until it blows up. 241 00:13:17,167 --> 00:13:19,959 What's an in circuit programmer, a piece of hardware you plug it 242 00:13:19,959 --> 00:13:21,667 in and say program. 243 00:13:21,667 --> 00:13:24,876 Not that hard for people who is used to pushing packets around a network 244 00:13:24,876 --> 00:13:26,375 to use that. 245 00:13:26,751 --> 00:13:29,542 TI's MS3 chain is getting perfect easy good in terms 246 00:13:29,542 --> 00:13:31,459 of being usable. 247 00:13:31,999 --> 00:13:35,459 But you can't have her load up MSP30. 248 00:13:36,459 --> 00:13:39,167 Arduino is good for that. 249 00:13:39,167 --> 00:13:42,167 One of these days we'll let Render ask another question. 250 00:13:42,751 --> 00:13:46,709 I don't want this to be me asking all questions. 251 00:13:46,709 --> 00:13:47,876 There's a microphone. 252 00:13:49,083 --> 00:13:55,751 Ask us questions or we'll just keep bitching all day RenderMan one. 253 00:14:00,501 --> 00:14:06,292 One of the biggest difficulty I've had getting meeker into it is you get 254 00:14:06,292 --> 00:14:09,999 the idea and you want to build it now I've got 255 00:14:09,999 --> 00:14:13,083 to do spark phone Ikea order and you have 256 00:14:13,083 --> 00:14:16,209 to wait weeks I'm in Canada. 257 00:14:16,375 --> 00:14:18,542 That's your problem. 258 00:14:18,751 --> 00:14:20,999 I'm cheap and don't want to pay FedEx. 259 00:14:21,167 --> 00:14:25,667 One of the things I used to tell students you can get engineering 260 00:14:25,667 --> 00:14:29,999 sample from microchip than just about anywhere. 261 00:14:30,083 --> 00:14:31,501 That's the question. 262 00:14:31,876 --> 00:14:34,667 Inevitably you end up with parts bins. 263 00:14:34,709 --> 00:14:38,667 But the problem is sinking a huge amount of money into that. 264 00:14:38,667 --> 00:14:41,459 Is there shortcuts or ways like engineering samples 265 00:14:41,459 --> 00:14:43,751 to get base stuff. 266 00:14:43,751 --> 00:14:44,999 Constantly harvest. 267 00:14:45,083 --> 00:14:48,083 Pretend you're a squirrel and just start gathering stuff. 268 00:14:49,792 --> 00:14:51,959 If vendors think they're going to make money, 269 00:14:51,959 --> 00:14:54,125 they'll give you free stuff. 270 00:14:54,125 --> 00:14:55,417 But, if they think you're doing something 271 00:14:55,417 --> 00:14:58,626 cool they'll also give you free stuff because it gives them something 272 00:14:58,626 --> 00:15:02,083 they can promote and write about on Twitter or whatever. 273 00:15:02,250 --> 00:15:03,999 To Geoff a few samples out to a lobbyist isn't going 274 00:15:03,999 --> 00:15:05,876 to kill them hearing. 275 00:15:08,542 --> 00:15:11,083 I live in San Francisco and there's a weird cycle 276 00:15:11,083 --> 00:15:14,999 of people put stuff on the street and you can take stuff and put other 277 00:15:14,999 --> 00:15:16,999 stuff on the street. 278 00:15:16,999 --> 00:15:17,999 It's weird. 279 00:15:17,999 --> 00:15:20,918 Sometimes it makes neighborhoods look really shitty. 280 00:15:21,125 --> 00:15:22,584 Sometimes it's awesome if you get there 281 00:15:22,584 --> 00:15:24,999 before the city comes and picks stuff up. 282 00:15:25,125 --> 00:15:26,999 Oh, a printer. 283 00:15:29,876 --> 00:15:32,459 Go into local surplus stores. 284 00:15:32,584 --> 00:15:35,918 You don't have to pay full price for things but even if you do, 285 00:15:35,918 --> 00:15:37,999 full price is like pennies or a few dollars 286 00:15:37,999 --> 00:15:40,999 for stuff unless you live in Canada. 287 00:15:40,999 --> 00:15:41,792 And make friends with engineers 288 00:15:41,792 --> 00:15:46,083 because all of my engineers had desks that were filled with sample. 289 00:15:46,167 --> 00:15:49,375 Oh, this part is so cool I can call up the distributor and get it. 290 00:15:49,375 --> 00:15:50,999 But scavenging parts. 291 00:15:50,999 --> 00:15:52,709 That's how I learned how to solder. 292 00:15:53,083 --> 00:15:56,125 It's harder these days with the service mount stuff. 293 00:15:56,375 --> 00:15:58,542 Back in the day that's how I got parts. 294 00:15:58,542 --> 00:16:00,999 Worst case Radio Shack. 295 00:16:00,999 --> 00:16:03,751 I know they've had I'm dead serious, they've got a really bad reputation 296 00:16:03,751 --> 00:16:06,334 over the last 5 or 10 years when they got rid of a lot 297 00:16:06,334 --> 00:16:09,584 of their electronics stuff but they kept that one little section 298 00:16:09,584 --> 00:16:13,250 where you could get resistors and capacitors and stuff. 299 00:16:13,501 --> 00:16:16,083 Now it's like 9/10ths of the store is selling cell phones 300 00:16:16,083 --> 00:16:18,792 but there's that one drawer. 301 00:16:18,999 --> 00:16:20,751 Last resort. 302 00:16:20,959 --> 00:16:23,417 So 8:30 at night my DSL modem just died 303 00:16:23,417 --> 00:16:26,626 and I have an exploded capacitor. 304 00:16:27,876 --> 00:16:31,751 I could still go down to Radio Shack and buy that 660 305 00:16:31,751 --> 00:16:35,542 micro capacitor to get my Internet back online so my 306 00:16:35,542 --> 00:16:38,918 wife can watch game of thrones. 307 00:16:40,459 --> 00:16:42,417 So Radio Shack. 308 00:16:42,417 --> 00:16:46,542 They're also getting into sell things I got a fan out here. 309 00:16:46,542 --> 00:16:48,999 They're also getting into selling microcontrollers 310 00:16:48,999 --> 00:16:53,417 like the A word and basic stamp and a lot of modules. 311 00:16:53,417 --> 00:16:58,751 I totally didn't mean for you to start saying the A word. 312 00:16:58,751 --> 00:16:59,876 (Laughter) But they're not the cheapest around, 313 00:16:59,876 --> 00:17:02,999 but when you need it right bloody now, they're there. 314 00:17:03,792 --> 00:17:06,918 The fact they have modules. 315 00:17:07,250 --> 00:17:09,167 That's recent and I love it. 316 00:17:09,167 --> 00:17:11,876 Hardware has come full circle. 317 00:17:12,751 --> 00:17:19,459 We built heathkit and it died out when computers got big. 318 00:17:19,459 --> 00:17:22,125 Computers nearly went away as a hobby. 319 00:17:22,125 --> 00:17:25,292 Why do I want to do this hard stuff and get chloride 320 00:17:25,292 --> 00:17:29,918 on my hands when I can write code and compile and compile. 321 00:17:29,918 --> 00:17:30,918 It fucked up. 322 00:17:30,999 --> 00:17:34,459 It didn't cost you anything it's moving more with the advent 323 00:17:34,459 --> 00:17:37,125 of FPGAs coming down in price. 324 00:17:37,375 --> 00:17:40,209 Just recompile the hardware. 325 00:17:40,876 --> 00:17:44,209 Electronics as a hobby, more of a system level hobby where some 326 00:17:44,209 --> 00:17:47,083 of us still build our own boards. 327 00:17:47,083 --> 00:17:50,876 There's so many modules you don't have to do that. 328 00:17:50,876 --> 00:17:52,083 It's true, like LEGOs. 329 00:17:52,167 --> 00:17:54,999 AUDIENCE: What do you do whenever you're 330 00:17:54,999 --> 00:17:59,083 up against a particularly crappy tool chain? 331 00:17:59,083 --> 00:18:01,542 What's your method of attack to get past that? 332 00:18:01,542 --> 00:18:02,626 Cry. 333 00:18:02,626 --> 00:18:04,125 A lot of mountain dew. 334 00:18:04,250 --> 00:18:10,667 I think it depends, I've had crappy tool chains. 335 00:18:11,083 --> 00:18:12,999 Sometimes you're stuck. 336 00:18:12,999 --> 00:18:17,417 If that's all vendor offers you, mile have contact and say you're tool 337 00:18:17,417 --> 00:18:20,834 chain sucks but most of the time I'm dealing 338 00:18:20,834 --> 00:18:23,999 with the crappy tool chain and when I talk 339 00:18:23,999 --> 00:18:29,083 about crappy tool chain what I've encountered is the tool crash or it 340 00:18:29,083 --> 00:18:34,334 will disconnect from the debugger or something annoying that you have 341 00:18:34,334 --> 00:18:36,125 to restart. 342 00:18:36,501 --> 00:18:38,292 And that's I think the nature of engineering tools 343 00:18:38,292 --> 00:18:41,250 because they're designed for engineers and they're not designed 344 00:18:41,250 --> 00:18:43,999 for the mass public so they don't go through the testing 345 00:18:43,999 --> 00:18:46,918 as like a normal piece of software would. 346 00:18:47,083 --> 00:18:49,626 And yeah, I mean, they're just annoying and sometimes 347 00:18:49,626 --> 00:18:51,999 crappy, but as long as they end up compiling properly 348 00:18:51,999 --> 00:18:54,501 and working properly, sometimes. 349 00:18:55,250 --> 00:18:57,918 On the hardware sigh I don't use Kai cat any more, 350 00:18:57,918 --> 00:19:00,083 they crashed too many times. 351 00:19:01,209 --> 00:19:02,792 Same guy. 352 00:19:03,167 --> 00:19:09,083 I'll buy you a beer afterwards. 353 00:19:09,083 --> 00:19:10,375 Same guy. 354 00:19:14,709 --> 00:19:19,083 Did you hear when I was doing stuff for this year I used the free version 355 00:19:19,083 --> 00:19:21,375 of eagle because I wanted everyone here 356 00:19:21,375 --> 00:19:25,083 to be able to recreate the badges with free software and I found 357 00:19:25,083 --> 00:19:27,709 an error in eagle that says too many pixels 358 00:19:27,709 --> 00:19:31,999 in the Y direction and it says it in German on the bottom. 359 00:19:32,334 --> 00:19:36,918 So I took the work and rotated it in the other direction and it doesn't 360 00:19:36,918 --> 00:19:39,999 exist in the other directions. 361 00:19:39,999 --> 00:19:42,334 Now everyone can make their own black badges. 362 00:19:43,542 --> 00:19:48,209 If they can do that, they deserve a black badge. 363 00:19:49,999 --> 00:19:51,792 Next question? 364 00:19:51,999 --> 00:19:56,250 Yeah, so I wanted to ask you guys what do you think 365 00:19:56,250 --> 00:20:00,417 the best chip is for, like, DSP, like, audio D. 366 00:20:00,417 --> 00:20:02,999 Religious war. 367 00:20:03,999 --> 00:20:05,042 Start. 368 00:20:05,042 --> 00:20:06,042 DSP audio. 369 00:20:06,042 --> 00:20:10,209 Not the best but the best to start with for DSP and audio stuff. 370 00:20:12,751 --> 00:20:14,459 I got nothing. 371 00:20:14,459 --> 00:20:16,209 The one you already have code for. 372 00:20:16,209 --> 00:20:18,999 I mean, you know, from a professional's viewpoint. 373 00:20:18,999 --> 00:20:20,000 Oh, this one is cheaper. 374 00:20:20,000 --> 00:20:21,000 This is faster. 375 00:20:21,584 --> 00:20:24,125 But how does that equate to a few hundred hours 376 00:20:24,125 --> 00:20:26,542 of engineering time. 377 00:20:26,542 --> 00:20:27,999 If you've got code, if you can code what you want to do, 378 00:20:27,999 --> 00:20:30,834 that whole project, where do I start? 379 00:20:30,834 --> 00:20:33,542 Find a project that's similar to where you want to go. 380 00:20:33,542 --> 00:20:34,999 Or find a vendor that has reference code 381 00:20:34,999 --> 00:20:38,334 or application note for where you want to go. 382 00:20:38,334 --> 00:20:40,542 Make really good friends with the FAEs. 383 00:20:40,542 --> 00:20:42,999 The only experience I have with DSP stuff 384 00:20:42,999 --> 00:20:46,501 is the DEF CON 17 damage had a controller so it was 385 00:20:46,501 --> 00:20:52,542 a microcontrollers that had DSP functionality and that's all I know of. 386 00:20:54,375 --> 00:20:57,959 The tool said it's not open source but it's free. 387 00:20:58,626 --> 00:21:01,417 And which is to me, fine, good enough. 388 00:21:01,417 --> 00:21:03,918 It's even better than open source if it's free. 389 00:21:04,999 --> 00:21:08,250 There was one thing called the processor expert and you could 390 00:21:08,250 --> 00:21:10,709 select modules and say I want to implement 391 00:21:10,709 --> 00:21:13,834 an FFT and you double click and there's a GUI and set it 392 00:21:13,834 --> 00:21:15,999 up and that will configure the DSP side 393 00:21:15,999 --> 00:21:19,417 of things and you can do mode um old school 1200 baud so that's 394 00:21:19,417 --> 00:21:21,834 a good place to start but I'm sure there's 395 00:21:21,834 --> 00:21:25,501 a reference design somewhere or project that does something similar 396 00:21:25,501 --> 00:21:27,876 to what you want to do. 397 00:21:27,999 --> 00:21:30,959 I do a lot of audio work, audio electronics stuff as well 398 00:21:30,959 --> 00:21:34,501 as digital and that's generally where I'll start out. 399 00:21:34,501 --> 00:21:37,125 I look for different chips and look for they'll have the application note 400 00:21:37,125 --> 00:21:39,999 in there of this is a typical application for this chip 401 00:21:39,999 --> 00:21:42,334 and I'll try to find one that matches closely what 402 00:21:42,334 --> 00:21:43,999 I try to do. 403 00:21:44,209 --> 00:21:46,999 Do you have to do that standing behind me? 404 00:21:46,999 --> 00:21:48,083 That looks awful. 405 00:21:50,584 --> 00:21:52,999 It sounds like render is peeing. 406 00:21:53,250 --> 00:21:57,167 AUDIENCE: Is there like a resource that I can go 407 00:21:57,167 --> 00:22:01,959 to to kind of, like, browse through all these different chip 408 00:22:01,959 --> 00:22:04,959 examples and -- Google. 409 00:22:04,959 --> 00:22:06,999 There's this thing called the Internet. 410 00:22:06,999 --> 00:22:09,459 Each of the different vendors have going to have their own site and list 411 00:22:09,459 --> 00:22:14,083 of things and they're going to talk about why they're chip is awesome. 412 00:22:14,083 --> 00:22:14,999 They don't necessarily say better than the competitor 413 00:22:14,999 --> 00:22:16,626 because they don't want to acknowledge that 414 00:22:16,626 --> 00:22:18,459 the competitor exists but they'll say we're awesome 415 00:22:18,459 --> 00:22:20,709 because we have all these things. 416 00:22:20,709 --> 00:22:21,999 And the competitor will say we're awesome 417 00:22:21,999 --> 00:22:24,209 because we have the same things, you look 418 00:22:24,209 --> 00:22:27,125 at the list and they're 90% overlap. 419 00:22:27,375 --> 00:22:30,334 See which one takes you out to dinner more. 420 00:22:34,334 --> 00:22:36,999 Have you used octo part? 421 00:22:38,417 --> 00:22:41,459 Yeah, it gives you data sheets but it's not as easy 422 00:22:41,459 --> 00:22:44,999 as like a parametric search on a vendor site. 423 00:22:45,334 --> 00:22:47,751 Octo part will tell you which distributors have stock 424 00:22:47,751 --> 00:22:52,334 of the current part you're I searching for and give you data sheets. 425 00:22:52,334 --> 00:22:55,959 But, if you search for DSP, you might see stuff, but go 426 00:22:55,959 --> 00:22:59,501 to digikey and do a search and organize by price 427 00:22:59,501 --> 00:23:02,709 or Mousers is much better. 428 00:23:06,334 --> 00:23:11,083 So other than the big dogs,Ikey, mouser, Janeco and places 429 00:23:11,083 --> 00:23:17,125 like electronics are there any other major houses you order from? 430 00:23:17,999 --> 00:23:22,334 I use Ikey primarily. 431 00:23:22,459 --> 00:23:26,250 They just started doing first class mail shipping so you can pay 2 bucks 432 00:23:26,250 --> 00:23:30,083 and depending where you live get it within a day or two. 433 00:23:30,667 --> 00:23:31,999 Doesn't work for me. 434 00:23:31,999 --> 00:23:33,751 You guys don't count. 435 00:23:33,751 --> 00:23:36,334 The fun thing about digikey for the longest time. 436 00:23:37,417 --> 00:23:39,250 I key, right? 437 00:23:39,292 --> 00:23:43,999 I complained and it got bigger and bigger and it used to come 438 00:23:43,999 --> 00:23:46,999 with stickers so you could tag the pages 439 00:23:46,999 --> 00:23:51,083 because there was so much shit in there. 440 00:23:51,083 --> 00:23:53,999 When they stopped making the catalogs I complained 441 00:23:53,999 --> 00:23:58,334 because I'm against the trees I like something I can flip 442 00:23:58,334 --> 00:24:00,667 through and look. 443 00:24:00,667 --> 00:24:01,999 I used that catalog. 444 00:24:01,999 --> 00:24:04,375 That's the only way to find a connector. 445 00:24:04,751 --> 00:24:08,834 Try to find a connector on a damn parametric search. 446 00:24:12,709 --> 00:24:14,501 Next question? 447 00:24:14,501 --> 00:24:15,501 I'll out myself. 448 00:24:15,501 --> 00:24:16,501 I love my Arduino. 449 00:24:16,959 --> 00:24:18,501 I'm sure most of the people here are here 450 00:24:18,501 --> 00:24:21,375 because they got started on Arduino. 451 00:24:21,375 --> 00:24:22,792 Show of hands. 452 00:24:22,792 --> 00:24:23,792 Yeah. 453 00:24:23,792 --> 00:24:24,792 Who used Arduino. 454 00:24:24,792 --> 00:24:27,999 Who's going to admit to using the A word? 455 00:24:28,999 --> 00:24:33,250 I will. 456 00:24:33,250 --> 00:24:36,334 How many people their first experience was a basic stamp? 457 00:24:36,334 --> 00:24:37,501 How many was like pick? 458 00:24:37,959 --> 00:24:40,083 Really quickly, I want to interject this 459 00:24:40,083 --> 00:24:43,083 before you ask your question. 460 00:24:43,083 --> 00:24:46,709 My first experience with a pick was hacking your hex code 461 00:24:46,709 --> 00:24:49,709 from the DEF CON 14 badge. 462 00:24:49,709 --> 00:24:52,375 I was the only one who successfully reprogrammed that badge and I did not 463 00:24:52,375 --> 00:24:53,999 get picked. 464 00:24:54,918 --> 00:24:59,999 I'll have to review the contest entries. 465 00:24:59,999 --> 00:25:02,167 The guy with audio, this was cool. 466 00:25:03,375 --> 00:25:05,083 I'll admit. 467 00:25:08,999 --> 00:25:11,209 I'll review the notes. 468 00:25:12,626 --> 00:25:16,501 No, I've got MSP launch pad on tomorrow. 469 00:25:16,501 --> 00:25:18,459 I started on M bed 32 bit. 470 00:25:18,959 --> 00:25:20,083 That thing is awesome. 471 00:25:20,999 --> 00:25:25,250 Going back to the Arduino and lobbyist artist thing. 472 00:25:25,250 --> 00:25:27,626 Spark fun, ate A fruit. 473 00:25:28,999 --> 00:25:31,417 Love spark fun. 474 00:25:31,417 --> 00:25:32,417 Good stuff. 475 00:25:32,417 --> 00:25:33,834 The drop in hardware. 476 00:25:33,834 --> 00:25:37,792 The LEGO I can drop the code in and compile it, run it there, 477 00:25:37,792 --> 00:25:42,834 do you think that's devaluing the industry at all. 478 00:25:42,834 --> 00:25:43,834 Not at all. 479 00:25:44,083 --> 00:25:46,167 I love the I'm sorry. 480 00:25:46,542 --> 00:25:50,083 I know the guys at spark fun and they love their stuff. 481 00:25:50,167 --> 00:25:52,125 It shows up all the time. 482 00:25:52,125 --> 00:25:53,125 I think it's great. 483 00:25:53,125 --> 00:25:54,959 I think it's happening. 484 00:25:54,959 --> 00:25:57,751 People who wouldn't be able to accomplish certain projects 485 00:25:57,751 --> 00:26:02,083 because it's making it LEGO slap the pieces together. 486 00:26:02,083 --> 00:26:03,999 Especially thinking the lilypad with the folks doing 487 00:26:03,999 --> 00:26:06,999 the clothing hacks and stuff like that. 488 00:26:06,999 --> 00:26:09,999 I think it's opened that world to people who otherwise couldn't get 489 00:26:09,999 --> 00:26:13,667 throughout barrier in the same we the Arduino and stamp both made 490 00:26:13,667 --> 00:26:17,999 the pick and ABRs accessible to people who weren't otherwise. 491 00:26:17,999 --> 00:26:22,999 If I can interject a question on that, one of the big things I've always found 492 00:26:22,999 --> 00:26:26,792 is tinkering with stuff with the goggles you've built it 493 00:26:26,792 --> 00:26:30,459 with basic stamp or Arduino or whatever. 494 00:26:30,584 --> 00:26:34,876 Taking it to that next step, I no longer need all the accessories, 495 00:26:34,876 --> 00:26:37,250 I just need the chip. 496 00:26:37,250 --> 00:26:41,584 My problem has always been where the hell do I figure out how to do that? 497 00:26:42,125 --> 00:26:46,250 Are you trying to make a product or stuff. 498 00:26:46,584 --> 00:26:47,959 Just one off stuff. 499 00:26:48,083 --> 00:26:50,751 Like a more refined things. 500 00:26:50,999 --> 00:26:52,999 Not a stack of shields. 501 00:26:53,542 --> 00:26:57,626 (Talking simultaneously.) I want to answer that but I want to say 502 00:26:57,626 --> 00:27:00,292 with with respect to fruit and spark fun and 503 00:27:00,292 --> 00:27:04,375 all these places, it doesn't only help the people getting into it 504 00:27:04,375 --> 00:27:06,501 and the hobbyists. 505 00:27:13,501 --> 00:27:16,167 It make break outboards and saves a ton of time. 506 00:27:17,334 --> 00:27:19,083 It definitely doesn't hurt. 507 00:27:19,083 --> 00:27:21,709 It's great for prototyping as well. 508 00:27:22,083 --> 00:27:25,375 I want this particular chip with this troller and see 509 00:27:25,375 --> 00:27:28,334 if I can make this product work. 510 00:27:28,334 --> 00:27:30,626 I'm going to do it first with these shields. 511 00:27:30,626 --> 00:27:34,459 Slap it together and say now I'm going to proof the concept. 512 00:27:34,459 --> 00:27:36,876 I'm going to design and fab a board that has just 513 00:27:36,876 --> 00:27:41,876 the components I need instead of a stack of shields this tall. 514 00:27:42,167 --> 00:27:44,751 That's what Render, you're asking. 515 00:27:44,751 --> 00:27:48,626 How do you distill it from all the crap. 516 00:27:48,999 --> 00:27:51,250 Render, you hire me. 517 00:27:51,667 --> 00:27:53,959 But, if you don't want to pay money 518 00:27:53,959 --> 00:27:56,918 at that point you need to look at schematics 519 00:27:56,918 --> 00:28:00,584 of every individual model, see which pieces you're using 520 00:28:00,584 --> 00:28:05,083 and I have a big prototype of all the crap and I identify which parts 521 00:28:05,083 --> 00:28:06,999 are useful. 522 00:28:06,999 --> 00:28:08,709 Create a smaller schematic and just get 523 00:28:08,709 --> 00:28:13,083 a board layout package that whatever you're familiar with. 524 00:28:13,083 --> 00:28:17,083 If you're not, use Kai cat or dip trace or whatever. 525 00:28:17,083 --> 00:28:18,083 Eagle. 526 00:28:18,083 --> 00:28:19,083 I use Altea. 527 00:28:19,792 --> 00:28:21,792 There's a trial version. 528 00:28:24,083 --> 00:28:27,125 Use OS8 park.com to get your boards fab'd, it's 529 00:28:27,125 --> 00:28:30,417 a dollar a square inch or something. 530 00:28:35,999 --> 00:28:37,834 FM I going to get kicked off the panel 531 00:28:37,834 --> 00:28:40,083 if I admit I use express PCB. 532 00:28:40,792 --> 00:28:44,667 No, for a lot of people for prototyping purposes there are 533 00:28:44,667 --> 00:28:48,459 some not so the way PCB express and a lot of those guys work 534 00:28:48,459 --> 00:28:51,999 is they'll release their own proprietary server with you 535 00:28:51,999 --> 00:28:54,959 they don't give the Gerbers. 536 00:28:57,999 --> 00:29:03,501 I know two different groups writing stuff to take the stuff that their software 537 00:29:03,501 --> 00:29:07,334 produced and give you your real Gerber's. 538 00:29:07,834 --> 00:29:11,751 Yeah, it's like jail break in the design process. 539 00:29:11,751 --> 00:29:12,876 But express PCB is a great service 540 00:29:12,876 --> 00:29:16,375 because they have their own software that is not nearly as complex 541 00:29:16,375 --> 00:29:19,417 as eagle or Kai cat or anything else. 542 00:29:19,417 --> 00:29:23,999 It is so incredibly dead simple to use to do circuit board layouts. 543 00:29:25,250 --> 00:29:28,876 They can do silk screen on the top, not on the bottom unfortunately. 544 00:29:28,999 --> 00:29:32,626 But once you have the design, if you can keep your board 545 00:29:32,626 --> 00:29:37,083 to 2.5 inches to 3.8 inches, you click a button and give them I think 546 00:29:37,083 --> 00:29:41,667 it's up to about 60 bucks right now if you don't need a soldier mask 547 00:29:41,667 --> 00:29:45,667 or 60 or 80 bucks if you weren't a solder mask or silk screen 548 00:29:45,667 --> 00:29:47,792 for three boards. 549 00:29:47,918 --> 00:29:50,709 And they'll get them to you in a week. 550 00:29:50,709 --> 00:29:53,584 It's incredibly cheap way of prototyping. 551 00:29:54,375 --> 00:29:58,167 That's not a tiny board, not huge but you can fit a lot 552 00:29:58,167 --> 00:30:00,999 on that amount of space. 553 00:30:00,999 --> 00:30:03,999 It's a great way of getting in. 554 00:30:03,999 --> 00:30:07,250 And I'm going to draw traces from here and inspect the pins. 555 00:30:07,250 --> 00:30:08,999 You don't have to worry about making it nice and clean, 556 00:30:08,999 --> 00:30:10,999 you're not making a product. 557 00:30:10,999 --> 00:30:12,042 It's just a prototype. 558 00:30:12,042 --> 00:30:13,334 Service is great. 559 00:30:14,709 --> 00:30:17,042 Orb park is a great way of doing it expensive, 560 00:30:17,042 --> 00:30:19,999 but they have a lot of lead time. 561 00:30:20,209 --> 00:30:22,584 He runs boards every other day. 562 00:30:23,667 --> 00:30:27,000 Laying outboards is a completely different discussion. 563 00:30:27,000 --> 00:30:27,667 But for the most part if you're doing 564 00:30:27,667 --> 00:30:31,501 a prototype and it's not something that as a specific board layouts. 565 00:30:31,999 --> 00:30:33,999 It's an example tool. 566 00:30:33,999 --> 00:30:38,125 I want to mention for Canadians there's AP circuits. 567 00:30:38,167 --> 00:30:40,334 Someone is like A. 568 00:30:40,334 --> 00:30:43,042 You can use it. 569 00:30:43,918 --> 00:30:45,334 Alberta circuits. 570 00:30:45,334 --> 00:30:48,584 There's similar type of prototype quantity simple board type 571 00:30:48,584 --> 00:30:50,042 of house. 572 00:30:50,042 --> 00:30:53,834 They're expensive but they're fast. 573 00:30:53,834 --> 00:30:54,999 They're Canadian. 574 00:30:55,000 --> 00:31:01,876 They ship to the U.S. 575 00:31:01,876 --> 00:31:05,501 AUDIENCE: I'm not afraid to ask dumb questions. 576 00:31:05,501 --> 00:31:07,167 We're not afraid to answer this. 577 00:31:07,167 --> 00:31:08,501 AUDIENCE: Excellent. 578 00:31:08,501 --> 00:31:11,083 I bought two boards a week ago, one was the beagle bone and 579 00:31:11,083 --> 00:31:14,999 the other was I think I just went to YouTube and searched 580 00:31:14,999 --> 00:31:18,709 on embedded program and found guystatemachine.com who 581 00:31:18,709 --> 00:31:23,292 did a 9 series lecture on use, the TI Solisis launch pad walking you 582 00:31:23,292 --> 00:31:25,334 through a CIDs. 583 00:31:27,999 --> 00:31:31,876 I guess the first question is are those microcontrollers 584 00:31:31,876 --> 00:31:35,999 or bigger The beagle board is a great board. 585 00:31:36,375 --> 00:31:38,542 I like the beagle board stuff. 586 00:31:38,959 --> 00:31:40,167 I don't know if you guys have any thoughts 587 00:31:40,167 --> 00:31:41,709 on those. 588 00:31:41,709 --> 00:31:45,501 I would consider those modules, there's microcontrollers on them. 589 00:31:45,667 --> 00:31:49,125 But the distinction I think he's trying to make is they're not microcontrollers, 590 00:31:49,125 --> 00:31:50,792 they're CPUs. 591 00:31:51,209 --> 00:31:53,542 There's a very subtle distinction 592 00:31:53,542 --> 00:31:59,918 between where you're writing assembly or a C that's running on a chip timer. 593 00:32:00,501 --> 00:32:06,125 Intel considered there was an 8186. 594 00:32:06,125 --> 00:32:07,459 They interested it a microcontroller because it had 595 00:32:07,459 --> 00:32:09,083 a timer on board. 596 00:32:10,709 --> 00:32:15,584 I thought a microcontrollers had on board peripherals. 597 00:32:15,584 --> 00:32:18,751 So memory and stuff on board you don't have exposed 598 00:32:18,751 --> 00:32:22,999 busses going to outside stuff but a microprocessor was 599 00:32:22,999 --> 00:32:27,876 a CPU you needed to have mapping and data bus. 600 00:32:27,999 --> 00:32:31,626 But when you're talking about things like the beagle bone 601 00:32:31,626 --> 00:32:34,209 and the raspberry pie, the main difference 602 00:32:34,209 --> 00:32:39,999 is you're not necessarily writing code that has 100% control over the CPU. 603 00:32:39,999 --> 00:32:41,083 You're writing an application that runs 604 00:32:41,083 --> 00:32:43,542 inside an operating system. 605 00:32:43,542 --> 00:32:45,959 So it's a different in development environment 606 00:32:45,959 --> 00:32:49,751 and I'm not trying to make a religious distinction here. 607 00:32:49,751 --> 00:32:51,167 If they both have their place. 608 00:32:51,167 --> 00:32:54,125 You know, if you're a software guy and you don't need to worry 609 00:32:54,125 --> 00:32:57,501 about you don't want to have to worry about how to write 610 00:32:57,501 --> 00:33:01,999 a boot loader and you want something that does stuff and you're comfortable 611 00:33:01,999 --> 00:33:05,999 with GCC and you write applications in Linux all day, then put Linux 612 00:33:05,999 --> 00:33:10,083 on your chip or put Linux on your embedded environment. 613 00:33:10,083 --> 00:33:11,083 That's fine. 614 00:33:11,083 --> 00:33:14,999 It's gotten cheap enough that you know, Dr. Moore solved that problem for us. 615 00:33:14,999 --> 00:33:17,626 The reason we had microcontrollers is because they were smaller 616 00:33:17,626 --> 00:33:20,417 and simpler and cheaper when a full CPU was so much 617 00:33:20,417 --> 00:33:22,209 more expensive. 618 00:33:22,209 --> 00:33:23,876 That is no longer the case. 619 00:33:23,876 --> 00:33:26,999 We can now throw transistors at these things and it is the cost 620 00:33:26,999 --> 00:33:29,584 is no longer the problem. 621 00:33:29,584 --> 00:33:31,999 So we can put an entire Linux operating system 622 00:33:31,999 --> 00:33:35,292 on the thing and it's still 35 bucks. 623 00:33:35,501 --> 00:33:39,334 Costs about 30 35 bucks about depending where you buy it. 624 00:33:39,626 --> 00:33:42,709 Raspberry Pi is 35 bucks? 625 00:33:42,709 --> 00:33:43,999 What's the difference? 626 00:33:43,999 --> 00:33:45,209 The Raspberry Pi has a shit ton more resources 627 00:33:45,209 --> 00:33:48,999 but it needs it because it's running a full operating system. 628 00:33:49,417 --> 00:33:52,876 It's no longer a matter of which is better. 629 00:33:53,083 --> 00:33:54,709 They both have their place. 630 00:33:54,709 --> 00:33:57,417 It's a matter of which suits your application better. 631 00:33:57,417 --> 00:34:00,999 So the answer comes down to what you're trying to do. 632 00:34:00,999 --> 00:34:03,999 A lot of is that comes down to high performance timing. 633 00:34:04,250 --> 00:34:05,999 If I need to get down to the hardware level 634 00:34:05,999 --> 00:34:08,083 on something like that's when it becomes more 635 00:34:08,083 --> 00:34:12,292 important to be able to get down to that level and have control. 636 00:34:12,292 --> 00:34:16,999 Most of you guys don't say interrupt latency as much as we do. 637 00:34:17,667 --> 00:34:20,959 Would you rather write a custom application that runs natively 638 00:34:20,959 --> 00:34:24,083 on the hardware as opposed to a device driver. 639 00:34:25,083 --> 00:34:28,792 Depends on the application, what you're trying to do with it. 640 00:34:28,792 --> 00:34:29,999 Think about robot. 641 00:34:29,999 --> 00:34:32,792 Do you really want an OS to control your motors on a robot, 642 00:34:32,792 --> 00:34:37,292 or do you want something that's very simple and predictable where you know 643 00:34:37,292 --> 00:34:40,876 exactly what you can do to take control. 644 00:34:40,876 --> 00:34:42,209 I'm not waiting on this to message that and for the OS 645 00:34:42,209 --> 00:34:44,083 to decide to come around and then turn the robot 646 00:34:44,083 --> 00:34:46,501 off before it drives off the cliff. 647 00:34:47,542 --> 00:34:50,959 But, if you have a good deterministic Artos, 648 00:34:50,959 --> 00:34:53,667 that's fine for embedded. 649 00:34:53,999 --> 00:34:55,999 You could run Windows you. 650 00:34:55,999 --> 00:34:58,417 I wouldn't but I've got friends at willow garage who would shoot you 651 00:34:58,417 --> 00:34:59,876 for that. 652 00:35:03,751 --> 00:35:05,209 Depending on product. 653 00:35:05,584 --> 00:35:07,792 Surprised nobody brought him before now. 654 00:35:09,876 --> 00:35:13,417 Like in the robot example, I would put con tolls 655 00:35:13,417 --> 00:35:17,959 on mike low controller but I would use a Raspberry Pi to do 656 00:35:17,959 --> 00:35:21,999 the route processing and high level process and taking 657 00:35:21,999 --> 00:35:27,083 in video stream data and doing analysis of what's going on around me 658 00:35:27,083 --> 00:35:30,792 but have it send a signal to the microcontroller 659 00:35:30,792 --> 00:35:34,584 and say turn wheels around going my speed this long 660 00:35:34,584 --> 00:35:37,999 and have the control the motors. 661 00:35:37,999 --> 00:35:39,999 So that's the kind of decision making process you have 662 00:35:39,999 --> 00:35:42,125 to make at design time of what is it I'm trying 663 00:35:42,125 --> 00:35:46,083 to do and which platform is better for that particular task. 664 00:35:46,292 --> 00:35:49,334 If was just briefly mentioned here. 665 00:35:49,417 --> 00:35:52,667 The dreaded word that nobody likes to deal with is dealing 666 00:35:52,667 --> 00:35:56,417 with interrupts and interrupt timing and I think that's why we're now 667 00:35:56,417 --> 00:35:59,999 breaking into this point where we've got even, what I would call 668 00:35:59,999 --> 00:36:04,083 a microcontroller with multiple cores and stuff like that. 669 00:36:04,083 --> 00:36:06,751 Like the propeller is because you don't have to deal 670 00:36:06,751 --> 00:36:11,292 with time slicing and interrupt problems and loop timing and I think we're 671 00:36:11,292 --> 00:36:16,125 starting even further than that I think the real future for all of us is going 672 00:36:16,125 --> 00:36:19,999 to be what we see coming from the FPGA world. 673 00:36:21,542 --> 00:36:22,792 Thank you? 674 00:36:22,792 --> 00:36:27,167 AUDIENCE: Hi, oh, I'm happy to see the embedded stuff 675 00:36:27,167 --> 00:36:33,125 and I think Smitty for putting up this panel, really. 676 00:36:33,626 --> 00:36:38,083 My question to you is I'm a systems student and being I want 677 00:36:38,083 --> 00:36:42,083 to be in the field professionally like you know, 678 00:36:42,083 --> 00:36:45,876 not hobbyist but professionally. 679 00:36:46,792 --> 00:36:51,667 But earlier it was like if you're in microcontrollers you should know 680 00:36:51,667 --> 00:36:56,751 interface and you should know basic control logic design. 681 00:36:56,751 --> 00:37:00,083 That was the basic thing, stereotype in my mind. 682 00:37:00,083 --> 00:37:03,083 But now the time has changed a lot that the programming part, 683 00:37:03,083 --> 00:37:06,792 the controlled logic part has evolved and it's reached such 684 00:37:06,792 --> 00:37:10,292 a high level you can do software system, database systems, 685 00:37:10,292 --> 00:37:13,876 you can do control like all the systems. 686 00:37:13,876 --> 00:37:19,999 So designing and schematics and you know, sensor is still there. 687 00:37:20,167 --> 00:37:24,584 My question to you all is as a base as systems engineer, what are 688 00:37:24,584 --> 00:37:28,999 the basic things that at least I should know firmly? 689 00:37:29,334 --> 00:37:30,999 I hope I'm clear. 690 00:37:30,999 --> 00:37:33,375 I guess you're just asking what is a basic skill set to enter 691 00:37:33,375 --> 00:37:35,999 into that world as a professional? 692 00:37:35,999 --> 00:37:36,999 Is that correct? 693 00:37:36,999 --> 00:37:38,667 Yeah, the basic skills, yeah. 694 00:37:38,667 --> 00:37:42,667 And what later on I can decide on my own where I'm interested 695 00:37:42,667 --> 00:37:46,125 Well, I'm not the professional. 696 00:37:46,125 --> 00:37:47,125 You guys are. 697 00:37:47,626 --> 00:37:49,334 I'm never professional. 698 00:37:49,584 --> 00:37:54,999 Go ahead Well, I almost feel like that's asking how do you become 699 00:37:54,999 --> 00:37:56,709 a hacker. 700 00:37:57,501 --> 00:38:01,792 To me it's a natural progression of hobbyists building stuff and then oh, 701 00:38:01,792 --> 00:38:05,375 wait, helping out at the a company and now they want to hire me 702 00:38:05,375 --> 00:38:08,999 and they're paying me to just do this stuff? 703 00:38:08,999 --> 00:38:12,501 So a lot of it is once you get this foot in the door, you already named 704 00:38:12,501 --> 00:38:15,999 off a lot of the things that are important. 705 00:38:15,999 --> 00:38:18,999 Once you find a company or a project that you're in love with, 706 00:38:18,999 --> 00:38:23,083 you just start doing it and you will gain stuff and I don't really know 707 00:38:23,083 --> 00:38:25,876 what the best thing to know. 708 00:38:25,918 --> 00:38:31,751 Especially if you get company, hands on real world experience you get 709 00:38:31,751 --> 00:38:35,250 whether it's a product development company 710 00:38:35,250 --> 00:38:38,083 or a specific product. 711 00:38:38,250 --> 00:38:39,709 Not consulting. 712 00:38:39,999 --> 00:38:42,167 That's where you get the best experience. 713 00:38:42,667 --> 00:38:45,167 As long as you love what you do and you learn more 714 00:38:45,167 --> 00:38:49,751 about the things you already said, it's a natural thing. 715 00:38:49,751 --> 00:38:52,792 I don't know if there's any better way to explain it. 716 00:38:52,792 --> 00:38:53,751 You know, I've been giving this answer a lot 717 00:38:53,751 --> 00:38:56,083 but it depends on the application. 718 00:38:57,501 --> 00:39:00,083 Obvious skill sets electronics if you're going 719 00:39:00,083 --> 00:39:03,999 to be doing microcontrollers as well, programming. 720 00:39:04,751 --> 00:39:08,167 Lower level the better, understanding of how assembly works is going 721 00:39:08,167 --> 00:39:09,999 to be important. 722 00:39:09,999 --> 00:39:11,209 I second that. 723 00:39:11,209 --> 00:39:13,417 Here's the big difference between embedded guys 724 00:39:13,417 --> 00:39:17,083 and you know, pure software, speaking as a hiring manager, 725 00:39:17,083 --> 00:39:21,125 here's a skill set I would list if I was doing the official thing 726 00:39:21,125 --> 00:39:25,542 and I'll tell you the kind of I people I really hire. 727 00:39:25,542 --> 00:39:29,459 But big difference, physics. 728 00:39:29,501 --> 00:39:33,542 Because okay, you're going to be turning motors and interfacing 729 00:39:33,542 --> 00:39:37,626 sensors and talking with people about this frequency of whatever 730 00:39:37,626 --> 00:39:42,584 or this coming in and I need to turn it in this real world thing and I'm going 731 00:39:42,584 --> 00:39:46,375 to turn it into software, understanding the physics is going 732 00:39:46,375 --> 00:39:50,542 to be more important than pushing packets around. 733 00:39:50,959 --> 00:39:53,292 When it comes down to hiring people, we had 734 00:39:53,292 --> 00:39:56,751 a kid what did you do last summer? 735 00:39:56,918 --> 00:40:00,626 I rebuilt this Chevy 350 just to understand it. 736 00:40:00,626 --> 00:40:01,667 Shit, you're hired. 737 00:40:01,667 --> 00:40:03,667 I want somebody who does hands on. 738 00:40:03,751 --> 00:40:06,542 In the embedded world you've got to touch the hardware. 739 00:40:06,542 --> 00:40:11,876 (Applause.) The one big question: Have you ever brought 740 00:40:11,876 --> 00:40:14,584 up a new system? 741 00:40:15,167 --> 00:40:18,209 Because again, it goes back to what I said earlier 742 00:40:18,209 --> 00:40:20,501 about doing hardware. 743 00:40:20,667 --> 00:40:23,751 If your code doesn't work, you recompile. 744 00:40:24,042 --> 00:40:27,999 You've got a board, spent all this money. 745 00:40:27,999 --> 00:40:29,751 You laid the board out and put all your parts up there which 746 00:40:29,751 --> 00:40:31,626 is a fucked up mistake. 747 00:40:31,626 --> 00:40:35,292 You've got this board and turned it on and it doesn't work. 748 00:40:35,751 --> 00:40:37,709 Now what? 749 00:40:37,999 --> 00:40:38,999 You've got to understand what's going 750 00:40:38,999 --> 00:40:40,792 on on that board. 751 00:40:40,792 --> 00:40:42,626 It could be something like, again, physics, it could be you laid it 752 00:40:42,626 --> 00:40:44,999 out wrong and it ain't going to work. 753 00:40:44,999 --> 00:40:47,918 It could be chips not running, traces left off. 754 00:40:48,083 --> 00:40:49,083 Hands on. 755 00:40:52,999 --> 00:40:56,834 Being able to troubleshoot circuits is a huge skill that and 756 00:40:56,834 --> 00:40:59,999 like when I was teaching at the university, it used 757 00:40:59,999 --> 00:41:02,999 to frustrate me to no end, I was really honest 758 00:41:02,999 --> 00:41:06,792 with some students if they come to me and ask a question, 759 00:41:06,792 --> 00:41:10,083 I would always say have you tried it? 760 00:41:10,083 --> 00:41:12,918 Have you gone out tinkerers, we need more tinkerers. 761 00:41:12,918 --> 00:41:14,918 If they haven't tried it, you don't have the mindset 762 00:41:14,918 --> 00:41:17,542 to be doing this kind of work. 763 00:41:17,834 --> 00:41:21,083 To be blunt, we need more tinkerers. 764 00:41:21,083 --> 00:41:23,709 Right now we call them makers but we need more tinkerers, 765 00:41:23,709 --> 00:41:26,999 we need people putting their hands on stuff. 766 00:41:26,999 --> 00:41:29,709 I'm always championing in the embedded systems we teach kids 767 00:41:29,709 --> 00:41:33,834 that electronics are dangerous, expensive and breakable. 768 00:41:38,584 --> 00:41:41,083 In our community, just look at the participation 769 00:41:41,083 --> 00:41:43,876 in the badge stuff here at DEF CON, we have orders 770 00:41:43,876 --> 00:41:46,334 of magnitude more people involved in badge stuff 771 00:41:46,334 --> 00:41:49,083 if it's not electronic because people just have that 772 00:41:49,083 --> 00:41:52,999 intimidation factor that haven't made that first step. 773 00:41:52,999 --> 00:41:55,709 That's where we have the hardware hacking village. 774 00:41:55,709 --> 00:41:58,876 That's why DEF CON kids is doing electronic badges this year. 775 00:41:58,876 --> 00:41:59,751 We need to propagate and keep that momentum 776 00:41:59,751 --> 00:42:01,876 moving forward. 777 00:42:02,125 --> 00:42:03,999 AUDIENCE: Cool. 778 00:42:04,167 --> 00:42:05,167 Thank you. 779 00:42:05,167 --> 00:42:06,876 Just one thing, one more thing. 780 00:42:06,876 --> 00:42:11,083 When you're discussing about forgetting stuff for a beginner, 781 00:42:11,083 --> 00:42:16,334 we're discussing with Arduino or the thing which I wanted to know 782 00:42:16,334 --> 00:42:22,584 is I when I use Arduino, I have us used, I have got things done. 783 00:42:22,584 --> 00:42:27,375 But by doing it by using it more and more, getting deeper into it, it 784 00:42:27,375 --> 00:42:32,292 will give me the basic concept of you know, like which makes me 785 00:42:32,292 --> 00:42:37,584 if I get any new programmer, any new microcontroller in the future, 786 00:42:37,584 --> 00:42:40,334 I'll be able to hook up a programmer 787 00:42:40,334 --> 00:42:43,876 into it or something like that? 788 00:42:43,876 --> 00:42:47,167 I'm looking for some to get started in that way which makes me able 789 00:42:47,167 --> 00:42:49,834 to later on work on my microcontrollers 790 00:42:49,834 --> 00:42:52,083 and not just Arduino. 791 00:42:52,959 --> 00:42:54,375 Pick one. 792 00:42:54,375 --> 00:42:57,626 They're all different in little ways and they're all the same. 793 00:43:36,999 --> 00:43:41,959 (Audio difficulty) I have a barn full of that shit. 794 00:43:46,876 --> 00:43:50,334 I think one advantage of Arduino, I think the question was going 795 00:43:50,334 --> 00:43:54,083 from sort of like vendors going if one to the module down, you want 796 00:43:54,083 --> 00:43:57,626 to start working with more at a lower level. 797 00:43:57,709 --> 00:44:00,999 And that one thing with Arduino is and you see this a lot. 798 00:44:00,999 --> 00:44:04,792 The Arduino is the code working on the Atmel. 799 00:44:04,792 --> 00:44:07,292 You can start with the platform board and 800 00:44:07,292 --> 00:44:12,999 if you want to try to go a level down, you can take an Atmel LVR 801 00:44:12,999 --> 00:44:17,334 and load Arduino software on it and that you know, 802 00:44:17,334 --> 00:44:21,876 use that so it's slightly more refined. 803 00:44:22,083 --> 00:44:23,751 And then eventually you're going to want to get 804 00:44:23,751 --> 00:44:26,584 to the point where you have a microcontrollers or maybe you don't 805 00:44:26,584 --> 00:44:28,999 need to get to that point but you have a microcontroller 806 00:44:28,999 --> 00:44:31,667 with just the stuff you want and it's not a module but it's 807 00:44:31,667 --> 00:44:34,375 a refined product that's stuff you want. 808 00:44:34,375 --> 00:44:36,417 You can go the other way for those running 809 00:44:36,417 --> 00:44:40,459 the dark net game this year, the badges software was written 810 00:44:40,459 --> 00:44:45,083 in the Arduino IDE even though it's not Arduino itself. 811 00:44:46,375 --> 00:44:50,999 It's just a front for AVR GCC so it takes C++ code 812 00:44:50,999 --> 00:44:54,709 and turns it into Atmel code. 813 00:44:54,999 --> 00:44:57,876 And if you give it the right hardware files, 814 00:44:57,876 --> 00:45:01,626 you can find them online for the AT tiny 85, then you can use 815 00:45:01,626 --> 00:45:04,999 the Arduino IDE just because it is so incredibly simple 816 00:45:04,999 --> 00:45:07,999 and program nonArduino devices. 817 00:45:07,999 --> 00:45:09,292 By the way, if you haven't talked to the dark net guys, they did 818 00:45:09,292 --> 00:45:11,999 an amazing job this job and it's a great program. 819 00:45:11,999 --> 00:45:17,834 We have five minutes left and I want to bang 820 00:45:17,834 --> 00:45:24,667 through as many questions as we can here. 821 00:45:24,792 --> 00:45:26,083 Come on up. 822 00:45:26,083 --> 00:45:27,125 AUDIENCE: Hi. 823 00:45:27,125 --> 00:45:30,999 I started on the propeller and I'm still on it because I'm pretty addicted. 824 00:45:31,334 --> 00:45:34,751 So I've built a whole bunch of stuff. 825 00:45:34,751 --> 00:45:38,083 And they're all unique, they're all completely digital circuits. 826 00:45:38,083 --> 00:45:41,667 But I have a problem on one of my specifically where if I run it 827 00:45:41,667 --> 00:45:46,417 at 3.3 volts I get data corruption but when I drop it down to 2.8, 828 00:45:46,417 --> 00:45:48,709 everything works. 829 00:45:48,876 --> 00:45:52,292 So how would you go about starting to debug something like that. 830 00:45:52,292 --> 00:45:54,292 When you drop it works? 831 00:45:54,292 --> 00:45:55,999 AUDIENCE: Yeah, it's bizarre. 832 00:45:55,999 --> 00:45:56,999 That's fucked up. 833 00:45:58,459 --> 00:46:03,209 Look at the signals on the scope and see if you're actually getting noise 834 00:46:03,209 --> 00:46:06,417 outside the chip or if it's something being caused 835 00:46:06,417 --> 00:46:10,999 by overvoltage or something else inside the chip and make sure it's noise 836 00:46:10,999 --> 00:46:13,375 versus parity issues. 837 00:46:13,375 --> 00:46:16,083 Maybe there's some other weird configuration thing. 838 00:46:16,083 --> 00:46:19,375 It has an RF modules on it so noise is possible. 839 00:46:19,876 --> 00:46:25,834 Even something as strange as battery placement. 840 00:46:25,834 --> 00:46:26,999 AUDIENCE: Physics. 841 00:46:26,999 --> 00:46:28,501 It goes back to exactly what he was saying welcome to the world 842 00:46:28,501 --> 00:46:31,876 of hacking your circuit or troubleshooting. 843 00:46:31,876 --> 00:46:33,834 That's really one of the greatest skills that I think some 844 00:46:33,834 --> 00:46:36,167 people are As soon as you start talking about RF, 845 00:46:36,167 --> 00:46:39,083 Ryan was mentioning one of the things you should mention learn 846 00:46:39,083 --> 00:46:40,751 is physics. 847 00:46:42,167 --> 00:46:45,834 I bet you have a trace somewhere that is exactly 848 00:46:45,834 --> 00:46:49,459 the length of your RF a quarter wave. 849 00:46:49,459 --> 00:46:52,751 Your quarter wavelength trace somewhere that's picking it up. 850 00:46:52,751 --> 00:46:55,083 You'll be able to visualize that on the scope. 851 00:46:55,459 --> 00:46:56,999 Scoping. 852 00:46:56,999 --> 00:46:59,999 Trying to troubleshoot a board without a scope is like trying 853 00:46:59,999 --> 00:47:02,918 to troubleshoot code without a debugger. 854 00:47:02,918 --> 00:47:04,999 It happens all the time. 855 00:47:04,999 --> 00:47:07,334 There's startups I've seen in San Francisco that kids have 856 00:47:07,334 --> 00:47:10,709 dropped out of school and move to California to start companies 857 00:47:10,709 --> 00:47:14,501 and they don't have a oscilloscope to do basic things. 858 00:47:16,709 --> 00:47:20,334 I brought a logic analyzer with me but that ain't going to help me. 859 00:47:20,792 --> 00:47:22,083 Yeah, probably not? 860 00:47:22,584 --> 00:47:24,999 AUDIENCE: Thank you. 861 00:47:24,999 --> 00:47:25,999 That's old school. 862 00:47:26,292 --> 00:47:31,083 AUDIENCE: Yeah, one question for one person up here. 863 00:47:31,083 --> 00:47:34,083 We'll just kind of keep the discussion going and ¯. 864 00:47:34,083 --> 00:47:37,999 What's with the porn music. 865 00:47:39,209 --> 00:47:41,999 Are we done? 866 00:47:41,999 --> 00:47:45,209 Is that the get off stage music? 867 00:47:46,999 --> 00:47:48,918 Nice. 868 00:47:48,999 --> 00:47:50,999 I've got three more. 869 00:47:51,083 --> 00:47:52,209 Just keep going. 870 00:47:52,209 --> 00:47:53,667 One person one question. 871 00:47:53,918 --> 00:47:54,918 Lightning round. 872 00:47:54,918 --> 00:47:55,918 Go quickly. 873 00:47:55,918 --> 00:47:57,125 AUDIENCE: When you're making a decision designing 874 00:47:57,125 --> 00:48:00,459 an RF signal processing board, which point are you drawing 875 00:48:00,459 --> 00:48:05,459 the line between saying I'm going to use DSP or FPGA for this solution. 876 00:48:05,626 --> 00:48:07,125 Not me. 877 00:48:07,959 --> 00:48:09,999 I would lean toward the DSP just 878 00:48:09,999 --> 00:48:14,334 because FPGA when I think of FPGA, I think of hard care digital side 879 00:48:14,334 --> 00:48:18,999 of things and DSP might give you more I don't know, may be easier to kind 880 00:48:18,999 --> 00:48:23,167 of manipulate if that makes sense, you could always maybe port FPGA 881 00:48:23,167 --> 00:48:26,667 but I would tend to go with DSP first. 882 00:48:28,918 --> 00:48:31,375 AUDIENCE: I have an 11 year old boy who is come of age, 883 00:48:31,375 --> 00:48:34,417 what can I do to introduce them to this world? 884 00:48:34,417 --> 00:48:35,999 I don't have a lot of experience. 885 00:48:35,999 --> 00:48:38,375 Go get the -- what's a microcontroller kit. 886 00:48:38,375 --> 00:48:39,709 Get it at Radio Shack. 887 00:48:39,709 --> 00:48:41,209 The what he said. 888 00:48:41,209 --> 00:48:43,083 It's a parallax microcontroller. 889 00:48:43,083 --> 00:48:44,999 It comes with a huge book that was help move 890 00:48:44,999 --> 00:48:48,417 you forward and that's the difference between that product 891 00:48:48,417 --> 00:48:51,209 and any others is the supporting documentation 892 00:48:51,209 --> 00:48:53,584 is a no kidding book. 893 00:48:53,959 --> 00:48:54,999 Free sample. 894 00:48:54,999 --> 00:48:57,999 No, I don't work for parallax any more. 895 00:48:58,209 --> 00:49:01,667 But I still think it's a great way to introduce people to. 896 00:49:01,999 --> 00:49:04,876 I have a long list in my Palm Pilot. 897 00:49:06,292 --> 00:49:11,584 I'm a system engineer at mission critical embedded systems 898 00:49:11,584 --> 00:49:17,167 and I got started on 8080 in '76 so I'm an old fart. 899 00:49:20,918 --> 00:49:24,876 Two things I'd say is the tool chain, the Atmel and 900 00:49:24,876 --> 00:49:29,709 the Arduino gives you a solid reliable tool chain. 901 00:49:29,709 --> 00:49:31,959 Stay away from the CCS compiler. 902 00:49:31,959 --> 00:49:34,167 It should be checked into the heart of the sun I lost 60 hours of my life 903 00:49:34,167 --> 00:49:38,083 on a professional project because of the figuring CCS compiler. 904 00:49:38,959 --> 00:49:40,918 The other thing I'd say is learn C. 905 00:49:40,918 --> 00:49:42,250 Yeah. 906 00:49:42,250 --> 00:49:44,209 Yes. 907 00:49:44,709 --> 00:49:45,792 I second that. 908 00:49:45,792 --> 00:49:47,918 And keep your cold simple. 909 00:49:47,918 --> 00:49:51,999 I would say learn see and then learn assembly. 910 00:49:51,999 --> 00:49:55,375 And, to be fair, the CCS compiler is good for certain things. 911 00:49:55,375 --> 00:49:56,792 I found bugs in that too but when you do, 912 00:49:56,792 --> 00:49:59,167 you get free subscription. 913 00:49:59,999 --> 00:50:02,209 The natives are getting restless, they're going 914 00:50:02,209 --> 00:50:04,751 to start throwing spears at us. 915 00:50:04,751 --> 00:50:05,751 One comment. 916 00:50:05,959 --> 00:50:07,999 Tell everyone who is just a programmer do embedded 917 00:50:07,999 --> 00:50:09,709 systems stuff. 918 00:50:09,709 --> 00:50:11,375 It will change the way you program. 919 00:50:11,375 --> 00:50:14,083 Yeah, you know what the fuck the machine is doing. 920 00:50:14,083 --> 00:50:16,083 This one is awesome. 921 00:50:16,167 --> 00:50:17,167 Thank you.