0 00:00:00,000 --> 00:00:30,000 Dear viewer, these subtitles were generated by a machine via the service Trint and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/139 Thanks! 1 00:00:12,790 --> 00:00:15,579 Nadia Peek will present, 2 00:00:15,580 --> 00:00:17,799 so it's very difficult 3 00:00:17,800 --> 00:00:19,840 making machines that make 4 00:00:21,520 --> 00:00:23,889 rapid prototyping of digital 5 00:00:23,890 --> 00:00:26,019 fabrication and instrumentation 6 00:00:26,020 --> 00:00:27,020 missions. 7 00:00:28,070 --> 00:00:29,070 So. 8 00:00:30,310 --> 00:00:32,499 Welcome was warm applause. 9 00:00:39,690 --> 00:00:40,579 All right. 10 00:00:40,580 --> 00:00:43,279 Good morning, thanks for coming 11 00:00:43,280 --> 00:00:45,409 to my talk this early 12 00:00:45,410 --> 00:00:47,029 because it's this early, I figured I 13 00:00:47,030 --> 00:00:49,399 would start with a 14 00:00:49,400 --> 00:00:52,129 kind of small story about, 15 00:00:52,130 --> 00:00:55,159 say you wanted to make a machine, 16 00:00:55,160 --> 00:00:57,139 say you wanted to make any kind of 17 00:00:57,140 --> 00:00:58,729 machine. 18 00:00:58,730 --> 00:01:00,889 What? What is the machine do that 19 00:01:00,890 --> 00:01:02,869 you want to make? Does it cut things? 20 00:01:02,870 --> 00:01:04,878 Does it mill things as extrude things? 21 00:01:04,879 --> 00:01:06,679 Is a 3D printer? Is it a laser cutter? 22 00:01:06,680 --> 00:01:08,389 Does it just dispense candy? 23 00:01:08,390 --> 00:01:10,219 And depending on what you want your 24 00:01:10,220 --> 00:01:11,220 machine to do? 25 00:01:12,080 --> 00:01:13,559 How fast is it go? 26 00:01:13,560 --> 00:01:15,409 Like how? What is the motion that you're 27 00:01:15,410 --> 00:01:17,059 going to have? What is the inertia of 28 00:01:17,060 --> 00:01:18,019 your machine? 29 00:01:18,020 --> 00:01:19,999 Is it going to be very slow? 30 00:01:20,000 --> 00:01:22,549 Is it going to be really, really strong? 31 00:01:22,550 --> 00:01:24,319 Is it going to be very precise? 32 00:01:24,320 --> 00:01:26,359 Do you need it to move super fast? 33 00:01:26,360 --> 00:01:27,439 And those are all things that you might 34 00:01:27,440 --> 00:01:28,939 want to take into consideration when 35 00:01:28,940 --> 00:01:30,739 you're designing a machine that you might 36 00:01:30,740 --> 00:01:32,029 want to make. 37 00:01:32,030 --> 00:01:33,319 The next thing you might think about is 38 00:01:33,320 --> 00:01:35,539 if this is a machine that fabricates 39 00:01:35,540 --> 00:01:36,919 or measure things, it's probably going to 40 00:01:36,920 --> 00:01:38,339 have to move around. 41 00:01:38,340 --> 00:01:40,399 So how do you move things around 42 00:01:40,400 --> 00:01:41,989 with the drive train? 43 00:01:41,990 --> 00:01:43,879 So here are just some illustrations I 44 00:01:43,880 --> 00:01:45,709 made of drive trains that you're probably 45 00:01:45,710 --> 00:01:47,869 already familiar with, like a lead screw 46 00:01:47,870 --> 00:01:49,579 with a lead screw not or a rack and 47 00:01:49,580 --> 00:01:50,959 pinion or a timing belt. 48 00:01:50,960 --> 00:01:53,209 And each of these things have drawbacks 49 00:01:53,210 --> 00:01:55,729 and advantages in machine design, like 50 00:01:55,730 --> 00:01:58,339 a timing belt can move very quickly, 51 00:01:58,340 --> 00:02:00,079 but there will be a lot of backlash in 52 00:02:00,080 --> 00:02:01,039 your system. 53 00:02:01,040 --> 00:02:03,379 Lead Screw can put in a lot of force, 54 00:02:03,380 --> 00:02:06,289 but it might not be as fast. 55 00:02:06,290 --> 00:02:08,448 Rack and pinion very cheap to prototype 56 00:02:08,449 --> 00:02:09,888 anyone with a laser cutter could make 57 00:02:09,889 --> 00:02:10,788 one. 58 00:02:10,789 --> 00:02:12,469 And so once you have your drive train, 59 00:02:13,610 --> 00:02:14,839 how are you going to hold your drive 60 00:02:14,840 --> 00:02:16,039 training in place? 61 00:02:16,040 --> 00:02:17,479 How are you going to make the frame for 62 00:02:17,480 --> 00:02:19,669 your machine? A very popular way to make 63 00:02:19,670 --> 00:02:21,859 3D printers nowadays is to laser 64 00:02:21,860 --> 00:02:24,149 cut plywood and use a Tesla 65 00:02:24,150 --> 00:02:25,969 slot construction to hold everything 66 00:02:25,970 --> 00:02:27,589 together. You could use an aluminum 67 00:02:27,590 --> 00:02:29,659 extrusion, and how you make 68 00:02:29,660 --> 00:02:30,979 the frame of your machine is going to 69 00:02:30,980 --> 00:02:32,270 have a lot of impact on 70 00:02:33,470 --> 00:02:35,119 the rigidity of the machine and therefore 71 00:02:35,120 --> 00:02:36,529 the inertia that your machine is going to 72 00:02:36,530 --> 00:02:38,029 have. If it's very heavy, it's going to 73 00:02:38,030 --> 00:02:39,559 be more difficult to move around. 74 00:02:39,560 --> 00:02:41,449 If it's if it's very 75 00:02:42,680 --> 00:02:44,479 kind of loosely connected, it's going to 76 00:02:44,480 --> 00:02:46,219 be full of vibrations and there and the 77 00:02:46,220 --> 00:02:47,599 resulting precision of your machine is 78 00:02:47,600 --> 00:02:50,269 going to be very low, even if you have 79 00:02:50,270 --> 00:02:52,279 even if you have micro stepping in your 80 00:02:52,280 --> 00:02:54,049 stepper motors. 81 00:02:54,050 --> 00:02:55,249 It doesn't really matter if you have a 82 00:02:55,250 --> 00:02:56,269 big floppy machine. 83 00:02:56,270 --> 00:02:58,549 So what are you going to do about that? 84 00:02:58,550 --> 00:03:01,369 And then the 85 00:03:01,370 --> 00:03:03,289 way that you have to restrict the motion 86 00:03:03,290 --> 00:03:05,149 of your machine, so say you have a lead 87 00:03:05,150 --> 00:03:06,319 screw that's moving things back and 88 00:03:06,320 --> 00:03:07,669 forth. You have to make sure that it 89 00:03:07,670 --> 00:03:09,589 stays in one axis, right? 90 00:03:09,590 --> 00:03:12,109 So you use something 91 00:03:12,110 --> 00:03:14,449 like a guide shaft or maybe use a flexor 92 00:03:14,450 --> 00:03:16,639 and you restrict the motion in one degree 93 00:03:16,640 --> 00:03:18,979 of freedom or two degrees of freedom 94 00:03:18,980 --> 00:03:20,539 or three degrees of freedom, however many 95 00:03:20,540 --> 00:03:22,369 degrees of freedom you want. 96 00:03:22,370 --> 00:03:24,079 And to think about those degrees of 97 00:03:24,080 --> 00:03:25,369 freedom, you can think about different 98 00:03:25,370 --> 00:03:26,449 kinematic systems. 99 00:03:27,920 --> 00:03:30,019 So each bot delta 100 00:03:30,020 --> 00:03:31,579 by its polar coordinates, those are all 101 00:03:31,580 --> 00:03:32,809 examples of 102 00:03:33,890 --> 00:03:36,109 of parallel kinematic systems, right? 103 00:03:36,110 --> 00:03:38,089 So if you move X, it's going to affect 104 00:03:38,090 --> 00:03:40,279 how you move Y and those things are 105 00:03:40,280 --> 00:03:41,539 dependent on each other. Whereas with 106 00:03:41,540 --> 00:03:43,789 serial kinematics, if I move X, 107 00:03:43,790 --> 00:03:45,499 then it doesn't really matter. 108 00:03:45,500 --> 00:03:47,870 The Y position is independent of X, 109 00:03:49,190 --> 00:03:51,319 so different kinematic systems result in 110 00:03:51,320 --> 00:03:52,609 different control systems. 111 00:03:52,610 --> 00:03:54,409 And how are you going to talk to all of 112 00:03:54,410 --> 00:03:56,239 those control systems? 113 00:03:56,240 --> 00:03:58,339 Did any of you guys go to Travis 114 00:03:58,340 --> 00:04:00,409 Goodspeed talk yesterday about satellite 115 00:04:00,410 --> 00:04:01,699 control? 116 00:04:01,700 --> 00:04:02,599 Some of you. Yeah. 117 00:04:02,600 --> 00:04:04,909 So he used a he is a 118 00:04:04,910 --> 00:04:06,379 stepper motor driver board that was 119 00:04:06,380 --> 00:04:07,549 designed for a different machine to 120 00:04:07,550 --> 00:04:09,859 control his satellite 121 00:04:09,860 --> 00:04:11,149 right now. 122 00:04:11,150 --> 00:04:13,429 And then he wrote a pie game interface 123 00:04:13,430 --> 00:04:15,349 to like, look at different look at 124 00:04:15,350 --> 00:04:16,909 different satellite pointing, which is 125 00:04:16,910 --> 00:04:18,648 pretty cool. So how are you going to how 126 00:04:18,649 --> 00:04:19,789 are you going to control yours? 127 00:04:19,790 --> 00:04:21,169 Are you going to repurpose a system like 128 00:04:21,170 --> 00:04:22,399 that, or are you going to design 129 00:04:22,400 --> 00:04:23,779 something from scratch? 130 00:04:23,780 --> 00:04:26,269 So this is my very brief overview on 131 00:04:26,270 --> 00:04:29,059 if you wanted to make a machine, that's 132 00:04:29,060 --> 00:04:30,979 kind of a different steps in aspects that 133 00:04:30,980 --> 00:04:32,269 you would want to think about. 134 00:04:32,270 --> 00:04:34,609 So now I will go back to talking about 135 00:04:34,610 --> 00:04:36,799 now that we have an overview of what 136 00:04:36,800 --> 00:04:38,660 machine building entails in this talk. 137 00:04:39,890 --> 00:04:43,219 So a long time ago, we had 138 00:04:43,220 --> 00:04:45,289 the industrial revolution, and that gave 139 00:04:45,290 --> 00:04:46,290 us 140 00:04:47,570 --> 00:04:49,789 a lot of things that were available 141 00:04:49,790 --> 00:04:52,040 in the color black and 142 00:04:53,390 --> 00:04:55,519 using using 143 00:04:55,520 --> 00:04:56,879 kind of mass production techniques, we 144 00:04:56,880 --> 00:04:59,029 were able to build things that we were 145 00:04:59,030 --> 00:05:01,099 otherwise that were 146 00:05:01,100 --> 00:05:03,199 otherwise prohibitively expensive 147 00:05:03,200 --> 00:05:05,239 to build. So building a single prototype 148 00:05:05,240 --> 00:05:06,240 for a car? 149 00:05:07,100 --> 00:05:08,539 Yeah, that's it's not something that you 150 00:05:08,540 --> 00:05:09,889 can really afford to do if you're only 151 00:05:09,890 --> 00:05:11,119 going to build one of them. But if you 152 00:05:11,120 --> 00:05:13,699 take advantage of an economy of scale, 153 00:05:13,700 --> 00:05:15,799 then and you build lots of the 154 00:05:15,800 --> 00:05:17,749 same car, you can start selling them for 155 00:05:17,750 --> 00:05:18,859 not that much money. If you think about 156 00:05:18,860 --> 00:05:22,309 it like a car being 20000 157 00:05:22,310 --> 00:05:24,409 $20000, maybe if you buy a new car, I 158 00:05:24,410 --> 00:05:25,999 have no idea I never bought a car. 159 00:05:26,000 --> 00:05:28,249 But like all 160 00:05:28,250 --> 00:05:30,609 of the systems that go into that are 161 00:05:30,610 --> 00:05:32,599 are actually quite complex and expensive, 162 00:05:32,600 --> 00:05:34,069 and if you were going to prototype them 163 00:05:34,070 --> 00:05:35,929 one by one, that would be prohibitive. 164 00:05:35,930 --> 00:05:38,099 So I guess economy of scale is useful in. 165 00:05:38,100 --> 00:05:40,169 That regard, but the way that a lot 166 00:05:40,170 --> 00:05:42,119 of those things were driven forward was 167 00:05:42,120 --> 00:05:44,789 in conjunction with 168 00:05:44,790 --> 00:05:46,829 kind of the militarization of 169 00:05:47,880 --> 00:05:50,189 the mid 20th century 170 00:05:50,190 --> 00:05:52,289 and and so a lot of the techniques 171 00:05:52,290 --> 00:05:53,819 that we that we developed for 172 00:05:53,820 --> 00:05:56,819 manufacturing and building things 173 00:05:56,820 --> 00:05:59,309 are really kind of closely tied to 174 00:05:59,310 --> 00:06:00,310 militarization. 175 00:06:01,740 --> 00:06:02,740 And so. 176 00:06:03,920 --> 00:06:06,199 It's hard to extricate that kind 177 00:06:06,200 --> 00:06:08,329 of manufacturing and design process from 178 00:06:09,440 --> 00:06:12,079 from jet engines, missiles 179 00:06:12,080 --> 00:06:13,080 and things like that. 180 00:06:14,630 --> 00:06:17,539 So making tools to make tools 181 00:06:17,540 --> 00:06:19,639 obviously dates back to the beginning of 182 00:06:19,640 --> 00:06:20,720 the first war because 183 00:06:21,830 --> 00:06:23,449 you make a tool to make something else 184 00:06:23,450 --> 00:06:24,919 which might need to be made with 185 00:06:24,920 --> 00:06:26,659 something else, right? 186 00:06:26,660 --> 00:06:28,789 And the first time we 187 00:06:28,790 --> 00:06:31,009 hooked up a one a tool to 188 00:06:31,010 --> 00:06:33,439 a computer and with we, I mean, 189 00:06:33,440 --> 00:06:35,539 mankind was 190 00:06:35,540 --> 00:06:37,999 a long time ago. So this is a this is 191 00:06:38,000 --> 00:06:40,369 the first CMC milling 192 00:06:40,370 --> 00:06:42,679 machine, which was at 193 00:06:42,680 --> 00:06:45,229 a moment in the 1950s 194 00:06:45,230 --> 00:06:47,209 totally stole an idea from an independent 195 00:06:47,210 --> 00:06:49,039 inventor. But whatever. 196 00:06:49,040 --> 00:06:51,619 And yeah, 197 00:06:51,620 --> 00:06:53,689 that really enabled going from the 198 00:06:53,690 --> 00:06:55,219 precision that you would otherwise 199 00:06:55,220 --> 00:06:56,300 manually require 200 00:06:57,350 --> 00:06:59,479 with more traditional 201 00:06:59,480 --> 00:07:01,759 tools to be able to start using 202 00:07:01,760 --> 00:07:04,219 numeric readout to control things. 203 00:07:04,220 --> 00:07:06,140 And and so then 204 00:07:07,340 --> 00:07:09,619 making things in 205 00:07:09,620 --> 00:07:11,779 an economy of scale isn't necessarily 206 00:07:11,780 --> 00:07:14,059 as important anymore, because the only 207 00:07:14,060 --> 00:07:16,369 way that you change how what the object 208 00:07:16,370 --> 00:07:17,719 is that you're making is by changing the 209 00:07:17,720 --> 00:07:19,729 code, which is relatively trivial in 210 00:07:19,730 --> 00:07:21,919 comparison to having to change what 211 00:07:21,920 --> 00:07:24,829 a craftsman is able to produce. 212 00:07:24,830 --> 00:07:27,079 But that doesn't necessarily mean that 213 00:07:27,080 --> 00:07:28,279 that's the way that we're building 214 00:07:28,280 --> 00:07:29,479 things. These people are actually not 215 00:07:29,480 --> 00:07:30,559 actually building things. I think they're 216 00:07:30,560 --> 00:07:32,749 sorting mushrooms. This is a photo of 217 00:07:32,750 --> 00:07:33,829 Andreas Gursky. 218 00:07:33,830 --> 00:07:35,120 But I 219 00:07:36,260 --> 00:07:38,389 I just kind of use it as a as a visual 220 00:07:38,390 --> 00:07:40,489 reference point for maybe something that 221 00:07:40,490 --> 00:07:41,659 we'd be interested in. 222 00:07:41,660 --> 00:07:42,660 Departing from 223 00:07:43,730 --> 00:07:45,889 mass production kind of often results 224 00:07:45,890 --> 00:07:48,949 in a lot of artifacts and objects that 225 00:07:48,950 --> 00:07:50,659 produce desires and people that they 226 00:07:50,660 --> 00:07:52,519 think they want or need things. 227 00:07:52,520 --> 00:07:55,309 And is it really the case that 228 00:07:55,310 --> 00:07:57,379 you need to buy 229 00:07:57,380 --> 00:07:59,839 what it is that is already available? 230 00:07:59,840 --> 00:08:01,819 Maybe things that you need are slightly 231 00:08:01,820 --> 00:08:03,439 different from things that are available 232 00:08:03,440 --> 00:08:04,639 in the market. 233 00:08:04,640 --> 00:08:06,859 And so obviously, you 234 00:08:06,860 --> 00:08:09,259 guys like building things because 235 00:08:09,260 --> 00:08:10,939 otherwise you wouldn't be at a big 236 00:08:10,940 --> 00:08:12,589 hackers conference. 237 00:08:12,590 --> 00:08:14,419 And so there are a lot of spaces like 238 00:08:14,420 --> 00:08:16,609 this now available not just to do 239 00:08:16,610 --> 00:08:19,519 code production, but to do 240 00:08:19,520 --> 00:08:21,619 physical prototyping with 241 00:08:21,620 --> 00:08:24,019 digital fabrication equipment. 242 00:08:24,020 --> 00:08:26,749 So this is a fab lab in Iceland. 243 00:08:26,750 --> 00:08:27,739 I don't know if any of you guys know 244 00:08:27,740 --> 00:08:29,929 Samari, but I think memory 245 00:08:29,930 --> 00:08:32,189 is from this lab and 246 00:08:32,190 --> 00:08:34,399 and so you have all of this 247 00:08:34,400 --> 00:08:36,859 equipment now that previously 248 00:08:36,860 --> 00:08:39,379 was a that was previously kind of 249 00:08:39,380 --> 00:08:40,599 affordable or unattainable. 250 00:08:40,600 --> 00:08:42,829 You have 3-D printers, 251 00:08:42,830 --> 00:08:44,329 small format milling machines that you 252 00:08:44,330 --> 00:08:46,219 can use to do printed circuit board 253 00:08:46,220 --> 00:08:48,529 production. You have, you know, vinyl 254 00:08:48,530 --> 00:08:49,849 cutters. There's plenty of vinyl cutters 255 00:08:49,850 --> 00:08:51,049 in the hall. 256 00:08:52,430 --> 00:08:54,079 Laser cutters, large format milling 257 00:08:54,080 --> 00:08:55,549 machines. So anything that you kind of 258 00:08:55,550 --> 00:08:58,069 think about wanting to make right now 259 00:08:58,070 --> 00:08:59,070 is a. 260 00:09:00,550 --> 00:09:02,499 Yeah, it's kind of at your fingertips. 261 00:09:02,500 --> 00:09:04,749 And so I'm a I'm a grad student 262 00:09:04,750 --> 00:09:07,839 at MIT and for the past, 263 00:09:07,840 --> 00:09:09,399 well, let's not talk about how long I've 264 00:09:09,400 --> 00:09:11,619 been a grad student for the past 265 00:09:11,620 --> 00:09:12,519 couple of years. 266 00:09:12,520 --> 00:09:13,719 I've been teaching. 267 00:09:17,080 --> 00:09:19,239 I've been teaching a class called How 268 00:09:19,240 --> 00:09:21,039 to Make Almost Anything and how to make 269 00:09:21,040 --> 00:09:22,419 almost anything just uses digital 270 00:09:22,420 --> 00:09:24,579 fabrication tools for 271 00:09:24,580 --> 00:09:25,689 students to make whatever they want. 272 00:09:25,690 --> 00:09:26,829 So I don't know if you guys are familiar 273 00:09:26,830 --> 00:09:28,659 with my advisor, Neil Gershenfeld, but 274 00:09:28,660 --> 00:09:30,249 you wrote this book about digital 275 00:09:30,250 --> 00:09:32,949 fabrication and building things. 276 00:09:32,950 --> 00:09:35,619 And it turns out that a result of 277 00:09:35,620 --> 00:09:37,779 making things with digital 278 00:09:37,780 --> 00:09:40,149 fabrication means 279 00:09:40,150 --> 00:09:41,739 that you maybe you want to make more 280 00:09:41,740 --> 00:09:44,529 tools for digital fabrication. 281 00:09:44,530 --> 00:09:46,569 So how to make something that makes 282 00:09:46,570 --> 00:09:48,099 almost anything instead of how to make 283 00:09:48,100 --> 00:09:49,509 almost anything? 284 00:09:49,510 --> 00:09:52,809 So this is a friend of mine, Jonathan, 285 00:09:52,810 --> 00:09:55,389 who back in 2009 286 00:09:55,390 --> 00:09:57,159 made this plywood milling machine on a 287 00:09:57,160 --> 00:09:59,259 larger milling machine for circuit board 288 00:09:59,260 --> 00:10:00,279 production. 289 00:10:00,280 --> 00:10:02,469 And I think it's about 290 00:10:02,470 --> 00:10:05,679 $400 in parts and replaces 291 00:10:05,680 --> 00:10:07,959 a $4000 machine 292 00:10:07,960 --> 00:10:09,189 that we were using to make circuit 293 00:10:09,190 --> 00:10:10,149 boards. 294 00:10:10,150 --> 00:10:12,969 And this is a lawnmower also 295 00:10:12,970 --> 00:10:14,379 from MIT. 296 00:10:14,380 --> 00:10:16,479 And together with Max Lebowski, he built 297 00:10:16,480 --> 00:10:18,639 this MTM multifaith, 298 00:10:18,640 --> 00:10:21,189 which was a multipurpose machine tool. 299 00:10:21,190 --> 00:10:23,349 And I don't know if you guys are familiar 300 00:10:23,350 --> 00:10:25,599 with the Ultimaker a 3D printer, but 301 00:10:25,600 --> 00:10:27,819 the kinematics for that printer 302 00:10:27,820 --> 00:10:30,129 is inspired by 303 00:10:30,130 --> 00:10:31,629 the design of this machine. 304 00:10:31,630 --> 00:10:33,549 And so it's becoming easier and easier to 305 00:10:33,550 --> 00:10:35,619 build these kinds of like 306 00:10:35,620 --> 00:10:37,029 custom tools that you might want to use 307 00:10:37,030 --> 00:10:38,019 yourself. 308 00:10:38,020 --> 00:10:39,490 The Fab at home project 309 00:10:40,810 --> 00:10:43,119 Adrian Bowyer and Wrap, making 310 00:10:43,120 --> 00:10:45,279 it a lot easier to have 3D printers or 311 00:10:45,280 --> 00:10:46,280 liquid handlers. 312 00:10:47,260 --> 00:10:50,049 This was a 313 00:10:50,050 --> 00:10:52,479 plastic snap together version of 314 00:10:52,480 --> 00:10:55,299 Milling Machine that Jonathan developed 315 00:10:55,300 --> 00:10:57,789 that you can make in 316 00:10:57,790 --> 00:10:59,589 a fab lab, or a space that has a large 317 00:10:59,590 --> 00:11:02,259 format milling machine 318 00:11:02,260 --> 00:11:03,639 so that you can have your own circuit 319 00:11:03,640 --> 00:11:04,599 board production. 320 00:11:04,600 --> 00:11:06,789 And these are the the 321 00:11:06,790 --> 00:11:08,289 plans for this machine. 322 00:11:08,290 --> 00:11:10,599 And so the cut files, the firmware 323 00:11:10,600 --> 00:11:12,819 and everything is available online 324 00:11:12,820 --> 00:11:14,320 and so other people started making them. 325 00:11:15,340 --> 00:11:16,899 This is David. 326 00:11:16,900 --> 00:11:19,029 He made one for Budapest. 327 00:11:19,030 --> 00:11:20,049 This is right. 328 00:11:20,050 --> 00:11:22,719 And Tintin, they made two from Russia 329 00:11:22,720 --> 00:11:24,519 and then kind of iterations of this 330 00:11:24,520 --> 00:11:25,520 machine. So 331 00:11:27,280 --> 00:11:29,229 this is when these are kind of two larger 332 00:11:29,230 --> 00:11:31,329 format ones that we built in 333 00:11:31,330 --> 00:11:33,729 Moscow, more iterations 334 00:11:33,730 --> 00:11:35,559 of more milling machines in Moscow. 335 00:11:36,640 --> 00:11:38,769 But there's something 336 00:11:38,770 --> 00:11:40,749 kind of strange about rebuilding a 337 00:11:40,750 --> 00:11:42,939 machine that has been designed for 338 00:11:42,940 --> 00:11:44,739 industrial practice, right? 339 00:11:44,740 --> 00:11:47,589 I don't know what your 340 00:11:47,590 --> 00:11:49,569 living situation really is like, but I 341 00:11:49,570 --> 00:11:50,709 have a very small apartment. 342 00:11:50,710 --> 00:11:52,839 And so maybe the form of these kind of 343 00:11:52,840 --> 00:11:54,609 desktop things is not quite correct. 344 00:11:54,610 --> 00:11:56,739 Like having a desktop computer 345 00:11:56,740 --> 00:11:59,049 versus having a portable milling machine 346 00:11:59,050 --> 00:12:00,519 is a somewhat 347 00:12:01,630 --> 00:12:03,909 yeah, it's kind of a 348 00:12:03,910 --> 00:12:05,949 thought process that maybe that maybe we 349 00:12:05,950 --> 00:12:06,849 should reconsider. 350 00:12:06,850 --> 00:12:09,429 Is it important for everything to be 351 00:12:09,430 --> 00:12:10,959 on your desktop like that? 352 00:12:10,960 --> 00:12:12,609 So maybe a maybe. 353 00:12:12,610 --> 00:12:13,659 So this was. 354 00:12:13,660 --> 00:12:14,799 So I'm going to show you in a second 355 00:12:14,800 --> 00:12:17,109 video of an experiment that Alan 356 00:12:17,110 --> 00:12:19,389 and I did for what if the form 357 00:12:19,390 --> 00:12:21,579 of digital fabrication machines 358 00:12:21,580 --> 00:12:23,649 was different if they were a multipurpose 359 00:12:23,650 --> 00:12:24,650 and smaller? 360 00:12:27,600 --> 00:12:28,600 This has got him. 361 00:12:37,050 --> 00:12:38,130 Did you? 362 00:12:42,530 --> 00:12:44,629 She was plucked. 363 00:13:39,980 --> 00:13:40,980 So. 364 00:13:42,730 --> 00:13:44,949 Maybe from the so from the video 365 00:13:44,950 --> 00:13:46,479 you remember from the beginning of this 366 00:13:46,480 --> 00:13:47,949 talk where we learned about the different 367 00:13:47,950 --> 00:13:49,929 parts of machine design and components, 368 00:13:49,930 --> 00:13:52,119 that this is a 369 00:13:52,120 --> 00:13:53,319 parallel kinematics machine. 370 00:13:53,320 --> 00:13:54,609 So it has a timing belt that moves the 371 00:13:54,610 --> 00:13:56,739 stage around with two motors in a kind of 372 00:13:56,740 --> 00:13:58,389 an abort configuration. 373 00:13:58,390 --> 00:14:00,609 There is a lead screw motor that controls 374 00:14:00,610 --> 00:14:02,769 the C axis and then 375 00:14:02,770 --> 00:14:04,869 there's a kinematic mount on that for the 376 00:14:04,870 --> 00:14:06,849 head. So it's actually a multi-purpose 377 00:14:06,850 --> 00:14:07,899 machine. 378 00:14:07,900 --> 00:14:10,209 In the video, we use it as a 3D 379 00:14:10,210 --> 00:14:12,279 printer, but most of 380 00:14:12,280 --> 00:14:13,689 the time I actually use it to make 381 00:14:13,690 --> 00:14:15,219 circuit boards because I find I need 382 00:14:15,220 --> 00:14:16,989 circuit boards way more often than I need 383 00:14:16,990 --> 00:14:17,990 3D printed parts. 384 00:14:19,090 --> 00:14:21,519 And so it's kind of an 385 00:14:21,520 --> 00:14:23,379 exploration of what if digital 386 00:14:23,380 --> 00:14:24,759 fabrication were something that you can 387 00:14:24,760 --> 00:14:26,859 take everywhere, use any time and 388 00:14:26,860 --> 00:14:28,659 doesn't need this like huge planning 389 00:14:28,660 --> 00:14:30,909 thing to happen beforehand where you 390 00:14:30,910 --> 00:14:33,489 design a bunch, go to a maker space and 391 00:14:33,490 --> 00:14:35,589 and use equipment there. 392 00:14:35,590 --> 00:14:37,989 But for some reason, you know, we're not 393 00:14:37,990 --> 00:14:39,189 we're not really quite there yet. 394 00:14:39,190 --> 00:14:40,659 This is a this is. 395 00:14:42,640 --> 00:14:45,489 This is in 2010 396 00:14:45,490 --> 00:14:47,769 or so this is milling circuit 397 00:14:47,770 --> 00:14:49,959 boards on my desk, where 398 00:14:49,960 --> 00:14:51,639 I'm using a G Code interpreter, running 399 00:14:51,640 --> 00:14:54,069 off an Arduino and processing sketch 400 00:14:54,070 --> 00:14:56,499 on an OPEC to control the milling 401 00:14:56,500 --> 00:14:57,549 of the circuit board. And for some 402 00:14:57,550 --> 00:14:59,829 reason, you know, it's not the way 403 00:14:59,830 --> 00:15:01,279 I constantly make boards. 404 00:15:01,280 --> 00:15:03,969 Now it's still it's still 405 00:15:03,970 --> 00:15:05,229 it's still not. 406 00:15:06,700 --> 00:15:08,559 It's not really an enjoyable, easy 407 00:15:08,560 --> 00:15:10,749 process yet. So maybe something else 408 00:15:10,750 --> 00:15:12,879 isn't quite right about how we 409 00:15:12,880 --> 00:15:14,919 use digital fabrication right now. 410 00:15:17,230 --> 00:15:19,389 How many of you have ever used Master Cam 411 00:15:19,390 --> 00:15:21,489 or HSM works or any 412 00:15:21,490 --> 00:15:23,889 kind of tool passing software? 413 00:15:24,940 --> 00:15:25,940 OK. 414 00:15:27,160 --> 00:15:28,889 So it's really terrible. 415 00:15:28,890 --> 00:15:30,219 They're probably the reason that you 416 00:15:30,220 --> 00:15:31,689 never wanted to use it is because it is 417 00:15:31,690 --> 00:15:33,489 awful. Also, you have to run it in 418 00:15:33,490 --> 00:15:35,889 windows. And after 419 00:15:35,890 --> 00:15:38,199 you calculate all of your total past, 420 00:15:38,200 --> 00:15:40,749 what comes out is G 421 00:15:40,750 --> 00:15:43,509 Code. So her 422 00:15:43,510 --> 00:15:45,699 how many of you still 423 00:15:45,700 --> 00:15:47,070 write in FORTRAN? 424 00:15:48,340 --> 00:15:49,359 No one. 425 00:15:49,360 --> 00:15:50,389 One person. 426 00:15:50,390 --> 00:15:53,799 OK, how many of you still write and see 427 00:15:53,800 --> 00:15:56,139 lots of people write OK, so decode 428 00:15:56,140 --> 00:15:58,299 code is like 30 years older than 429 00:15:58,300 --> 00:15:59,799 C. It's really retarded. 430 00:15:59,800 --> 00:16:02,169 It's a it's a there's like 431 00:16:02,170 --> 00:16:03,129 a hundred codes. 432 00:16:03,130 --> 00:16:04,599 They do random things. 433 00:16:04,600 --> 00:16:06,669 Each machine has to interpret g 434 00:16:06,670 --> 00:16:09,549 code in a machine specific way 435 00:16:09,550 --> 00:16:10,659 to be able to figure out where it's 436 00:16:10,660 --> 00:16:12,819 going. So you would say I'm going 437 00:16:12,820 --> 00:16:14,889 to jog G0 and then 438 00:16:14,890 --> 00:16:16,209 you fill out coordinates and then it has 439 00:16:16,210 --> 00:16:17,889 to move to those coordinates and you have 440 00:16:17,890 --> 00:16:19,479 to write in your separate motor drivers 441 00:16:19,480 --> 00:16:21,159 how that's going to happen. 442 00:16:21,160 --> 00:16:23,350 It's really quite silly. 443 00:16:24,640 --> 00:16:26,829 And the way that 444 00:16:26,830 --> 00:16:27,999 you generally interface with these 445 00:16:28,000 --> 00:16:30,099 machines is you have super advanced 446 00:16:30,100 --> 00:16:32,229 file transport like a USB stick 447 00:16:32,230 --> 00:16:33,519 here in my pocket. 448 00:16:33,520 --> 00:16:35,469 And then you have and mills that you want 449 00:16:35,470 --> 00:16:36,879 to put in your machine. That actually 450 00:16:36,880 --> 00:16:38,319 makes sense because if you wanted to 451 00:16:38,320 --> 00:16:40,449 machine something, you would 452 00:16:40,450 --> 00:16:41,889 need at most. 453 00:16:41,890 --> 00:16:43,029 But then this is the interface. 454 00:16:43,030 --> 00:16:44,979 This is not this is not, you know, 20 455 00:16:44,980 --> 00:16:46,779 years ago. This is a machine. 456 00:16:46,780 --> 00:16:48,339 It's a very expensive, fancy milling 457 00:16:48,340 --> 00:16:50,619 machine that I use these 458 00:16:50,620 --> 00:16:51,620 days. 459 00:16:52,140 --> 00:16:53,499 It's actually not a picture of machine 460 00:16:53,500 --> 00:16:55,059 that I use, but it's the same machine. 461 00:16:55,060 --> 00:16:57,189 It's a horrible, 462 00:16:57,190 --> 00:16:59,259 horrible interface. 463 00:16:59,260 --> 00:17:01,599 And then after you 464 00:17:01,600 --> 00:17:03,879 write your tool path so you use 465 00:17:03,880 --> 00:17:06,219 this annoying software 466 00:17:06,220 --> 00:17:08,409 to generate a tool pass, which 467 00:17:08,410 --> 00:17:09,489 you know if you spend enough time with 468 00:17:09,490 --> 00:17:10,989 it. Sure, you can get proficient at it. 469 00:17:10,990 --> 00:17:12,519 You can get proficient at tool passing, 470 00:17:12,520 --> 00:17:14,049 3D prints or whatever. 471 00:17:15,069 --> 00:17:17,348 But then what 472 00:17:17,349 --> 00:17:19,358 happens is you load it into this machine 473 00:17:19,359 --> 00:17:21,429 and then you just spend time watching the 474 00:17:21,430 --> 00:17:23,828 machine and the machine gets to have 475 00:17:23,829 --> 00:17:25,088 fun. 476 00:17:25,089 --> 00:17:27,399 And so it's just kind of, 477 00:17:27,400 --> 00:17:29,379 you sit there, you use a computer for a 478 00:17:29,380 --> 00:17:31,959 long time and then you watch a machine. 479 00:17:31,960 --> 00:17:34,089 It's something something seems like not 480 00:17:34,090 --> 00:17:36,309 very. It's the way that you use 481 00:17:36,310 --> 00:17:38,559 the tools just doesn't seem very 482 00:17:38,560 --> 00:17:39,549 natural. 483 00:17:39,550 --> 00:17:41,499 And sure, you know, tools are getting 484 00:17:41,500 --> 00:17:43,599 more accessible and more 485 00:17:43,600 --> 00:17:45,429 affordable, which makes them more 486 00:17:45,430 --> 00:17:46,779 accessible. 487 00:17:46,780 --> 00:17:49,059 So this is the M2M. 488 00:17:49,060 --> 00:17:51,129 Snap grew into a company which is 489 00:17:51,130 --> 00:17:53,829 now out of San Francisco and also 490 00:17:53,830 --> 00:17:56,369 form one 3D printer and 491 00:17:56,370 --> 00:17:57,759 slate based 3D printer, 492 00:17:58,960 --> 00:18:01,029 which is relatively inexpensive, 493 00:18:01,030 --> 00:18:03,159 both from people from 494 00:18:03,160 --> 00:18:04,179 my previous lab. 495 00:18:04,180 --> 00:18:06,399 But, you know, do we really 496 00:18:06,400 --> 00:18:08,469 want to perpetuate this notion of how 497 00:18:08,470 --> 00:18:10,819 we use digital fabrication equipment? 498 00:18:10,820 --> 00:18:12,849 You know, and also, what about less 499 00:18:12,850 --> 00:18:14,859 ordinary machines that aren't necessarily 500 00:18:14,860 --> 00:18:16,929 going to make it into 501 00:18:16,930 --> 00:18:18,639 the general market any time soon? 502 00:18:18,640 --> 00:18:20,919 So these are four machines 503 00:18:20,920 --> 00:18:23,169 that I use in my 504 00:18:23,170 --> 00:18:25,329 lab on a regular basis. 505 00:18:25,330 --> 00:18:27,429 On the top left is a CT 506 00:18:27,430 --> 00:18:29,829 scanner, so an X-ray machine, a kilowatt 507 00:18:29,830 --> 00:18:32,799 laser cutter, which you can use, 508 00:18:32,800 --> 00:18:34,929 which you can use to cut metal 509 00:18:34,930 --> 00:18:37,119 or for access wire idiom, which 510 00:18:37,120 --> 00:18:38,679 controversially or at least I think so 511 00:18:38,680 --> 00:18:40,119 has a GPS embedded into it. 512 00:18:40,120 --> 00:18:42,159 Because if I move it anywhere within the 513 00:18:42,160 --> 00:18:44,499 shop, then the Department 514 00:18:44,500 --> 00:18:45,819 of Homeland Security wants to know 515 00:18:45,820 --> 00:18:47,019 because they think that maybe I sold it 516 00:18:47,020 --> 00:18:48,669 to someone who's going to make aluminum 517 00:18:48,670 --> 00:18:51,189 tubes for uranium enrichment, 518 00:18:51,190 --> 00:18:52,299 but that's a different story. 519 00:18:52,300 --> 00:18:54,579 And and a 520 00:18:54,580 --> 00:18:56,079 five axis milling machine 521 00:18:57,220 --> 00:18:59,619 that you can use to cut 522 00:18:59,620 --> 00:19:00,999 that's quite rigid that you can use to 523 00:19:01,000 --> 00:19:03,219 cut metals like titanium. 524 00:19:03,220 --> 00:19:05,709 And so what these 525 00:19:05,710 --> 00:19:08,949 four machines have in common besides 526 00:19:08,950 --> 00:19:11,739 besides being over 300, 527 00:19:11,740 --> 00:19:14,439 well over $200000 each 528 00:19:14,440 --> 00:19:16,539 is is that they 529 00:19:16,540 --> 00:19:18,849 all run on Windows seven. 530 00:19:18,850 --> 00:19:19,850 It's horrible. 531 00:19:20,710 --> 00:19:22,779 So the way that you want to interface 532 00:19:22,780 --> 00:19:24,579 it, if I wanted to do anything like with 533 00:19:24,580 --> 00:19:27,009 with the CT scanner, if I wanted to move, 534 00:19:27,010 --> 00:19:29,079 if I wanted to move the stage around 535 00:19:29,080 --> 00:19:31,209 in a way that wasn't, that wasn't 536 00:19:31,210 --> 00:19:32,749 the way that the manufacturer intended 537 00:19:32,750 --> 00:19:34,629 it. If I wanted to look at, say, a gig, a 538 00:19:34,630 --> 00:19:37,179 pan of a x ray instead of 539 00:19:37,180 --> 00:19:39,279 instead of a rotational x ray, you know 540 00:19:39,280 --> 00:19:40,689 you can't do it. There's no way that you 541 00:19:40,690 --> 00:19:41,629 can script to it. 542 00:19:41,630 --> 00:19:42,630 It's a it's 543 00:19:43,970 --> 00:19:45,859 it's like an opaque box that you have no 544 00:19:45,860 --> 00:19:47,569 control over because there's no way that 545 00:19:47,570 --> 00:19:48,829 you can communicate with him. 546 00:19:48,830 --> 00:19:50,509 And so what about even more 547 00:19:51,920 --> 00:19:54,019 playful system? So this is the picture 548 00:19:54,020 --> 00:19:56,239 I took about a month ago at MIT, 549 00:19:56,240 --> 00:19:58,279 where a student was using seven axis 550 00:19:58,280 --> 00:20:00,559 robot arm with a hot wire or 551 00:20:00,560 --> 00:20:02,719 with her with kind of a hot end to 552 00:20:02,720 --> 00:20:04,939 cut Styrofoam and to make the tool pass. 553 00:20:04,940 --> 00:20:06,289 He had written this complicated rhino 554 00:20:06,290 --> 00:20:08,449 script thing that took a surface and 555 00:20:08,450 --> 00:20:09,769 then turned it into a tool path, 556 00:20:09,770 --> 00:20:12,169 circumventing the tool passing software 557 00:20:12,170 --> 00:20:14,509 that you otherwise would have to buy. 558 00:20:14,510 --> 00:20:16,759 And then on the left 559 00:20:16,760 --> 00:20:18,949 here you can see someone holding a 560 00:20:18,950 --> 00:20:20,359 surge protector, right? 561 00:20:20,360 --> 00:20:22,669 So the reason that he's holding the surge 562 00:20:22,670 --> 00:20:23,929 protector is the way that he's 563 00:20:23,930 --> 00:20:26,449 controlling the heat of the thing 564 00:20:26,450 --> 00:20:27,889 that is cutting the Styrofoam is like 565 00:20:27,890 --> 00:20:29,989 turning a surge protector off and on with 566 00:20:29,990 --> 00:20:31,069 his thumb. 567 00:20:31,070 --> 00:20:33,469 Because even though it would be trivial 568 00:20:33,470 --> 00:20:35,389 to write that as a software widget to be 569 00:20:35,390 --> 00:20:37,309 able to control the heat for the software 570 00:20:37,310 --> 00:20:39,199 end, the easiest thing for them to do to 571 00:20:39,200 --> 00:20:40,369 be able to insert themselves into the 572 00:20:40,370 --> 00:20:42,559 system is to put a hard wire in 573 00:20:42,560 --> 00:20:44,909 and turn it off and on manually. 574 00:20:44,910 --> 00:20:47,149 No such seems completely 575 00:20:47,150 --> 00:20:48,439 absurd to me. 576 00:20:48,440 --> 00:20:49,700 So we want to have. 577 00:20:54,980 --> 00:20:57,649 So instead of making more of the same 578 00:20:57,650 --> 00:21:00,199 machines, what about 579 00:21:00,200 --> 00:21:02,149 kind of different machines that you might 580 00:21:02,150 --> 00:21:04,219 want to be making in the 581 00:21:04,220 --> 00:21:05,220 hall? 582 00:21:05,750 --> 00:21:07,609 That way, I think there there's a ceiling 583 00:21:07,610 --> 00:21:09,889 kind of like this of tubes right 584 00:21:09,890 --> 00:21:11,869 in the in the in the kind of main hall 585 00:21:11,870 --> 00:21:14,719 area. And so this is a ceiling that 586 00:21:14,720 --> 00:21:17,029 one of my friends made James, where 587 00:21:17,030 --> 00:21:19,069 he had to install this entire ceiling in 588 00:21:19,070 --> 00:21:20,059 less than a week. 589 00:21:20,060 --> 00:21:22,099 And so you have to hang all of these 590 00:21:22,100 --> 00:21:24,289 tubes at a precise distance 591 00:21:24,290 --> 00:21:25,519 from the ceiling. 592 00:21:25,520 --> 00:21:27,589 And so how are you going to how are 593 00:21:27,590 --> 00:21:29,149 you going to make sure that they're all 594 00:21:29,150 --> 00:21:30,619 the correct length while he made this 595 00:21:30,620 --> 00:21:32,420 little machine that cuts? 596 00:21:34,010 --> 00:21:36,139 That cuts strings 597 00:21:36,140 --> 00:21:38,449 to the precise length that he needs. 598 00:21:38,450 --> 00:21:39,709 And then they're labeled so that when he 599 00:21:39,710 --> 00:21:41,299 shows up, the only thing he has to do is 600 00:21:41,300 --> 00:21:43,999 take a numbered string and 601 00:21:44,000 --> 00:21:45,259 hang it on the ceiling in the correct 602 00:21:45,260 --> 00:21:47,509 place, and you don't have to do 603 00:21:47,510 --> 00:21:49,669 any measurement on site or in place. 604 00:21:49,670 --> 00:21:51,679 And so for him, it was easier to build 605 00:21:51,680 --> 00:21:54,140 this kind of hacked machine 606 00:21:56,090 --> 00:21:58,189 than it would be for him to 607 00:21:58,190 --> 00:22:00,259 then it would be for him to to cut each 608 00:22:00,260 --> 00:22:01,309 string manually. 609 00:22:01,310 --> 00:22:02,930 And similarly, a line 610 00:22:04,910 --> 00:22:07,229 built this 24 bit friendship loop, 611 00:22:07,230 --> 00:22:09,409 which is a funny project by itself where 612 00:22:09,410 --> 00:22:11,539 you can design friendship bracelets 613 00:22:11,540 --> 00:22:13,759 on a on a web interface, and 614 00:22:13,760 --> 00:22:15,859 then it is automatically 615 00:22:15,860 --> 00:22:18,289 controlled with these coils, which 616 00:22:18,290 --> 00:22:20,419 of the threads that you lift and lower 617 00:22:20,420 --> 00:22:21,739 at any given point. 618 00:22:21,740 --> 00:22:23,690 And so to be able to make this, he needed 619 00:22:24,830 --> 00:22:26,329 a bunch of coils of a specific 620 00:22:26,330 --> 00:22:27,319 resistance. 621 00:22:27,320 --> 00:22:29,659 And so the easiest way for him to do that 622 00:22:29,660 --> 00:22:31,789 to get those coils was to make another 623 00:22:31,790 --> 00:22:34,969 machine that would win these coils. 624 00:22:34,970 --> 00:22:37,279 And so, you know, if if 625 00:22:37,280 --> 00:22:40,009 it becomes easier to start prototyping 626 00:22:40,010 --> 00:22:42,079 machines to help make 627 00:22:42,080 --> 00:22:44,449 more machines, then 628 00:22:44,450 --> 00:22:46,129 maybe we would be able to have a much 629 00:22:46,130 --> 00:22:48,259 bigger explosion of, you know, 630 00:22:48,260 --> 00:22:49,339 automated control. 631 00:22:51,170 --> 00:22:53,569 Here's a turntable that 632 00:22:53,570 --> 00:22:55,849 another machines that make project 633 00:22:55,850 --> 00:22:57,919 collaborative work done where, 634 00:22:57,920 --> 00:23:00,139 OK, this is like not a very nice 635 00:23:00,140 --> 00:23:02,959 design, right? This is just gestural. 636 00:23:02,960 --> 00:23:04,609 I need a thing that does a thing. 637 00:23:04,610 --> 00:23:05,899 I need a turntable. 638 00:23:05,900 --> 00:23:06,979 And the only reason he wanted this 639 00:23:06,980 --> 00:23:09,199 turntable was so that the 640 00:23:09,200 --> 00:23:11,419 3D display that he was working on 641 00:23:11,420 --> 00:23:13,759 could be photographed very stably 642 00:23:13,760 --> 00:23:15,529 in this time lapse. 643 00:23:15,530 --> 00:23:17,599 So it's yeah, he makes 3D 644 00:23:17,600 --> 00:23:18,600 displays are pretty cool. 645 00:23:20,330 --> 00:23:22,489 So how can we make all of these kind 646 00:23:22,490 --> 00:23:24,709 of processes easier if you wanted 647 00:23:24,710 --> 00:23:26,239 to automate anything? 648 00:23:26,240 --> 00:23:28,999 Like do you really want to go through 649 00:23:29,000 --> 00:23:31,039 the stress of engineering a different 650 00:23:31,040 --> 00:23:33,439 system and repurposing it to 651 00:23:33,440 --> 00:23:35,030 what it is that you want to be making? 652 00:23:36,680 --> 00:23:38,749 So this is kind of how I 653 00:23:38,750 --> 00:23:41,599 break down our machine 654 00:23:41,600 --> 00:23:43,009 control systems. 655 00:23:43,010 --> 00:23:45,139 You have at the top of this pyramid 656 00:23:45,140 --> 00:23:47,029 a tool head and the tool head is 657 00:23:47,030 --> 00:23:49,159 controlled by some mechanical system, 658 00:23:49,160 --> 00:23:50,959 which is controlled by some motors, maybe 659 00:23:50,960 --> 00:23:53,329 some sensors that position the motors 660 00:23:53,330 --> 00:23:55,639 and they have a control system. 661 00:23:55,640 --> 00:23:57,440 So some kind of hardware, 662 00:23:58,670 --> 00:24:00,469 some kind of hardware layer that actually 663 00:24:00,470 --> 00:24:02,219 sends pulses to the motors. 664 00:24:02,220 --> 00:24:04,519 And those things are in turn controlled 665 00:24:04,520 --> 00:24:07,099 by applications and interfaces, which 666 00:24:07,100 --> 00:24:09,289 could be software. 667 00:24:09,290 --> 00:24:10,969 They could be some other kind of 668 00:24:10,970 --> 00:24:11,899 interface. 669 00:24:11,900 --> 00:24:13,969 And so if this is how we break down all 670 00:24:13,970 --> 00:24:15,709 of those different systems, a lot of 671 00:24:15,710 --> 00:24:17,839 those things are 672 00:24:17,840 --> 00:24:18,859 relatively straightforward. 673 00:24:18,860 --> 00:24:21,019 But the control system, like writing 674 00:24:21,020 --> 00:24:23,359 applications and software, is relatively 675 00:24:23,360 --> 00:24:25,489 easy in comparison to prototyping a 676 00:24:25,490 --> 00:24:26,569 control system. 677 00:24:26,570 --> 00:24:29,299 And so if making the control system is 678 00:24:29,300 --> 00:24:30,859 kind of the bottleneck or at least what I 679 00:24:30,860 --> 00:24:33,079 saw was the bottlenecks and what 680 00:24:33,080 --> 00:24:35,209 can we do to address making that kind 681 00:24:35,210 --> 00:24:36,769 of prototyping easier? 682 00:24:36,770 --> 00:24:39,259 So this is an article that 683 00:24:39,260 --> 00:24:42,049 my advisor Neil wrote back in 2004, 684 00:24:42,050 --> 00:24:44,119 together with Danny Cohen, Danny Cohen, 685 00:24:44,120 --> 00:24:46,759 the guy that said variable length 686 00:24:46,760 --> 00:24:48,529 namespace addressing, then we wouldn't 687 00:24:48,530 --> 00:24:51,049 have this whole IPv4 IPv6 problem 688 00:24:51,050 --> 00:24:52,309 anyway. 689 00:24:52,310 --> 00:24:54,439 The The 690 00:24:54,440 --> 00:24:56,569 Internet of Things, the notion that 691 00:24:56,570 --> 00:24:57,709 everything is going to be networked in 692 00:24:57,710 --> 00:24:59,149 the future, assuming that we have enough 693 00:24:59,150 --> 00:25:01,309 space for it, and that you should be able 694 00:25:01,310 --> 00:25:02,989 to communicate with each node 695 00:25:02,990 --> 00:25:03,889 individually. 696 00:25:03,890 --> 00:25:05,569 And so something that I thought was an 697 00:25:05,570 --> 00:25:07,019 interesting thing to play with. 698 00:25:07,020 --> 00:25:09,529 So this is a a router 699 00:25:09,530 --> 00:25:12,499 that I hacked a long time ago. 700 00:25:12,500 --> 00:25:14,569 It has a useful linksys routers 701 00:25:14,570 --> 00:25:16,339 that had a serial port that you could 702 00:25:16,340 --> 00:25:18,349 communicate with so that you could add a 703 00:25:18,350 --> 00:25:19,880 little bridge so that 704 00:25:21,240 --> 00:25:23,839 Mega 168 705 00:25:23,840 --> 00:25:26,629 implements a serial, 706 00:25:26,630 --> 00:25:29,149 a slip protocol so that you can have 707 00:25:29,150 --> 00:25:31,669 lymph nodes hanging off this router 708 00:25:31,670 --> 00:25:33,140 that are addressable 709 00:25:34,160 --> 00:25:35,239 from the internet. 710 00:25:35,240 --> 00:25:38,179 So there's this notion of like networked 711 00:25:38,180 --> 00:25:41,419 lymph nodes or machine components 712 00:25:41,420 --> 00:25:43,489 kind of informed the way 713 00:25:43,490 --> 00:25:44,959 that I was going to think about making 714 00:25:44,960 --> 00:25:47,389 machines and also 715 00:25:47,390 --> 00:25:49,399 sometimes at work, I have to work on 716 00:25:49,400 --> 00:25:51,889 things that are 717 00:25:51,890 --> 00:25:53,419 that make money for our research group. 718 00:25:53,420 --> 00:25:55,669 So this was a a big control system 719 00:25:55,670 --> 00:25:58,039 for curing carbon fiber airplane wings, 720 00:25:59,060 --> 00:26:01,129 and each node has 721 00:26:01,130 --> 00:26:03,289 temperature sensing and heating in 722 00:26:03,290 --> 00:26:05,479 it. And so that was another kind 723 00:26:05,480 --> 00:26:07,609 of machine network 724 00:26:07,610 --> 00:26:09,709 that I built to 725 00:26:09,710 --> 00:26:11,809 be able to communicate over this whole 726 00:26:11,810 --> 00:26:15,109 hardware layer where instead of having 727 00:26:15,110 --> 00:26:17,479 IPv6 addresses because it turns out, 728 00:26:17,480 --> 00:26:19,429 no one supports that. 729 00:26:19,430 --> 00:26:21,559 It has a it has that kind 730 00:26:21,560 --> 00:26:24,409 of address is identity 731 00:26:24,410 --> 00:26:26,539 is is 732 00:26:26,540 --> 00:26:28,039 where it is in the network. 733 00:26:28,040 --> 00:26:30,049 And so I decided that this was going to 734 00:26:30,050 --> 00:26:32,899 be the way that I should also talk to 735 00:26:32,900 --> 00:26:35,029 the machines. So this is 736 00:26:35,030 --> 00:26:37,309 kind of the the first control system 737 00:26:37,310 --> 00:26:39,649 I built for it, a bus network. 738 00:26:39,650 --> 00:26:41,989 So each motor 739 00:26:41,990 --> 00:26:44,329 on this network has an identity 740 00:26:44,330 --> 00:26:46,519 x, y z 741 00:26:46,520 --> 00:26:48,439 and and and you can address them 742 00:26:48,440 --> 00:26:50,569 individually by calling functions on them 743 00:26:50,570 --> 00:26:52,669 so you don't have a G Code 744 00:26:52,670 --> 00:26:54,739 interpreter with that recompile of 745 00:26:54,740 --> 00:26:56,149 whatever it is that you wanted to do and 746 00:26:56,150 --> 00:26:58,309 change that into motor 747 00:26:58,310 --> 00:27:00,559 commands you you can write 748 00:27:00,560 --> 00:27:02,839 a you can write as 749 00:27:02,840 --> 00:27:04,349 your own script that calls function 750 00:27:04,350 --> 00:27:06,409 specifically on each motor on the 751 00:27:06,410 --> 00:27:08,569 network instead of having to go 752 00:27:08,570 --> 00:27:10,130 through this state space. 753 00:27:11,750 --> 00:27:13,909 And so it's 754 00:27:13,910 --> 00:27:15,409 grown since then. 755 00:27:15,410 --> 00:27:17,269 And so the library is now called PI 756 00:27:17,270 --> 00:27:19,339 gushed out. And the way that you 757 00:27:19,340 --> 00:27:21,259 can, the way that you can interface with 758 00:27:21,260 --> 00:27:23,419 it is you just you write a virtual 759 00:27:23,420 --> 00:27:25,459 machine had an argument with my friend 760 00:27:25,460 --> 00:27:27,589 Marco about this yesterday, where he said 761 00:27:27,590 --> 00:27:28,819 the only reason that you call it a 762 00:27:28,820 --> 00:27:30,919 virtual machine is because you 763 00:27:30,920 --> 00:27:33,259 think that software is all virtual 764 00:27:33,260 --> 00:27:34,429 and that real stuff is real. 765 00:27:34,430 --> 00:27:36,049 So maybe it should just be called a 766 00:27:36,050 --> 00:27:37,699 machine. Not a virtual machine. 767 00:27:37,700 --> 00:27:39,499 Anyway, that was confusing digression. 768 00:27:39,500 --> 00:27:41,629 Sorry, the but the 769 00:27:41,630 --> 00:27:43,939 way that you you would initialize it is 770 00:27:43,940 --> 00:27:45,259 for each other. 771 00:27:45,260 --> 00:27:46,669 For each node you say, OK, I'm going to 772 00:27:46,670 --> 00:27:48,679 initialize an x A6 node. 773 00:27:48,680 --> 00:27:50,989 My x axis is a lead screw 774 00:27:50,990 --> 00:27:52,789 has this pitch. 775 00:27:52,790 --> 00:27:55,659 It has this way of communicating with it. 776 00:27:55,660 --> 00:27:57,649 It has parallel kinematics with this 777 00:27:57,650 --> 00:27:59,539 other node. So when you call functions on 778 00:27:59,540 --> 00:28:01,279 it, you have to call functions on both at 779 00:28:01,280 --> 00:28:02,419 the same time. 780 00:28:02,420 --> 00:28:04,609 And and that's all. 781 00:28:04,610 --> 00:28:06,289 It's all you have to write. 782 00:28:06,290 --> 00:28:08,239 You don't have to write a whole G Code 783 00:28:08,240 --> 00:28:10,519 interpretation layer. So if Travis 784 00:28:10,520 --> 00:28:12,649 had used this, he wouldn't 785 00:28:12,650 --> 00:28:15,149 have to have, like complicated. 786 00:28:15,150 --> 00:28:17,359 We measured how his timing 787 00:28:17,360 --> 00:28:19,529 belt gearing ratios interface with each. 788 00:28:19,530 --> 00:28:21,689 There and then write software that took 789 00:28:21,690 --> 00:28:23,189 that into account. 790 00:28:23,190 --> 00:28:25,769 It would have just done that for him 791 00:28:25,770 --> 00:28:27,929 and built into the 792 00:28:27,930 --> 00:28:30,029 library is a way that you 793 00:28:30,030 --> 00:28:32,429 can add other kind of more legacy 794 00:28:32,430 --> 00:28:34,739 notes. So say you couldn't control. 795 00:28:34,740 --> 00:28:36,179 So you've got something out of the trash 796 00:28:36,180 --> 00:28:37,619 and you couldn't necessarily control it 797 00:28:38,640 --> 00:28:39,929 with your. 798 00:28:39,930 --> 00:28:41,999 You couldn't necessarily control it with 799 00:28:42,000 --> 00:28:43,229 the piker style. 800 00:28:43,230 --> 00:28:44,339 No library. 801 00:28:44,340 --> 00:28:46,619 You can still import other 802 00:28:46,620 --> 00:28:48,179 virtual nodes into the network. 803 00:28:48,180 --> 00:28:50,249 So this terrible photo, 804 00:28:50,250 --> 00:28:52,470 I'm sorry about it, but this is 805 00:28:53,620 --> 00:28:56,159 a gel printer that 806 00:28:56,160 --> 00:28:58,919 I made with a line 807 00:28:58,920 --> 00:29:00,989 for Jennifer Lewis, professor at Harvard, 808 00:29:00,990 --> 00:29:03,299 who does functional ink printing. 809 00:29:03,300 --> 00:29:05,189 And so it's kind of a it's a pressure box 810 00:29:05,190 --> 00:29:07,499 in the pressure box can like 811 00:29:07,500 --> 00:29:09,749 shoot out amounts of Goop and 812 00:29:09,750 --> 00:29:11,849 you can send it serial commands to 813 00:29:11,850 --> 00:29:13,379 tell it how much group to shoot out at 814 00:29:13,380 --> 00:29:14,369 any given point. 815 00:29:14,370 --> 00:29:16,609 And so that box, with its legacy 816 00:29:16,610 --> 00:29:18,959 RSU 32 interface, just became another 817 00:29:18,960 --> 00:29:20,639 node on the network that we're able to 818 00:29:20,640 --> 00:29:21,989 integrate into the rest of the control 819 00:29:21,990 --> 00:29:23,579 system. So you don't have to write 820 00:29:23,580 --> 00:29:25,770 something on top of another controller 821 00:29:26,880 --> 00:29:28,349 that then allows everything to interface 822 00:29:28,350 --> 00:29:29,350 with each other. 823 00:29:30,180 --> 00:29:32,249 So we made another liquid handling 824 00:29:32,250 --> 00:29:33,539 device. It turns out that biologists 825 00:29:33,540 --> 00:29:36,119 spend a huge amount of money on machines 826 00:29:36,120 --> 00:29:38,519 that are not technically 827 00:29:38,520 --> 00:29:40,109 very complicated, like moving a little 828 00:29:40,110 --> 00:29:42,299 bit of liquid from one well, well, plate 829 00:29:42,300 --> 00:29:44,279 into another. Well, plate you can. 830 00:29:44,280 --> 00:29:46,289 You can sell biologist's machines for 831 00:29:46,290 --> 00:29:48,449 hundreds of thousands of dollars. 832 00:29:48,450 --> 00:29:49,979 I don't really understand the economics 833 00:29:49,980 --> 00:29:52,979 of that, but this was a collaboration 834 00:29:52,980 --> 00:29:55,259 with Scott and myself 835 00:29:55,260 --> 00:29:57,419 from Caltech and will from my lab, where 836 00:29:57,420 --> 00:29:59,939 in two days, 837 00:29:59,940 --> 00:30:02,039 two days, three days we 838 00:30:02,040 --> 00:30:04,889 built a microliter 839 00:30:04,890 --> 00:30:07,109 pipetting machine using the same control 840 00:30:07,110 --> 00:30:09,119 system and interface. 841 00:30:09,120 --> 00:30:11,189 And so not to 842 00:30:11,190 --> 00:30:13,289 just show you machine examples, 843 00:30:13,290 --> 00:30:15,389 you now no longer are 844 00:30:15,390 --> 00:30:17,579 necessarily confined to the interfaces 845 00:30:17,580 --> 00:30:19,979 that the manufacturers 846 00:30:19,980 --> 00:30:21,689 give you. So this is a this is a web 847 00:30:21,690 --> 00:30:23,699 based interface which combines both a 848 00:30:23,700 --> 00:30:25,979 tutorial for how to mill a PCB with 849 00:30:25,980 --> 00:30:28,049 a small format milling machine and 850 00:30:28,050 --> 00:30:29,969 the control system for it so that there's 851 00:30:29,970 --> 00:30:31,589 like a server running that talks to both 852 00:30:31,590 --> 00:30:33,749 your machine and your input, 853 00:30:33,750 --> 00:30:35,819 generates towpath files and sends them 854 00:30:35,820 --> 00:30:37,289 to your machine online. 855 00:30:39,120 --> 00:30:41,279 And so this is a this is a one 856 00:30:41,280 --> 00:30:43,499 of the one of the hardware layer nodes 857 00:30:43,500 --> 00:30:44,500 that. 858 00:30:45,750 --> 00:30:48,179 That controls each one of these axes, 859 00:30:48,180 --> 00:30:50,339 so it's a it's 860 00:30:50,340 --> 00:30:52,409 at mega 328 P based, which 861 00:30:52,410 --> 00:30:54,239 means that you can also program it 862 00:30:54,240 --> 00:30:56,069 through the Arduino interface should you 863 00:30:56,070 --> 00:30:57,209 feel so inclined. 864 00:30:57,210 --> 00:30:59,429 And it has a stepper motor, has a stepper 865 00:30:59,430 --> 00:31:01,589 motor controller on board so you can use 866 00:31:01,590 --> 00:31:03,989 that to control different stepper motors 867 00:31:03,990 --> 00:31:06,059 conveniently has a NEMA 17 868 00:31:06,060 --> 00:31:08,129 hold pattern. So if you wanted to attach 869 00:31:08,130 --> 00:31:10,559 it to any new MY17 stepper motor, 870 00:31:10,560 --> 00:31:12,659 that would be relatively straightforward. 871 00:31:12,660 --> 00:31:14,729 And so the way that you 872 00:31:14,730 --> 00:31:17,099 can do the control system layer 873 00:31:17,100 --> 00:31:19,289 for any of these machines is you just 874 00:31:19,290 --> 00:31:21,359 add more nodes to 875 00:31:21,360 --> 00:31:23,609 a network and then you talk 876 00:31:23,610 --> 00:31:24,759 to it over a computer. 877 00:31:24,760 --> 00:31:27,749 So instead of having a 878 00:31:27,750 --> 00:31:29,939 monolithic control system, 879 00:31:29,940 --> 00:31:32,909 you have a virtual machine network. 880 00:31:32,910 --> 00:31:35,009 So control systems. 881 00:31:35,010 --> 00:31:36,989 I guess not super exciting to everyone. 882 00:31:36,990 --> 00:31:39,239 So can we make 883 00:31:39,240 --> 00:31:40,619 the rest over? 884 00:31:40,620 --> 00:31:43,109 Can we make the rest of the machines 885 00:31:43,110 --> 00:31:44,279 more modular as well? 886 00:31:44,280 --> 00:31:45,539 Can can the rest of the 887 00:31:46,560 --> 00:31:48,839 can the mechanical part and 888 00:31:48,840 --> 00:31:50,339 maybe the software part also be more 889 00:31:50,340 --> 00:31:52,559 modular? So if we think back to 890 00:31:52,560 --> 00:31:55,199 the brief introduction to machine design 891 00:31:55,200 --> 00:31:57,419 from earlier, 892 00:31:57,420 --> 00:31:58,979 like what is it that you might want to be 893 00:31:58,980 --> 00:32:00,749 able to do? You might want to move only 894 00:32:00,750 --> 00:32:03,119 in one axis, maybe in two axis, 895 00:32:03,120 --> 00:32:04,889 you want two degrees of freedom or a 896 00:32:04,890 --> 00:32:05,789 three. 897 00:32:05,790 --> 00:32:08,729 And so we decided to build these. 898 00:32:08,730 --> 00:32:10,979 We decided to build these kind of one 899 00:32:10,980 --> 00:32:13,079 one degree of freedom 900 00:32:13,080 --> 00:32:15,209 stages where you 901 00:32:15,210 --> 00:32:17,909 just move one thing back and forth 902 00:32:17,910 --> 00:32:19,409 and you can communicate with that over 903 00:32:19,410 --> 00:32:20,939 now where you might want to add a head to 904 00:32:20,940 --> 00:32:22,349 that. So maybe you just want something 905 00:32:22,350 --> 00:32:25,379 that displays a message back and forth, 906 00:32:25,380 --> 00:32:27,929 or maybe you want 907 00:32:27,930 --> 00:32:30,149 two degrees of freedom, so you move 908 00:32:30,150 --> 00:32:32,669 to things back and forth and 909 00:32:32,670 --> 00:32:35,459 you could add a head to this. 910 00:32:35,460 --> 00:32:37,559 Or maybe you want a 911 00:32:37,560 --> 00:32:39,149 maybe you want to move in this direction. 912 00:32:39,150 --> 00:32:41,489 So like, say, with this machine, 913 00:32:41,490 --> 00:32:43,649 you could put a pen on that 914 00:32:43,650 --> 00:32:45,779 platform that moves up and down, slide 915 00:32:45,780 --> 00:32:48,059 it up against the wall and then draw 916 00:32:48,060 --> 00:32:49,060 on the wall. 917 00:32:50,460 --> 00:32:52,649 Or if you need three axes. 918 00:32:52,650 --> 00:32:54,149 It turns out that most of the time people 919 00:32:54,150 --> 00:32:56,279 want to do things in the space 920 00:32:56,280 --> 00:32:58,829 as well. So if you wanted three axes or 921 00:32:58,830 --> 00:33:00,119 you could start thinking about the ways 922 00:33:00,120 --> 00:33:01,769 that you could change chain these kinds 923 00:33:01,770 --> 00:33:03,839 of machines together. So this is a four 924 00:33:03,840 --> 00:33:05,639 axis for axis control. 925 00:33:05,640 --> 00:33:07,709 So you're moving something like this 926 00:33:07,710 --> 00:33:09,869 and like this. So maybe you you can 927 00:33:09,870 --> 00:33:11,009 move things in this direction. 928 00:33:11,010 --> 00:33:13,259 So the wire EDM, 929 00:33:13,260 --> 00:33:14,789 they showed you a while back that has 930 00:33:14,790 --> 00:33:16,949 four axis machine control so that you can 931 00:33:16,950 --> 00:33:17,950 cut metal 932 00:33:19,200 --> 00:33:21,149 and like a square on one side and a 933 00:33:21,150 --> 00:33:22,109 circle in another. 934 00:33:22,110 --> 00:33:24,479 And so this was a mockup that we did 935 00:33:24,480 --> 00:33:27,119 for a hot wirecutter 936 00:33:27,120 --> 00:33:28,409 of four axis hot wire cutters. 937 00:33:28,410 --> 00:33:30,749 So if we wanted to make air foils 938 00:33:30,750 --> 00:33:32,879 for UAV or things like that, 939 00:33:32,880 --> 00:33:33,809 we could. 940 00:33:33,810 --> 00:33:35,189 We couldn't make it with a machine like 941 00:33:35,190 --> 00:33:37,289 that. So we started prototyping this 942 00:33:37,290 --> 00:33:40,349 kind of modular machine network. 943 00:33:40,350 --> 00:33:42,419 So this is the first version that we 944 00:33:42,420 --> 00:33:44,699 made in Moscow 945 00:33:44,700 --> 00:33:47,549 in October, and then this is another 946 00:33:47,550 --> 00:33:49,649 another version. So these are all made 947 00:33:49,650 --> 00:33:51,029 with HDP. 948 00:33:51,030 --> 00:33:53,099 So I'm I guess I kind 949 00:33:53,100 --> 00:33:55,229 of glossed over it. But the MTM snap 950 00:33:55,230 --> 00:33:57,839 is made with HDP that is snap 951 00:33:57,840 --> 00:33:59,939 fit together, which makes it easier to 952 00:33:59,940 --> 00:34:02,159 prototype mechanical systems 953 00:34:02,160 --> 00:34:03,509 because you don't necessarily need as 954 00:34:03,510 --> 00:34:04,589 many fasteners. 955 00:34:04,590 --> 00:34:06,539 And you can build error correction into 956 00:34:06,540 --> 00:34:08,729 the way the plastic snap 957 00:34:08,730 --> 00:34:11,189 together. And so these were 958 00:34:11,190 --> 00:34:12,448 these were built kind of with the same 959 00:34:12,449 --> 00:34:15,509 premise that you're using plastics, 960 00:34:15,510 --> 00:34:18,238 but turns out HDP is pretty heavy. 961 00:34:18,239 --> 00:34:19,589 If you want to have the amount of 962 00:34:19,590 --> 00:34:21,569 stiffness that you might require for this 963 00:34:21,570 --> 00:34:23,819 kind of machine, so then the 964 00:34:23,820 --> 00:34:26,069 the latest the latest 965 00:34:26,070 --> 00:34:28,769 version that we made of it is 966 00:34:28,770 --> 00:34:30,809 made out of bent sheet metal. 967 00:34:30,810 --> 00:34:32,999 So this is anodized 968 00:34:33,000 --> 00:34:35,579 aluminum with 969 00:34:35,580 --> 00:34:37,678 so you can see serial 970 00:34:37,679 --> 00:34:39,779 serial kinematics, system lead screw 971 00:34:39,780 --> 00:34:42,448 based guide shafts, 972 00:34:42,449 --> 00:34:44,638 bent aluminum bent 973 00:34:44,639 --> 00:34:45,639 aluminum frame 974 00:34:46,710 --> 00:34:48,719 so that you can rapidly prototype 975 00:34:49,800 --> 00:34:51,089 whatever kind of machine you want. 976 00:34:51,090 --> 00:34:52,559 So here is a 977 00:34:54,090 --> 00:34:56,339 last month we 978 00:34:56,340 --> 00:34:58,829 built the hotwired cutter 979 00:34:58,830 --> 00:35:00,510 that we thought about before. 980 00:35:01,680 --> 00:35:02,689 Here's a video of that 981 00:35:02,690 --> 00:35:04,799 that and machines and the sample that 982 00:35:04,800 --> 00:35:06,869 mapping machines ensure that my 983 00:35:06,870 --> 00:35:08,489 actions and the sample that 984 00:35:08,490 --> 00:35:10,559 mathematicians enjoy, that my 985 00:35:10,560 --> 00:35:13,169 emotions and unsayable got mathematicians 986 00:35:13,170 --> 00:35:14,039 and that 987 00:35:14,040 --> 00:35:15,899 my intentions on the table got 988 00:35:15,900 --> 00:35:17,979 mathematicians, machines and so that my 989 00:35:17,980 --> 00:35:18,980 ass. 990 00:36:22,070 --> 00:36:24,559 So that took us 991 00:36:24,560 --> 00:36:26,629 twenty two hours to build from. 992 00:36:26,630 --> 00:36:29,149 No, like we had sheet metal stock 993 00:36:29,150 --> 00:36:30,589 and motors. 994 00:36:30,590 --> 00:36:32,359 And I had to solder the whole control 995 00:36:32,360 --> 00:36:34,609 system and I actually did go to sleep, 996 00:36:34,610 --> 00:36:36,289 so it wasn't like I stayed up for twenty 997 00:36:36,290 --> 00:36:37,189 two hours. 998 00:36:37,190 --> 00:36:39,259 And so it kind of brings us to 999 00:36:39,260 --> 00:36:41,059 this possibility of if you want to 1000 00:36:41,060 --> 00:36:43,279 rapidly prototype rapid prototyping 1001 00:36:43,280 --> 00:36:45,649 machines, these are all kind of 1002 00:36:45,650 --> 00:36:47,869 modules and parts that 1003 00:36:47,870 --> 00:36:49,549 I've been working on to try to make that 1004 00:36:49,550 --> 00:36:50,569 easier. 1005 00:36:50,570 --> 00:36:52,099 So obviously, it wouldn't mean anything 1006 00:36:52,100 --> 00:36:54,379 to you unless you could use any of it to 1007 00:36:54,380 --> 00:36:56,569 MTM machines that make that 1008 00:36:56,570 --> 00:36:59,059 CBA center for bits, atoms that give you 1009 00:36:59,060 --> 00:37:01,429 all of the firmware, all of the files, 1010 00:37:01,430 --> 00:37:03,739 all of the control system 1011 00:37:03,740 --> 00:37:05,809 for designs and layouts are all available 1012 00:37:05,810 --> 00:37:07,729 there. If you felt like making any of 1013 00:37:07,730 --> 00:37:10,609 them. And so yeah, that 1014 00:37:10,610 --> 00:37:12,229 that's all I wanted to show you. 1015 00:37:12,230 --> 00:37:14,449 I wanted to thank Fabian 1016 00:37:14,450 --> 00:37:16,999 for inviting me here and 1017 00:37:17,000 --> 00:37:18,439 the kids computer club. 1018 00:37:18,440 --> 00:37:19,440 And that's all. 1019 00:37:30,610 --> 00:37:32,229 Thank you very much. 1020 00:37:32,230 --> 00:37:34,029 We have 10 minutes for question and 1021 00:37:34,030 --> 00:37:36,249 answer if any 1022 00:37:36,250 --> 00:37:39,399 questions, please go to the 1023 00:37:39,400 --> 00:37:41,320 microphone and then we can start. 1024 00:37:46,520 --> 00:37:47,570 No questions. 1025 00:37:49,860 --> 00:37:51,139 It's because it's very early, I 1026 00:37:51,140 --> 00:37:52,219 understand 1027 00:37:52,220 --> 00:37:54,409 it was a very good presentation, so there 1028 00:37:54,410 --> 00:37:55,879 are no open questions. 1029 00:37:55,880 --> 00:37:57,329 OK, good. 1030 00:37:57,330 --> 00:37:59,569 Oh, that's one micro 1031 00:37:59,570 --> 00:38:00,570 three. 1032 00:38:01,220 --> 00:38:03,409 Hi. I notice you use a lot of. 1033 00:38:06,690 --> 00:38:08,819 Numeric control machines to actually make 1034 00:38:08,820 --> 00:38:11,549 the machines if you make. 1035 00:38:11,550 --> 00:38:13,709 Have you ever actually made anything out 1036 00:38:13,710 --> 00:38:14,710 of. 1037 00:38:15,370 --> 00:38:17,829 Raw materials without any 1038 00:38:17,830 --> 00:38:19,889 gourmet control machines, 1039 00:38:19,890 --> 00:38:21,189 they can't all something. 1040 00:38:21,190 --> 00:38:22,539 Oh yeah, absolutely. 1041 00:38:22,540 --> 00:38:23,739 So the. 1042 00:38:23,740 --> 00:38:24,849 So sorry. 1043 00:38:24,850 --> 00:38:27,309 And what's the time difference 1044 00:38:27,310 --> 00:38:29,739 between if you ever done 1045 00:38:29,740 --> 00:38:31,270 something with both? 1046 00:38:34,080 --> 00:38:36,329 Well, well, it's a machine 1047 00:38:36,330 --> 00:38:38,339 like, you know, machine will and with 1048 00:38:38,340 --> 00:38:39,159 handles. 1049 00:38:39,160 --> 00:38:41,449 Right, right? Well, so I 1050 00:38:41,450 --> 00:38:43,559 I guess it kind of depends where in 1051 00:38:43,560 --> 00:38:45,090 the prototyping process 1052 00:38:46,110 --> 00:38:48,269 we are. So the the 1053 00:38:48,270 --> 00:38:50,429 pop fab, the suitcase fabrication 1054 00:38:50,430 --> 00:38:52,769 machine, the first the first 1055 00:38:52,770 --> 00:38:54,179 prototype that we made for that we 1056 00:38:54,180 --> 00:38:55,589 actually cut out a foam core. 1057 00:38:55,590 --> 00:38:57,659 So we just cut it by hand to just kind of 1058 00:38:57,660 --> 00:38:59,159 figure out what the what the system was 1059 00:38:59,160 --> 00:39:00,479 going to look like and how it might fit 1060 00:39:00,480 --> 00:39:02,939 in a suitcase and how it might fold. 1061 00:39:02,940 --> 00:39:05,039 And so that was entirely done by 1062 00:39:05,040 --> 00:39:07,259 hand. But then once 1063 00:39:07,260 --> 00:39:09,449 once you, you know, 1064 00:39:09,450 --> 00:39:10,739 once you want to start building the rest 1065 00:39:10,740 --> 00:39:12,929 of it, it 1066 00:39:12,930 --> 00:39:15,359 it kind of gets prohibitive to 1067 00:39:15,360 --> 00:39:17,699 try to achieve that level of precision 1068 00:39:17,700 --> 00:39:19,169 with hand tools. 1069 00:39:19,170 --> 00:39:21,029 It's definitely possible. 1070 00:39:21,030 --> 00:39:23,129 But my 1071 00:39:23,130 --> 00:39:25,319 my skill set is much 1072 00:39:25,320 --> 00:39:27,599 more attuned to writing code 1073 00:39:27,600 --> 00:39:30,239 that than is executed on a machine 1074 00:39:30,240 --> 00:39:32,159 than necessarily making sure that I'm 1075 00:39:32,160 --> 00:39:34,349 getting a piece of metal within one 1076 00:39:34,350 --> 00:39:35,399 thousandth of an inch, 1077 00:39:36,720 --> 00:39:38,309 which is kind of required if you want to 1078 00:39:38,310 --> 00:39:40,709 be able to move those systems 1079 00:39:40,710 --> 00:39:41,759 precisely in that way. 1080 00:39:41,760 --> 00:39:44,219 So I would say that it's definitely 1081 00:39:44,220 --> 00:39:45,239 everything that you can do with 1082 00:39:45,240 --> 00:39:46,769 numerically controlled machine tools you 1083 00:39:46,770 --> 00:39:48,029 can do by hand. 1084 00:39:48,030 --> 00:39:48,959 There's nothing. 1085 00:39:48,960 --> 00:39:50,219 There's nothing that stopping you from 1086 00:39:50,220 --> 00:39:51,929 doing it, just it just might take a lot 1087 00:39:51,930 --> 00:39:52,979 longer. 1088 00:39:52,980 --> 00:39:54,809 And so since they have all these toys, I 1089 00:39:54,810 --> 00:39:56,730 might as well use them to flesh. 1090 00:39:59,880 --> 00:40:00,880 Thanks. 1091 00:40:02,250 --> 00:40:03,359 There's no question 1092 00:40:03,360 --> 00:40:05,549 yeah, we we saw very nice 1093 00:40:05,550 --> 00:40:07,679 movements of transit systems, 1094 00:40:07,680 --> 00:40:10,439 but do you have any rotation 1095 00:40:10,440 --> 00:40:12,419 systems? I know it's trivial, but 1096 00:40:12,420 --> 00:40:13,739 rotation based systems? 1097 00:40:13,740 --> 00:40:15,899 Yeah, I've built rotation based 1098 00:40:15,900 --> 00:40:17,009 systems before. 1099 00:40:17,010 --> 00:40:18,599 It works fine with the library. 1100 00:40:18,600 --> 00:40:20,549 You just you just import a different 1101 00:40:20,550 --> 00:40:22,589 kinematic model for it. 1102 00:40:22,590 --> 00:40:24,449 And so like, there are certain things 1103 00:40:24,450 --> 00:40:26,639 that are much better are much better 1104 00:40:26,640 --> 00:40:28,739 to do rotational. So at some point we 1105 00:40:28,740 --> 00:40:30,869 had this, we had this idea that we could 1106 00:40:30,870 --> 00:40:32,279 cut records. 1107 00:40:32,280 --> 00:40:34,349 And so we wanted to do a rotational 1108 00:40:34,350 --> 00:40:35,879 system with like an amplifier with a 1109 00:40:35,880 --> 00:40:36,839 needle to scratch. 1110 00:40:36,840 --> 00:40:37,949 And then we were like, What are we doing 1111 00:40:37,950 --> 00:40:39,829 this stupid stuff? 1112 00:40:39,830 --> 00:40:40,859 But yeah, absolutely. 1113 00:40:40,860 --> 00:40:42,539 Yeah, any any kinematic model that you 1114 00:40:42,540 --> 00:40:44,759 want, you should be able to use 1115 00:40:44,760 --> 00:40:46,559 like the fact that things are control 1116 00:40:46,560 --> 00:40:48,739 constrained into a linear systems, 1117 00:40:48,740 --> 00:40:50,819 just kind of an arbitrary artifact of how 1118 00:40:50,820 --> 00:40:52,109 we design things. And if you want to 1119 00:40:52,110 --> 00:40:54,629 design things differently, then 1120 00:40:54,630 --> 00:40:57,529 by all means definitely do that. 1121 00:40:57,530 --> 00:40:58,530 OK, thank you. 1122 00:40:59,130 --> 00:41:00,729 I call one. 1123 00:41:00,730 --> 00:41:02,079 So in the. 1124 00:41:03,110 --> 00:41:05,689 And if it is, it seemed like the 1125 00:41:05,690 --> 00:41:08,809 the passing was all pretty pre-scripted. 1126 00:41:08,810 --> 00:41:10,789 Is there any and that's what you 1127 00:41:10,790 --> 00:41:13,129 mentioned also to automate the passing 1128 00:41:13,130 --> 00:41:15,409 and maybe, yeah, in generic 1129 00:41:15,410 --> 00:41:16,849 way building something. 1130 00:41:16,850 --> 00:41:19,639 So so for, for example, the 1131 00:41:19,640 --> 00:41:21,589 hot Wirecutter, the way that we were 1132 00:41:21,590 --> 00:41:22,639 doing that was 1133 00:41:24,170 --> 00:41:26,719 James would design something in Rhino 1134 00:41:26,720 --> 00:41:29,089 and then I would just export things from. 1135 00:41:29,090 --> 00:41:30,769 So he would he would kind of design 1136 00:41:30,770 --> 00:41:32,329 different shapes in rhino using 1137 00:41:32,330 --> 00:41:33,619 grasshopper and change kind of the 1138 00:41:33,620 --> 00:41:35,059 dimensions of different parts. 1139 00:41:35,060 --> 00:41:37,429 And I would import that directly into 1140 00:41:38,540 --> 00:41:40,219 the control system. 1141 00:41:40,220 --> 00:41:41,239 So. 1142 00:41:41,240 --> 00:41:43,369 So it's not like you have any like 1143 00:41:43,370 --> 00:41:45,619 real time control, although 1144 00:41:45,620 --> 00:41:47,719 in that case, because you're designing 1145 00:41:47,720 --> 00:41:49,339 something that then is being executed by 1146 00:41:49,340 --> 00:41:51,169 the machine. But if you wanted it to be 1147 00:41:51,170 --> 00:41:53,269 like a pentagram or some kind of 1148 00:41:53,270 --> 00:41:55,489 amplification, you could just use that 1149 00:41:55,490 --> 00:41:56,659 as an input to the machine. 1150 00:41:56,660 --> 00:41:58,309 There's nothing, there's nothing that's 1151 00:41:58,310 --> 00:41:59,479 stopping you from doing that. 1152 00:41:59,480 --> 00:42:01,579 The the latency that the network has 1153 00:42:01,580 --> 00:42:02,840 is is really. 1154 00:42:04,300 --> 00:42:06,429 Negligible comparison to how much 1155 00:42:06,430 --> 00:42:08,169 time it would take you two to do any kind 1156 00:42:08,170 --> 00:42:09,789 of real time control for it, so. 1157 00:42:11,550 --> 00:42:12,349 Yeah. 1158 00:42:12,350 --> 00:42:13,469 I'm sorry. 1159 00:42:13,470 --> 00:42:14,470 I think 1160 00:42:15,750 --> 00:42:16,829 that wasn't quite my question. 1161 00:42:16,830 --> 00:42:18,959 Oh, sorry. If you do more complicated 1162 00:42:18,960 --> 00:42:19,960 shapes. 1163 00:42:21,000 --> 00:42:22,739 Oh yeah, absolutely. 1164 00:42:22,740 --> 00:42:25,109 So for modified generating 1165 00:42:25,110 --> 00:42:26,999 a machine to a path? 1166 00:42:27,000 --> 00:42:28,469 I mean, if you plug in a machine which 1167 00:42:28,470 --> 00:42:30,029 looks different than the last machine? 1168 00:42:30,030 --> 00:42:31,409 Yeah, absolutely. 1169 00:42:31,410 --> 00:42:33,569 So one thing 1170 00:42:33,570 --> 00:42:35,249 that I didn't show that we've been 1171 00:42:35,250 --> 00:42:37,439 working on is a kind of a generic 1172 00:42:37,440 --> 00:42:40,289 machine to control 1173 00:42:40,290 --> 00:42:42,239 interface. It's called Code Copy. 1174 00:42:42,240 --> 00:42:44,369 You can download it from code convict 1175 00:42:44,370 --> 00:42:46,949 creator, imitate you and then as a 1176 00:42:46,950 --> 00:42:49,319 as input files to kind of keep everything 1177 00:42:49,320 --> 00:42:50,339 super generic. 1178 00:42:50,340 --> 00:42:52,589 It takes pages, so 1179 00:42:52,590 --> 00:42:54,599 a peg is a bitmap. 1180 00:42:54,600 --> 00:42:56,129 But if you have an extremely high 1181 00:42:56,130 --> 00:42:58,199 resolution tag, you can kind of 1182 00:42:58,200 --> 00:43:00,659 take the vector path from there 1183 00:43:00,660 --> 00:43:02,879 from the edges and use that as 1184 00:43:02,880 --> 00:43:04,439 the way that you can script your tool 1185 00:43:04,440 --> 00:43:06,629 path. So it generates a generic 1186 00:43:06,630 --> 00:43:08,699 kind of path description, which 1187 00:43:08,700 --> 00:43:10,769 then you can feed into the move commands 1188 00:43:10,770 --> 00:43:11,819 of your machine. 1189 00:43:11,820 --> 00:43:13,799 And if you wanted to do three access 1190 00:43:13,800 --> 00:43:15,869 things, you can 1191 00:43:15,870 --> 00:43:17,969 do it with great skill pages 1192 00:43:17,970 --> 00:43:19,949 where the grayscale corresponds to the 1193 00:43:19,950 --> 00:43:20,849 height layer. 1194 00:43:20,850 --> 00:43:23,549 And so we have 1195 00:43:23,550 --> 00:43:25,739 it has it you can 1196 00:43:25,740 --> 00:43:28,229 control. So the the 1197 00:43:28,230 --> 00:43:30,509 gastelu controlled MTM 1198 00:43:30,510 --> 00:43:32,609 snack machine you can control from code 1199 00:43:32,610 --> 00:43:34,919 copy, but it can also control a lot 1200 00:43:34,920 --> 00:43:37,019 of kind of legacy machines like an 1201 00:43:37,020 --> 00:43:39,209 epilog laser cutter has 1202 00:43:39,210 --> 00:43:40,709 the tool path. 1203 00:43:40,710 --> 00:43:42,809 It has the file format for that built in. 1204 00:43:42,810 --> 00:43:44,759 So if you wanted to make an arbitrary 1205 00:43:44,760 --> 00:43:46,919 shape with a black and white peg and 1206 00:43:46,920 --> 00:43:48,509 then send it to an epilog laser cutter, 1207 00:43:48,510 --> 00:43:50,009 you could, which is actually a really 1208 00:43:50,010 --> 00:43:51,059 annoying thing to add. 1209 00:43:51,060 --> 00:43:52,469 Because did you know that the engineers 1210 00:43:52,470 --> 00:43:54,929 for epilog add 10000 spaces 1211 00:43:54,930 --> 00:43:56,429 at the end of their line at the end of 1212 00:43:56,430 --> 00:43:59,159 their files to do file handling well? 1213 00:43:59,160 --> 00:44:00,160 Yeah. 1214 00:44:00,630 --> 00:44:02,369 Thank you, Michael. 1215 00:44:02,370 --> 00:44:03,370 Three 1216 00:44:04,500 --> 00:44:06,569 questions regarding the machines 1217 00:44:06,570 --> 00:44:08,129 building machines. 1218 00:44:08,130 --> 00:44:10,019 How does the accuracy keep up? 1219 00:44:10,020 --> 00:44:11,819 I mean, you showed a big machine building 1220 00:44:11,820 --> 00:44:13,319 a small machine. 1221 00:44:13,320 --> 00:44:15,569 Right, right. OK, so that actually 1222 00:44:15,570 --> 00:44:17,729 is not 1223 00:44:17,730 --> 00:44:19,829 really. So it's something that 1224 00:44:19,830 --> 00:44:21,869 that seems logical that if you would make 1225 00:44:21,870 --> 00:44:23,519 a big machine that has a certain kind of 1226 00:44:23,520 --> 00:44:25,349 inaccuracy, then then if you made a 1227 00:44:25,350 --> 00:44:26,699 machine with it, it would become more and 1228 00:44:26,700 --> 00:44:27,659 more inaccurate. 1229 00:44:27,660 --> 00:44:29,819 But actually, that's that's not 1230 00:44:29,820 --> 00:44:31,559 actually the case because depending on 1231 00:44:31,560 --> 00:44:33,719 how you design the machine, the 1232 00:44:33,720 --> 00:44:35,429 way that the machine fits together 1233 00:44:35,430 --> 00:44:38,129 doesn't have to include the inaccuracies 1234 00:44:38,130 --> 00:44:39,179 from the previous machine. 1235 00:44:39,180 --> 00:44:41,129 So if you look at the the snap blot 1236 00:44:41,130 --> 00:44:43,289 connection of the MTM Snap, it's like a 1237 00:44:43,290 --> 00:44:45,629 it's like a buckle system, the same as 1238 00:44:45,630 --> 00:44:47,939 you would have like on a on a backpack 1239 00:44:47,940 --> 00:44:50,129 or if you had like a strap that clicked 1240 00:44:50,130 --> 00:44:52,529 close. And so you have different 1241 00:44:52,530 --> 00:44:54,599 opposing forces that elastic average 1242 00:44:54,600 --> 00:44:56,289 to make it more precise. 1243 00:44:56,290 --> 00:44:57,689 So the more of those you kind of build 1244 00:44:57,690 --> 00:45:00,179 into the system, you can make something 1245 00:45:00,180 --> 00:45:02,369 arbitrarily precise depending 1246 00:45:02,370 --> 00:45:04,079 on how you engineer the system. 1247 00:45:04,080 --> 00:45:05,879 So even if you had if you if you had 1248 00:45:05,880 --> 00:45:07,380 something else as a 1249 00:45:08,400 --> 00:45:10,349 if you imagine like a child that's 1250 00:45:10,350 --> 00:45:12,239 building something out of Legos like 1251 00:45:12,240 --> 00:45:14,669 Legos have micron precision, right? 1252 00:45:14,670 --> 00:45:16,679 A child does not have micron precision. 1253 00:45:16,680 --> 00:45:18,269 So the fact that you can place the brick 1254 00:45:18,270 --> 00:45:19,739 on top of another brick means that you 1255 00:45:19,740 --> 00:45:22,019 can engineer precision into the system 1256 00:45:22,020 --> 00:45:23,759 without necessarily having to have 1257 00:45:23,760 --> 00:45:25,860 precision in the thing that built it. 1258 00:45:27,810 --> 00:45:29,850 Second, last question from two. 1259 00:45:31,260 --> 00:45:32,279 Hello. 1260 00:45:32,280 --> 00:45:34,469 I've got a question regarding 1261 00:45:34,470 --> 00:45:36,689 the compatibility of 1262 00:45:36,690 --> 00:45:38,249 Pakistan with current 1263 00:45:39,960 --> 00:45:42,239 workflow models of 3D 1264 00:45:42,240 --> 00:45:43,169 printing, for example. 1265 00:45:43,170 --> 00:45:44,069 Yeah. 1266 00:45:44,070 --> 00:45:46,559 So if we use Slicer to generate 1267 00:45:46,560 --> 00:45:48,929 our G Code nowadays, 1268 00:45:48,930 --> 00:45:51,239 how does it, how compatible 1269 00:45:51,240 --> 00:45:52,289 is it? I mean, 1270 00:45:52,290 --> 00:45:54,029 G Code is just a bunch of coordinates, 1271 00:45:54,030 --> 00:45:55,799 right? So you can just write an 1272 00:45:55,800 --> 00:45:58,139 interpreter that will take your code and 1273 00:45:58,140 --> 00:45:59,759 write and then stream it as more 1274 00:45:59,760 --> 00:46:02,189 functions. So I would assume I've 1275 00:46:02,190 --> 00:46:04,079 not written it, but I think it would be 1276 00:46:04,080 --> 00:46:05,279 like five lines of code. 1277 00:46:05,280 --> 00:46:08,339 So using the transition from a 1278 00:46:08,340 --> 00:46:10,949 decode based workflow to Pakistan, 1279 00:46:10,950 --> 00:46:13,229 it should be a trivial, 1280 00:46:13,230 --> 00:46:14,759 effortless yet trivial. 1281 00:46:14,760 --> 00:46:16,649 OK. Thanks. 1282 00:46:16,650 --> 00:46:19,049 Last question from three. 1283 00:46:19,050 --> 00:46:21,119 Yes. So I checked out the website of 1284 00:46:21,120 --> 00:46:23,369 Pakistan, and it says that it will be 1285 00:46:23,370 --> 00:46:24,389 published open source. 1286 00:46:24,390 --> 00:46:26,459 And yeah, it's 2013, 1287 00:46:26,460 --> 00:46:27,539 but. Hmm. 1288 00:46:27,540 --> 00:46:27,909 Yeah. 1289 00:46:27,910 --> 00:46:29,069 Yeah, that's that's that's a little bit 1290 00:46:29,070 --> 00:46:30,599 of a problem, but it's on GitHub. 1291 00:46:30,600 --> 00:46:32,519 If you go to the MTM website instead of 1292 00:46:32,520 --> 00:46:34,199 the Pakistan website, there should be a 1293 00:46:34,200 --> 00:46:35,309 link to the GitHub. 1294 00:46:35,310 --> 00:46:36,569 All right. Thank you. 1295 00:46:36,570 --> 00:46:37,649 Sorry about that. 1296 00:46:37,650 --> 00:46:39,360 I'll fix. Thank you very much. 1297 00:46:40,770 --> 00:46:41,770 APPLAUSE.