[00:00.000 --> 00:00.640] Cool. [00:01.560 --> 00:03.000] Hey everyone, are you having a good time? [00:05.080 --> 00:05.440] Okay. [00:05.760 --> 00:06.520] Anyone in the back? [00:06.640 --> 00:07.820] You guys having a good time too? [00:08.980 --> 00:09.340] Nobody? [00:09.520 --> 00:10.060] Okay, f*ck you. [00:10.180 --> 00:10.800] That guy is. [00:11.440 --> 00:12.240] That guy's awesome. [00:12.460 --> 00:12.760] Cool. [00:12.860 --> 00:15.640] We're about to hear a lecture on designing free hardware, right? [00:15.880 --> 00:17.940] So this sounds like it's going to be a really cool talk. [00:18.100 --> 00:18.980] I'm looking forward to it. [00:19.100 --> 00:20.180] So take it away guys. [00:20.460 --> 00:20.620] Okay. [00:21.600 --> 00:22.120] Hi everybody. [00:22.860 --> 00:23.980] Especially that guy back there. [00:24.080 --> 00:24.660] He's awesome. [00:25.940 --> 00:26.700] My name's Mog. [00:26.980 --> 00:27.600] This is Tim. [00:27.860 --> 00:28.020] Hi. [00:28.020 --> 00:34.740] And like he said, we're going to talk to you today about designing free hardware or scratching your own itch with a soldering iron. [00:35.820 --> 00:36.820] That happened today. [00:39.360 --> 00:42.500] So I thought I'd get the stupid questions. [00:42.680 --> 00:44.860] I mean, the frequently asked questions out of the way. [00:46.100 --> 00:51.980] The first thing people always ask when I tell them about free hardware is, so you're giving me some free stuff? [00:52.660 --> 00:53.640] And no. [00:54.300 --> 00:55.280] Nothing is free. [00:56.120 --> 00:56.960] Except freedom. [00:58.020 --> 01:00.580] So it means free as in speech, not as in beer. [01:02.120 --> 01:07.280] And then the next question people often ask is, so how is this different than anything else? [01:07.340 --> 01:09.480] Any other electronics that you might have? [01:09.660 --> 01:15.320] And so you can break up electronics really into a few separate categories. [01:16.040 --> 01:19.000] The first one is what I refer to as closed hardware. [01:19.000 --> 01:19.440] Closed hardware. [01:19.460 --> 01:21.780] And it's not exactly what you would think. [01:22.280 --> 01:25.620] It's not like your toaster or something else, I would say. [01:26.020 --> 01:35.380] Closed hardware would be something like a DVD player that actively works against you and that you can't fast forward through previews because somebody somewhere hates you. [01:35.620 --> 01:37.840] The region coding and everything else. [01:37.940 --> 01:38.040] Right. [01:38.180 --> 01:43.160] Other limitations that you cannot change on the device that you paid for with your own damn money. [01:43.160 --> 01:45.560] And use however you want. [01:45.700 --> 01:53.520] And so this kind of stuff is exceptionally bad and rates a 0% freedom on my scale. [01:55.240 --> 02:00.820] And then you have this kind of middle ground further up the chain with hackable hardware. [02:00.820 --> 02:10.060] And so, for example, the first thing I really wrote source code for that wasn't on a computer was my Dreamcast. [02:10.600 --> 02:14.240] Early on, some hackers found a way to get around the... [02:14.240 --> 02:19.400] When the system boots, it checks for a key to make sure that the games are signed by the distributors. [02:19.640 --> 02:23.260] And so that you can only run safe games approved by Sega. [02:24.000 --> 02:26.860] And very early on, people found that key. [02:28.460 --> 02:33.220] And overnight, everybody had started porting emulators to the machine and other things. [02:33.480 --> 02:40.320] And I was able to write hello world code and push code over the network and do lots of fun things with it. [02:40.400 --> 02:42.220] And then it was just great. [02:42.240 --> 02:44.180] And it really became my device. [02:44.200 --> 02:49.700] I was able to do anything I could want with it and things that the manufacturer never intended for. [02:50.340 --> 02:55.060] I went through a similar thing playing with the PSP when I picked that console up. [02:55.060 --> 03:01.340] I thought this was really great hardware and a great package, but I couldn't do anything with it without cracking it open and hacking it. [03:01.480 --> 03:04.660] And I got to a point where I could run Linux and I could run my own code on it. [03:04.720 --> 03:06.220] And that's kind of where I wanted to be with it. [03:07.020 --> 03:10.540] And so, with these kind of things, you can get about halfway there. [03:10.780 --> 03:15.340] I would, on the free scale, the freedom dimension, it's around 50%. [03:16.480 --> 03:21.200] Which is good for a lot of things, but we're not all the way there yet. [03:21.400 --> 03:29.460] So, the next thing up on the list, actually, is what most people have been talking about this weekend at the convention, is open source hardware. [03:29.920 --> 03:34.560] And so, open source hardware is hardware, electronics, just like anything else. [03:34.560 --> 03:42.500] But it is licensed to you under a copyleft license, so that you are free to modify the hardware. [03:43.060 --> 03:45.300] The schematics for the hardware are available. [03:45.520 --> 03:46.800] Often the Gerbers are available. [03:47.120 --> 03:51.020] Everything you would need to reproduce the device yourself is there. [03:51.160 --> 03:53.700] And you can make improvements and share them with the community. [03:53.840 --> 03:55.400] Everything is really there. [03:56.360 --> 03:58.920] And there are a lot of great examples of this. [03:59.140 --> 04:00.620] For example, the TV-B-Gone. [04:00.820 --> 04:02.740] Mitch is here this weekend. [04:02.920 --> 04:05.540] I think he even gave a lightning talk about it earlier. [04:06.380 --> 04:07.540] And they're really great. [04:07.700 --> 04:10.880] They cover just about everything. [04:11.120 --> 04:16.680] And so, it rates really high on the freedom dimension at 90%. [04:17.240 --> 04:19.420] So, that's an A for effort. [04:21.000 --> 04:23.940] But, you ask, why doesn't it get all the way? [04:23.940 --> 04:26.580] What makes it different than what I would call free hardware? [04:27.780 --> 04:35.800] And the distinction is that most of the projects that are called open source hardware are currently being built with proprietary software. [04:36.360 --> 04:48.940] A very popular option is Eagle, which comes in a freemium edition, which allows you to build four by three circuit boards with two layers and so many routes, so many other limitations. [04:49.800 --> 04:51.900] But you can do a lot in that little sandbox. [04:51.900 --> 04:56.880] And because of that, so many people have just not cared. [04:57.120 --> 04:59.220] Because they can design their little circuit board. [04:59.500 --> 05:01.340] And by little, I mean they're great projects. [05:01.460 --> 05:06.740] Like the Arduino is an example of something built using Eagle and has taken the world by storm. [05:07.180 --> 05:13.180] But if you wanted to modify it, you're going to have to use this proprietary program on your machine. [05:13.180 --> 05:24.020] And so, what makes free hardware different is free hardware is built from the ground up using free software or open source software. [05:24.640 --> 05:29.340] And so, there is a great example of this in the RepRap project. [05:29.340 --> 05:39.040] The RepRap project is built using gEDA, which is a free software program that allows you to design circuit boards from scratch. [05:39.520 --> 05:46.780] And so, I guess it really fits with the whole RepRap spirit in that you build the printer from scratch and you can replicate. [05:47.320 --> 05:52.040] And then you can go in and make changes with the software, all staying inside the freedom dimension. [05:52.920 --> 05:57.980] And so, free software merits on the freedom scale actually just a 95. [05:58.440 --> 05:59.620] It's just a little bit better. [05:59.720 --> 06:00.420] It's not 100%. [06:01.240 --> 06:10.300] And the problem with free hardware is that really in all electronics, everything is still a black box. [06:10.520 --> 06:20.340] And so, to get to what I would call freedom plus plus, you would have to have gone to the talk yesterday where he talked about printing your own circuit boards. [06:20.340 --> 06:24.000] They're not your own circuit boards, your own transistors. [06:24.460 --> 06:37.320] He gave a talk on, what was it, this organic carbon transistors, which are free because right now, the majority of all electronics are built... [06:37.320 --> 06:38.200] Here, let's go back. [06:39.020 --> 06:39.660] Wrong way. [06:40.460 --> 06:40.820] Preview. [06:41.280 --> 06:48.720] So, the RepRap, even though everything on it is free, the schematics, you can get data sheets that give you in-depth information on all the parts. [06:48.720 --> 06:56.440] So, you really would have all the information to do it, but the app Mega is a black box. [06:56.680 --> 06:58.660] The motor controllers are black boxes. [06:59.260 --> 07:06.800] Everything on it is a collection of black boxes that have great documentation about how to use them, but they are ultimately black boxes. [07:06.800 --> 07:14.240] And so, it's just always moving into a further curve to get down to 100% free. [07:14.420 --> 07:19.280] And so, I would say, right now, people have the option to hit 95 pretty easily. [07:19.700 --> 07:25.320] And that's what we're going to be talking about today, is using free software to develop your free hardware. [07:26.620 --> 07:31.540] And so, then after I've gone through this whole spiel, people say, who cares? [07:31.860 --> 07:32.820] This is stupid. [07:33.320 --> 07:33.840] Why? [07:34.560 --> 07:35.640] You're a free-tard. [07:36.580 --> 07:37.360] Eagles easy. [07:37.620 --> 07:38.480] Eagles easy. [07:38.480 --> 07:38.580] Eagles easy. [07:39.180 --> 07:42.020] And so, my first stance is, I go stalling on them. [07:42.400 --> 07:42.560] You know? [07:43.040 --> 07:43.480] Free software. [07:44.080 --> 07:44.760] It's important. [07:45.960 --> 07:47.960] You gotta fight for your rights. [07:48.780 --> 07:51.400] And then I go, no, I really don't care. [07:51.920 --> 07:52.520] Eagle works. [07:53.140 --> 07:54.300] And so, I go, okay. [07:55.260 --> 07:55.560] You're right. [07:55.600 --> 07:58.260] Eagle's easy, but there are problems. [07:58.460 --> 08:04.880] So, there is two famous examples in the free software community where this has really bitten people. [08:05.960 --> 08:07.580] Java and Bitkeeper. [08:08.480 --> 08:18.160] The Java people, I'm sure you guys have been following the news, Oracle has sued Google for implementing Java, which they gave to the world. [08:20.440 --> 08:22.560] And that's so stupid. [08:22.780 --> 08:23.760] It doesn't make sense. [08:23.980 --> 08:29.360] And all these people were building stuff on Java, even though it really wasn't fully open. [08:29.640 --> 08:34.060] And people just didn't care, because why does it matter? [08:34.200 --> 08:36.520] They anticipated that they were getting something free. [08:36.720 --> 08:36.940] Right. [08:37.100 --> 08:39.600] Because it was free as in beer, not speech. [08:39.800 --> 08:40.820] And that was the problem. [08:40.940 --> 08:42.660] And then a very similar problem with Bitkeeper. [08:43.000 --> 08:45.900] Bitkeeper was a distributed version control system. [08:45.900 --> 08:47.100] It predates Git. [08:47.360 --> 08:50.860] And it was used by the Linux kernel to maintain everything. [08:51.020 --> 08:55.160] And it was given to them for free by the company, because they wanted to be a nice company. [08:55.420 --> 08:59.240] But then one day, somebody started reverse engineering it, who was a Linux kernel hacker. [08:59.480 --> 09:00.180] And they said, nope. [09:00.600 --> 09:01.260] Take our ball. [09:01.300 --> 09:01.680] Go home. [09:01.880 --> 09:04.620] And so, Linux was left in the dark without anything. [09:04.880 --> 09:11.940] And so, if you don't own it, building your infrastructure on top of something is very dangerous. [09:12.180 --> 09:14.120] And so, people should be aware of that. [09:14.260 --> 09:16.120] And that's one point, I would say. [09:16.800 --> 09:28.880] And then, the next one is, with the free software, what free software gives you an advantage in, is that really the tools can be a lot more creative to fill certain niches. [09:29.900 --> 09:40.680] Eagle is great in that it does everything in very straightforward steps, but it doesn't have all the crazy features that a lot of the free software tools have. [09:41.620 --> 09:44.260] And we'll get more into that in a little bit here. [09:44.980 --> 09:47.540] And then, finally, there are limitations. [09:47.780 --> 09:53.480] Even though it's free as in beer, like I said before, there's the four by three, four inches squared. [09:53.480 --> 09:54.920] You're allowed to make your boards. [09:55.100 --> 09:56.120] You're only allowed two layers. [09:56.340 --> 09:57.640] You're only allowed so many traces. [09:59.300 --> 10:01.180] The vias are actually octagons. [10:01.440 --> 10:04.920] There's lots of weird issues with their software. [10:05.100 --> 10:07.100] And it's all on their terms. [10:07.260 --> 10:09.980] It's just whenever they want to give you a new limitation or change. [10:10.160 --> 10:15.180] For example, Eagle just changed all their formats for their file formats. [10:15.320 --> 10:20.240] And so, everybody is having to upgrade their symbols over time to be compatible. [10:20.240 --> 10:24.240] And that doesn't really happen as often in free software. [10:24.260 --> 10:29.360] Because there's no reason we want to push people to use a new version of the software other than it's better. [10:32.520 --> 10:35.160] And so, really, that's why you should be free. [10:35.880 --> 10:41.620] And now that you've decided to be free, and I'm happy you've all decided to be free, there's lots of options. [10:42.800 --> 10:47.540] A really easy place to start if you play with Arduinos is a project called Fritzing. [10:49.140 --> 10:58.520] It allows you to easily rig up and pre-build what you want to build with your Arduino. [10:58.660 --> 11:02.320] It allows you to breadboard up schematics and see that they're going to work. [11:02.500 --> 11:08.100] It has a nice user interface that shows off LEDs, resistors, potentiometers. [11:08.400 --> 11:10.520] It allows you to just easily build projects and document them. [11:10.520 --> 11:11.540] It's all very visual. [11:12.680 --> 11:18.340] But it won't allow you to go...it makes it more difficult to do more complicated things in it. [11:18.440 --> 11:20.020] But it's a great thing to start with. [11:20.220 --> 11:23.820] And it's multi-platform, runs on Mac and GNU Linux. [11:25.800 --> 11:29.520] The next option, actually, I'd like to talk about is one called KiCad. [11:30.460 --> 11:34.660] It's a QT-based EDA. [11:35.100 --> 11:37.920] And it's very popular, I would say. [11:38.560 --> 11:43.740] It's probably more similar to Eagle if people here want to, you know, have a smoother transition. [11:44.720 --> 11:47.100] It's an all-in-one kind of setup. [11:47.440 --> 11:53.120] Your schematics are directly linked to your footprints and everything kind of ties together. [11:53.120 --> 11:56.200] And it even has really cool 3D output. [11:57.940 --> 12:00.760] But I wouldn't recommend it because I don't like QT. [12:02.440 --> 12:03.320] It's an option. [12:03.500 --> 12:04.140] It's an option. [12:04.340 --> 12:08.640] And another option is this project called FreePCB. [12:09.440 --> 12:12.740] I've never used it before because it only runs on Windows. [12:14.380 --> 12:15.860] It looks pretty, though. [12:16.740 --> 12:18.380] I don't know anything more about it. [12:18.660 --> 12:19.520] It is free. [12:19.640 --> 12:20.460] Windows is not free. [12:20.460 --> 12:21.280] Oh, Windows is not free. [12:21.280 --> 12:23.080] Right, and that's why I know nothing about it. [12:23.660 --> 12:24.560] Does it work in Wine? [12:25.600 --> 12:26.020] Supposedly. [12:26.340 --> 12:31.600] But there hasn't been an update on the Wine project about it in like six months. [12:31.640 --> 12:33.120] So I didn't really get that far. [12:34.880 --> 12:37.340] There's another one written in top of Java. [12:37.600 --> 12:40.340] And so it works on Windows, Mac, and Linux. [12:40.740 --> 12:44.500] It has some very cool simulation stuff if you want to do kind of spice things. [12:44.500 --> 12:47.860] It can simulate your circuit and show how things work. [12:47.860 --> 12:49.780] And it also has EDA tools. [12:52.400 --> 12:54.800] And it's a nice tool if you're big into Java, I would say. [12:56.120 --> 12:58.520] And then finally, we have the best tool. [12:58.880 --> 12:59.740] One we use. [12:59.840 --> 13:00.460] The one we use. [13:01.560 --> 13:04.340] And that's why it's...not why it's the best, but it's why we use it. [13:04.840 --> 13:05.960] And it's called gEDA. [13:06.100 --> 13:09.980] It stands for GPL Electronic...I forgot what D means this time. [13:10.240 --> 13:10.600] Design. [13:10.720 --> 13:11.060] Design. [13:11.340 --> 13:11.700] Automation. [13:11.700 --> 13:12.240] Automation. [13:13.400 --> 13:15.560] And it's pronounced GEDA or JEDA. [13:16.040 --> 13:16.480] Yeah. [13:17.240 --> 13:17.640] JEDA. [13:18.080 --> 13:20.720] Mostly depending on which side of the pond you come from, it sounds like. [13:20.720 --> 13:20.960] Right. [13:21.300 --> 13:22.600] British people tend to say JEDA. [13:24.920 --> 13:25.620] Here it is. [13:25.680 --> 13:27.320] This is the Schematics Editor. [13:27.640 --> 13:29.220] This is a schematic we've built. [13:30.080 --> 13:33.180] It allows you to...just like all other schematic, it's pretty standard. [13:33.980 --> 13:38.020] Here's the PCB Footprint Editor and layout. [13:38.620 --> 13:43.640] And here is a Gerber view of a partially finished project here. [13:44.060 --> 14:00.500] And so, the advantages of gEDA are that it's built in the UNIX-style philosophy, and that it's...so each part of gEDA is a separate program that you can chain together to do your project. [14:00.500 --> 14:05.820] And so, it's several different programs, and you run them all in sequence, and you get your build. [14:06.000 --> 14:20.900] And so, it makes it really easy to have a make file that says, you know, take the schematic, get the net list, take it into the layout program, get the layout, get the Gerbers, send it off to the factory. [14:21.140 --> 14:22.680] And so, that's really nice. [14:23.480 --> 14:25.820] And like I was saying, so it's easy to segment the workflow. [14:25.820 --> 14:33.980] So, in particular, in most of our projects, I will do a lot of the work on building the schematic and figuring out what parts we need to use and whatnot. [14:34.220 --> 14:49.760] And then I will, while I'm still working, I will say, Tim, we're going to use these parts, start building footprints for them, and start thinking about the layout of the board while I spend all my time doing this, so we can really get a whole man month in less time. [14:49.760 --> 14:57.860] As soon as he's done with that, he can send those files to me that I can then actually nail down the PCB design as it's finished. [14:58.100 --> 14:58.380] Right. [14:58.480 --> 15:03.840] And he only really needs to look at the output of what I've done, generally, because it's all he needs. [15:04.040 --> 15:09.520] And so, it really is good if you're working with a team, especially, because it allows you to break up the work. [15:11.020 --> 15:18.760] One of the other advantages, I would say, of it is the file format for all of the different parts of gEDA are just text files. [15:19.780 --> 15:23.580] And so, one of the nice things is you can change them outside of the GUI. [15:23.700 --> 15:31.040] You can go in, just open a text file on a text editor, change a comment, you can add comments, you can just move things around easily in there. [15:31.200 --> 15:34.140] There are use cases where it's almost easier to do it that way than... [15:34.140 --> 15:34.720] Right. [15:34.720 --> 15:41.720] There's things like, we worked on one project and we wanted to resize all the through holes so that they had the same drill size. [15:42.700 --> 15:43.000] Yeah. [15:43.000 --> 15:44.140] And so, we didn't have different drills. [15:44.560 --> 15:44.580] You just find and replace. [15:44.700 --> 15:47.480] And so, we did a search and replace and all the drill holes were the same size. [15:49.660 --> 15:50.240] I'm sorry? [15:50.500 --> 15:51.280] Can you do simulation? [15:51.820 --> 15:52.580] With gEDA? [15:52.900 --> 15:53.420] Do what? [15:53.620 --> 15:54.020] Simulation. [15:54.300 --> 15:54.700] Simulation? [15:54.940 --> 15:56.280] Yes, there's SPICE tools in gEDA. [15:56.740 --> 15:58.360] I was about to get to that. [15:59.100 --> 16:01.720] So, because it's all text files, it's version control friendly. [16:01.720 --> 16:06.740] The diffs you get when you do a commit of a project into the system, it actually is just a diff. [16:06.880 --> 16:07.520] It's very straightforward. [16:09.400 --> 16:16.420] And one of the other nice things is there are actually several scripts people have written for gEDA that will build standard footprints for you very easily. [16:16.420 --> 16:20.940] So, you can say it's a TQFP with this kind of pitch and it's 32-pins. [16:21.140 --> 16:21.980] And then it goes, bop! [16:22.080 --> 16:24.080] And you got that footprint and you're done. [16:26.220 --> 16:29.280] And there are lots of other generators that can do that kind of stuff. [16:34.700 --> 16:35.660] File formats? [16:37.300 --> 16:45.680] There's been some work between KiCad and gEDA to try to standardize between the two of them to have an interchange. [16:45.980 --> 16:47.440] But that hasn't really taken off yet. [16:47.740 --> 16:54.320] And there has been some recent work now that Eagle has switched their file format to an XML format. [16:54.700 --> 16:56.060] People are currently trying. [16:56.300 --> 16:59.860] There's actually a lot more work in the KiCad community to port that. [16:59.860 --> 17:06.160] And then I imagine once that's done, gEDA can just take that code and then import Eagle XML blobs. [17:07.520 --> 17:11.140] There are some file formats that are very interchangeable that gEDA can work with. [17:11.460 --> 17:18.100] The standard Gerber format, the RS247, I can't remember the exact name. [17:19.120 --> 17:21.520] Its viewers can open those files very easily. [17:21.520 --> 17:27.340] And there's some other formats that different things can open each other up. [17:28.920 --> 17:32.220] One thing that's nice about gEDA, it's actually a very old project. [17:32.740 --> 17:34.520] It started in 1998. [17:35.000 --> 17:36.780] It was its first public release. [17:38.180 --> 17:41.240] And it doesn't have lots of new features. [17:42.000 --> 17:47.680] The most crazy new feature that I know of that has happened fairly recently was they added support for... [17:47.680 --> 17:53.220] There's a preview format so that you can see what your PCB will look like. [17:53.460 --> 17:57.700] And they added in making it show the solder mask in different colors. [17:57.980 --> 17:59.520] And that was a big update. [18:00.200 --> 18:02.080] So there's not... it's not dead. [18:02.320 --> 18:04.360] It's just everything you really need is done. [18:05.220 --> 18:11.000] There are some pretty features that people are still kind of working on like 3D OpenGL output. [18:11.000 --> 18:13.180] So you can look what it's going to physically fit in. [18:13.260 --> 18:15.180] But that... you don't really need that. [18:15.280 --> 18:16.240] It just is pretty. [18:18.220 --> 18:20.000] And in turn with this depth... [18:20.840 --> 18:23.360] So the gEDA actually, like I was saying, is several different programs. [18:23.540 --> 18:28.920] So there's SPICE, Wave Analysis, Verilog Simulator, Electromagnetic Structural Analysis. [18:30.160 --> 18:31.260] There's Gerber Viewing. [18:31.380 --> 18:34.920] There's just tons of different small programs in this whole suite of tools. [18:34.920 --> 18:39.840] And so you really can do just about anything with it in hardware. [18:40.140 --> 18:47.820] And the community mailing list and the IRC channel where people hang out with, they've done a lot of this stuff. [18:47.820 --> 18:51.600] So they can help you out in using these tools and getting what you need done. [18:53.360 --> 18:55.840] I've seen some very mature projects come out of it. [18:55.860 --> 18:58.200] You know, very professional projects come out of this. [18:58.320 --> 18:59.260] Not just hobbyists. [19:00.020 --> 19:00.160] Right. [19:02.680 --> 19:03.480] And so... [19:04.800 --> 19:06.680] So now you've decided to use gEDA. [19:07.100 --> 19:07.800] It's awesome. [19:08.240 --> 19:09.060] You've got to go... [19:09.060 --> 19:10.280] Where to go from here? [19:10.300 --> 19:10.880] Where do you start? [19:11.880 --> 19:13.520] Do you want to keep moving the slides, though? [19:13.640 --> 19:14.280] Yeah, I'll move them for you. [19:14.280 --> 19:14.400] Okay. [19:15.540 --> 19:17.460] So first step is having an idea. [19:18.320 --> 19:19.620] And that's kind of... [19:20.020 --> 19:23.320] You're going to have something you want to build, some project, some problem you want to solve. [19:23.900 --> 19:33.160] Whether it's something that's going to spy on a spy bus for you for your own learning, for your own projects. [19:33.300 --> 19:37.520] Or whether you want to have an end product that does something. [19:38.120 --> 19:42.100] Or in one of our cases, a learning kit. [19:42.280 --> 19:45.180] You know, these are things that you could do out of this. [19:45.180 --> 19:46.260] So you have some idea. [19:46.480 --> 19:49.240] And I really find it's great to look at... [19:49.240 --> 19:51.720] You know, don't worry about reinventing the wheel. [19:51.960 --> 19:53.000] If you don't... [19:53.000 --> 19:57.680] If you're not the electronics guru, you know, you can look at what other people are doing. [19:57.820 --> 19:59.580] Take the time to learn those things first. [20:01.080 --> 20:07.280] You know, if you don't know how a resistor works, there's only so much these kinds of programs can help you with, you know. [20:07.820 --> 20:08.200] Right. [20:08.580 --> 20:10.160] But you can go to other people. [20:10.340 --> 20:11.320] You can build small teams. [20:11.340 --> 20:12.860] You can work together with stuff. [20:14.140 --> 20:15.640] And you start to build a prototype. [20:15.980 --> 20:17.640] You find something that actually works. [20:18.000 --> 20:23.580] When you put it on a breadboard, stick little wires in, get something that's going to work. [20:23.760 --> 20:26.480] And so now you've built this prototype. [20:26.700 --> 20:28.140] You've got this thing that works. [20:28.140 --> 20:30.340] It kind of blinks the way you want it to. [20:30.540 --> 20:32.120] Or it does the thing you want it to do. [20:32.120 --> 20:35.960] You've done this really hands-on kind of prototyping. [20:36.080 --> 20:36.940] It's a great way to start. [20:37.540 --> 20:40.260] And this is something that Fritzing, as well, I'll go back to. [20:40.320 --> 20:43.180] This is sort of their level where they started, at least. [20:43.500 --> 20:43.680] Right. [20:43.720 --> 20:44.360] That you can do all that. [20:44.360 --> 20:45.940] That you can do all that in their software. [20:46.020 --> 20:46.500] In theory, in software. [20:46.780 --> 20:46.900] Yeah. [20:47.720 --> 20:50.160] And then you... [20:50.860 --> 20:52.920] Once you've got that working, though, you're going to build a schematic. [20:53.920 --> 21:02.420] And that's going to tell you exactly where the connections are made, what's actually going on, what components you're using. [21:04.060 --> 21:04.540] I've... [21:04.980 --> 21:09.820] I do understand all this, but I've left a lot of that work to Mog, so he feels like he's doing something. [21:11.440 --> 21:14.960] The really important things about the schematic is... [21:15.440 --> 21:21.100] So every step in hardware, every time you fail, causing a time... [21:21.100 --> 21:23.620] The mean times between failures can be weeks. [21:24.040 --> 21:26.480] And at least for me, I come from software. [21:26.840 --> 21:28.560] I'm much more happy with minutes. [21:28.560 --> 21:31.980] I like things to fail early and often, and then I can move on and fix them. [21:32.560 --> 21:42.760] And so what the schematics, I find, are most helpful for is making sure that you've dotted all your T's and crossed all your I's, so that everything is correct. [21:43.100 --> 21:43.500] Right. [21:43.500 --> 21:52.960] If you're waiting until the PCB design stage for that kind of troubleshooting, you're going to have nothing but headaches, because then you've got to move whole components around and reroute traces. [21:53.120 --> 21:53.240] Right. [21:53.240 --> 21:58.480] And so when you do the schematic, you go through every datasheet, check all the specs, make sure everything is within spec. [21:58.900 --> 22:03.720] And then once you've completed this, the next step is you're going to go into PCB. [22:04.200 --> 22:04.300] Right. [22:04.460 --> 22:07.700] Then you're going to actually create a physical path for everything. [22:08.660 --> 22:10.020] Everything has to have a layout. [22:10.320 --> 22:10.640] Right. [22:10.640 --> 22:26.900] But the nice thing is the step between schematic and PCB is there's a script in gEDA that takes your schematic and builds you a very good net list that shows you where all the connections should be and how they should be. [22:27.000 --> 22:29.860] You can mark traces being power traces or signal traces. [22:30.140 --> 22:32.420] And so then someone like Tim can go and route. [22:32.840 --> 22:42.380] And it's almost, I will say as a hobby, it's almost fun that you can sit there and you work with a net list and you see all the connections in PCB that you're supposed to make. [22:42.480 --> 22:43.300] And they're just logical. [22:43.520 --> 22:46.580] And then you start filling those in, in the program. [22:46.760 --> 22:50.860] And you have a set of, they're called rats. [22:51.800 --> 22:53.300] Those are the logical connections. [22:53.520 --> 22:57.140] And you work through these rats and tick them away, you know. [22:57.260 --> 22:59.780] And I get to tell him, I was like, oh, I've only got ten rats left. [22:59.900 --> 23:01.460] Oh, I've only got five rats left, you know. [23:01.460 --> 23:06.500] And the unfortunate thing is as the rats become less, they become exponentially harder to route. [23:06.740 --> 23:07.080] One or two. [23:07.480 --> 23:10.820] So each one more dead is a glorious moment. [23:10.860 --> 23:13.660] You get to those last one or two and then you've got to back up some. [23:13.940 --> 23:16.440] It's like, but you know, I've got ten left. [23:16.520 --> 23:17.540] Oh, but you had two yesterday. [23:17.760 --> 23:17.880] Yeah. [23:18.120 --> 23:18.280] Right. [23:19.780 --> 23:29.940] But you, the process of making sure everything isn't overlapping, that you have the tolerances, you're still looking back at your data sheets for what you can and can't do. [23:29.940 --> 23:38.580] You'll have some components that say, you know, you can't throw any signal line underneath my package, you know, or I'm going to destroy it. [23:38.720 --> 23:45.920] So you look for those things and you're saying from a physical level, how is everything going to fit together and where is it electrically connected? [23:45.920 --> 23:46.640] Mm-hm. [23:46.960 --> 23:52.660] And if you're not a perfectionist and you can trust your computer, unlike Tim, you can... [23:52.660 --> 24:02.620] There actually are auto-routing tools in gEDA and you can use the DRC definitions to help you route these traces without having to be a... do it yourself. [24:02.800 --> 24:03.100] Yes. [24:03.640 --> 24:11.820] I'll admit there's... and the... the auto-routing ability of gEDA is very reasonable. [24:11.880 --> 24:13.080] I'll put it that way. [24:13.620 --> 24:17.000] If you're doing something small, definitely just click the button. [24:17.120 --> 24:17.520] You're done. [24:17.720 --> 24:17.880] Yay. [24:18.620 --> 24:21.120] There are times... I'm... I'm going to be honest. [24:21.140 --> 24:23.920] I don't understand why it routed something over here. [24:24.380 --> 24:25.520] And then back in... [24:25.520 --> 24:26.520] Or through like eight vias. [24:26.660 --> 24:27.080] Six layers. [24:27.500 --> 24:28.380] Yeah, six layers. [24:28.880 --> 24:38.140] You know, but... but there are still... and that's some of... that's some of it's on us learning the tool because there are still options within gEDA to sit... to tell it. [24:38.380 --> 24:40.180] You know, well, it's only this many layers. [24:40.540 --> 24:42.660] Well, I want you to use this style routing, you know. [24:42.960 --> 24:43.300] Right. [24:43.320 --> 24:44.860] The auto-router is... is very friendly. [24:45.160 --> 24:45.260] Yeah. [24:45.260 --> 24:51.640] If you feed it the right DRC rules and you feed it how many layers you want and you can even select just a few of the nets. [24:51.640 --> 24:53.720] You don't want to route all the routes, just some of the routes. [24:54.160 --> 24:55.360] And it will do all this for you. [24:55.460 --> 25:02.080] And it also includes a auto-placement so it can move all the footprints around for you to what it thinks would make most sense logically. [25:02.080 --> 25:02.520] Yeah. [25:02.540 --> 25:08.400] So if you have an LED connected to a resistor, it's going to move the LED and the resistor close together off in a direction. [25:09.460 --> 25:09.860] Yeah. [25:11.400 --> 25:17.220] So now you've built a board and you've designed it and you can do all the little finishing work. [25:17.520 --> 25:18.140] So yeah, you're done. [25:18.320 --> 25:18.640] You've got... [25:18.640 --> 25:19.180] You have a board. [25:19.300 --> 25:25.880] This is an example of the output we're talking about when you can do a simulated print of the board. [25:26.140 --> 25:27.380] So it's kind of pretty. [25:27.900 --> 25:28.080] Yep. [25:28.560 --> 25:28.960] But... [25:28.960 --> 25:30.560] But that's not really real, so... [25:30.560 --> 25:30.700] No. [25:30.700 --> 25:32.920] There's a lot more to do after this point. [25:33.080 --> 25:33.200] Right now. [25:33.200 --> 25:35.580] To go to an actual product, to something you've done. [25:36.780 --> 25:38.380] And that's sourcing components. [25:38.660 --> 25:46.500] So even if you've already gone through the process when you started to pick out, you know, I'm going to use, you know, a 555 timer and I'm going to use a 4017 counter. [25:46.720 --> 25:50.840] Well, you still, well, okay, where can I actually buy 100 of those right now? [25:51.020 --> 25:51.520] Yeah, today. [25:51.800 --> 25:52.020] Today. [25:52.620 --> 25:53.580] Where can I buy those? [25:53.640 --> 25:55.240] And what's the cheapest price I can get? [25:55.240 --> 25:57.420] And, you know, so... [25:57.420 --> 26:00.600] So, yeah, if you want 100 of them, sometimes you have to look a little bit. [26:00.900 --> 26:01.280] Right. [26:01.760 --> 26:03.640] But there are these great places. [26:03.800 --> 26:05.940] Mouser, DigiKey, Element 14. [26:06.360 --> 26:12.840] There's a lot of little electronics design, electronics component shops out there on the Internet. [26:13.360 --> 26:20.700] And they're all very good about when you search them, you can see how much parts are going to cost and what quantities and what quantities they break in price. [26:21.280 --> 26:30.520] So, for example, on this project we bought, we needed 8,000 10K resistors, but it was actually half the price to buy 10,000 of them instead. [26:31.000 --> 26:34.940] And so we have 2,000 10K resistors lying around. [26:34.940 --> 26:35.400] Yeah. [26:36.540 --> 26:49.040] Another good place to... there's a search engine called Octopart, and it's really cool because it searches DigiKey, Mouser, and others, and it will comparison price them. [26:49.220 --> 26:53.280] But usually, the one kind of downside of it is it doesn't really comparison price in quantities. [26:53.820 --> 26:54.180] Right. [26:54.180 --> 26:58.340] But if you're looking for a one-off, it's very nice to just see where is this one the cheapest. [26:58.880 --> 27:00.240] And also, it'll tell you if it's in stock. [27:00.240 --> 27:05.820] Just in the side to Octopart as well, it's not a bad place to look for the data sheets. [27:06.860 --> 27:14.280] If you know already which chip it is you have sitting there, you can kind of type it in. [27:14.380 --> 27:17.060] It's a search engine designed for the electronics world. [27:18.080 --> 27:19.040] And eBay. [27:19.320 --> 27:29.120] There are crazy Chinese people out there who want to sell you LEDs that they found off the back of a truck in millions of quantities. [27:32.160 --> 27:34.040] So then finding a board house. [27:34.960 --> 27:37.140] There are some great options out there. [27:37.860 --> 27:44.220] The board house is what's printing your PCB for you, assuming that you aren't going to etch one for yourself. [27:44.380 --> 27:45.160] Yeah, don't etch. [27:45.420 --> 27:46.960] Boards are so cheap. [27:47.940 --> 27:49.600] They're cheap and getting cheaper, yeah. [27:51.160 --> 27:54.400] There are some that we have used and some of our friends have used. [27:54.520 --> 27:57.600] In particular, we've had really good luck with Seed in the past. [27:58.280 --> 28:00.360] We've ordered several different boards from them. [28:00.480 --> 28:01.940] And they come fairly quickly. [28:02.140 --> 28:06.040] I think the slowest turnaround we had with Seed was about a month. [28:06.600 --> 28:09.100] And the fastest was probably two weeks. [28:09.740 --> 28:12.620] They do kind of batch processing and so does Dorkbot. [28:14.260 --> 28:16.780] But recently we found this one guy. [28:18.120 --> 28:23.680] He has a website called hackvana.org, I want to say, or .net. [28:24.020 --> 28:26.280] But he actually doesn't have really anything up there. [28:26.460 --> 28:28.000] I met him on the free node. [28:28.760 --> 28:32.240] He was like, yeah, I live in China and I can make you PCBs. [28:32.580 --> 28:33.420] I was like, really? [28:33.700 --> 28:34.780] I like the sound of that. [28:35.600 --> 28:40.380] And he gave me a good quote and we got a lot of PCBs from him. [28:40.380 --> 28:42.760] And the turnaround time was one week. [28:43.080 --> 28:44.500] They were fairly cheap. [28:45.440 --> 28:51.320] He has some kind of sketchy problems in that he doesn't have DRC rules. [28:52.060 --> 28:54.220] He says the board house... [28:54.220 --> 29:01.160] The DRC is the tolerances between how small a line you can build, how small a trace... [29:01.160 --> 29:02.340] How far apart they can be. [29:02.340 --> 29:02.800] And how far apart they can be. [29:02.960 --> 29:03.600] That kind of thing. [29:04.720 --> 29:04.920] Design rule check. [29:05.100 --> 29:05.300] Correct. [29:05.300 --> 29:06.040] Yeah, design rule check. [29:07.220 --> 29:10.560] But yeah, he was like, they make cell phones, so really, really tiny. [29:11.200 --> 29:12.080] Don't worry about it. [29:12.280 --> 29:14.560] And if it fails, we'll give it to you for free. [29:14.680 --> 29:15.200] Don't worry about it. [29:17.240 --> 29:19.200] Did we mention that he met him on IRC? [29:19.820 --> 29:21.400] Yeah, he was just in pound PCB. [29:21.740 --> 29:23.300] He was like, hey, I hear you're making boards. [29:23.580 --> 29:24.160] And I was like, yeah. [29:25.120 --> 29:28.120] But I would strongly recommend any of y'all find him. [29:28.320 --> 29:29.000] Give him some business. [29:29.140 --> 29:29.540] He's awesome. [29:29.540 --> 29:30.180] Give him some business from him. [29:30.300 --> 29:30.760] It works. [29:32.720 --> 29:33.640] And then finally... [29:33.640 --> 29:34.160] So one of the... [29:34.160 --> 29:34.360] Yeah. [29:34.600 --> 29:35.340] One of the last steps. [29:35.900 --> 29:37.420] Is you gotta chain him to a table. [29:38.880 --> 29:43.060] And then, you know, Panda Express, give him some food, make him feel at home. [29:43.700 --> 29:44.840] Doing hard labor. [29:45.240 --> 29:52.880] And so yeah, this is us sorting tons of PNP and NPN transistors right now. [29:53.100 --> 29:53.280] Yeah. [29:53.820 --> 29:54.880] And it's really boring. [29:56.240 --> 29:57.140] Watch a movie. [29:57.140 --> 29:58.340] Kind of sit back. [29:59.000 --> 29:59.540] Package. [30:00.340 --> 30:02.800] And then this is the final assembly. [30:03.100 --> 30:03.340] Yeah. [30:03.620 --> 30:04.960] Doing all the boards and packages. [30:05.600 --> 30:06.040] Getting them wrapped. [30:06.040 --> 30:08.780] You can see one of our recent projects here. [30:09.260 --> 30:11.080] And they're wrapped like meat. [30:11.640 --> 30:11.760] Yeah. [30:11.760 --> 30:12.760] That was the idea. [30:12.940 --> 30:14.260] So we had to shrink wrap that. [30:14.440 --> 30:16.340] But we didn't have machines to do this. [30:16.380 --> 30:17.600] We were just starting out. [30:17.600 --> 30:18.200] So it's like... [30:18.200 --> 30:22.240] And we didn't know the proper way to do it until right after we finished. [30:22.500 --> 30:22.620] Yeah. [30:23.300 --> 30:26.740] A friend of ours used to work in a super... a meat market. [30:26.800 --> 30:28.060] And he was like, oh yeah, it's real easy. [30:28.140 --> 30:30.220] You just need, you know, a hot coat hanger and this other thing. [30:30.300 --> 30:31.680] And it's easy. [30:31.980 --> 30:32.180] Right. [30:32.520 --> 30:34.700] And it takes like 10 seconds to do one. [30:34.840 --> 30:35.540] And we were like, oh. [30:35.700 --> 30:39.140] Meanwhile, I'd spent days with a heat gun. [30:39.140 --> 30:39.400] And then... [30:39.400 --> 30:40.560] It was very upsetting. [30:42.740 --> 30:44.640] And so then, what's next? [30:46.040 --> 30:46.540] Yeah. [30:48.000 --> 30:49.240] Collect some underpants. [30:49.600 --> 30:50.560] And then profits. [30:50.960 --> 30:52.500] So yeah, the big thing is that... [30:52.500 --> 30:53.360] You've created your project. [30:53.360 --> 30:54.680] It solves your task. [30:54.780 --> 30:56.820] It's a benefit to the world. [30:57.140 --> 30:59.060] In this case, it's... [30:59.060 --> 30:59.980] Yeah, this... [30:59.980 --> 31:01.060] So we've been... [31:01.060 --> 31:02.380] We didn't actually touch on this. [31:02.940 --> 31:09.060] This particular project came out of an idea of wanting to teach soldering. [31:09.140 --> 31:12.300] And to say, you know, I want a kit to teach soldering. [31:12.560 --> 31:15.860] I want them to actually have produced something when it's finished. [31:16.080 --> 31:18.460] And done more than three connections. [31:18.920 --> 31:22.060] You know, so there's something substantial you sit down with. [31:22.220 --> 31:23.400] And something you can... [31:23.400 --> 31:25.000] That does something when you're done. [31:25.140 --> 31:26.720] And that's sort of a tank of a design. [31:26.940 --> 31:27.200] It's... [31:27.200 --> 31:29.780] You don't have to worry about what goes into it. [31:29.800 --> 31:32.820] And I'd seen a couple projects like the electronic dice. [31:33.120 --> 31:36.300] It's a fun little engineering problem when you're starting out. [31:36.300 --> 31:39.220] So I'd gotten advice from other people about how to build these. [31:39.360 --> 31:42.600] Kind of tweaked it to what I wanted it to do and how I wanted it to behave. [31:43.960 --> 31:46.220] And that's how this design came about. [31:48.860 --> 31:49.300] And... [31:49.300 --> 31:59.540] And then the other nice side of it is that my goal out of it was to provide a very good example of all the output of all these tools. [31:59.540 --> 32:00.320] And so we've... [32:00.320 --> 32:00.900] Right. [32:00.900 --> 32:02.420] We've also published all of the... [32:02.420 --> 32:05.180] It's open hardware or free hardware, as I would call it. [32:06.320 --> 32:15.940] All the schematics, Gerber's footprints, the PCB layout, the make file we used to go through and automate this whole process. [32:16.360 --> 32:18.420] Every little bit of it is out there. [32:18.420 --> 32:26.340] And I'll admit, before starting some of these projects that we've been working on, not just this one, I had used Eagle before. [32:26.440 --> 32:28.160] And Eagle was really easy for a hobbyist. [32:28.200 --> 32:28.620] That was great. [32:28.760 --> 32:32.140] And he's like, you know, no, let's use something open, open source. [32:32.340 --> 32:32.800] That's awesome. [32:33.020 --> 32:33.240] Freedom. [32:33.880 --> 32:36.200] And I'm not going to lie. [32:36.200 --> 32:39.300] Yeah, it was hard to learn some of the stuff going into gEDA. [32:39.880 --> 32:42.100] But now that I know it all for... [32:42.100 --> 32:43.200] I don't want to say I know it all. [32:43.380 --> 32:48.740] Now that I know how to use gEDA to finish a product, I'm so much happier with what I get done. [32:48.960 --> 32:52.080] You know, in that same kind of anal, you did everything yourself way. [32:52.380 --> 32:55.240] You know, I'm not worried about footprint generators and stuff like that. [32:55.320 --> 32:56.760] I'm going to build the footprint myself. [32:56.760 --> 32:58.980] I'm going to finish this myself, you know. [32:59.900 --> 33:03.180] And it gives you those tools and it gives you that really... [33:03.180 --> 33:04.440] Would you say it's like a... [33:04.440 --> 33:05.600] Romantic relationship. [33:06.020 --> 33:07.300] A kind of like learning Vim or Emacs. [33:07.520 --> 33:08.220] Yeah, exactly. [33:08.220 --> 33:10.380] It's very high overhead at first. [33:10.680 --> 33:11.120] Right. [33:11.120 --> 33:15.460] But then once you get into it, it's faster and much quicker to get what you want done. [33:15.940 --> 33:16.760] Yeah, definitely. [33:19.300 --> 33:20.180] So that's... [33:20.180 --> 33:21.820] We got a finished product out of it. [33:22.160 --> 33:23.360] And we hope to do more. [33:23.700 --> 33:23.940] Yes. [33:25.940 --> 33:29.640] And so this is pretty much what we have. [33:30.240 --> 33:35.720] And we were wondering if anybody had questions, comments, anything they wanted to know more about these different tools. [33:37.180 --> 33:40.360] The talk is available online at that web address. [33:40.600 --> 33:41.420] You can download the PDF. [33:41.840 --> 33:43.540] For some reason, right now, it's 100 megabytes. [33:43.840 --> 33:44.380] I don't know. [33:44.460 --> 33:45.560] I'm going to make it smaller at some point. [33:45.700 --> 33:45.820] Yeah. [33:47.920 --> 33:53.600] And, yeah, if anybody has any questions about the tool chains or why we did what we did, et cetera. [33:55.440 --> 33:55.840] Hi. [33:56.240 --> 33:56.920] Great talk. [33:56.920 --> 33:59.900] I went through something similar just recently. [34:00.680 --> 34:07.740] And one of the things I haven't been able to figure out is what impact pin type has when you're using gEDA. [34:08.560 --> 34:13.880] It's got to have some kind of downstream flow to PCB, but I don't understand what that is. [34:13.960 --> 34:16.420] I mark all of my pins as passive right now. [34:16.620 --> 34:17.060] Right. [34:17.060 --> 34:20.300] You can define your pin types and your trace types. [34:20.800 --> 34:31.600] Or really, in the schematic part, you can define different traces so that when you are in PCB, it can be marked as it needs to be a fatter trace or a thinner trace. [34:31.960 --> 34:37.860] For most projects that hobbyists would do, like us, we're working at very small megahertz, very small power. [34:38.220 --> 34:41.660] The standard level thickness of trace is going to be fine for anything you're going to do. [34:41.780 --> 34:43.540] And you don't really need to differentiate it. [34:43.540 --> 34:48.580] So like on this board, for example, every trace we did is just ginormously fat. [34:48.700 --> 34:48.780] Yeah. [34:49.640 --> 34:55.560] One of our kind of other goals with this board was that the board is designed so that it could be chemically etched easily. [34:55.840 --> 34:56.040] Yeah. [34:56.180 --> 34:57.440] We had a person... [34:57.440 --> 34:57.640] One layer. [34:58.080 --> 34:58.480] Right. [34:58.520 --> 34:59.200] It's all one layer. [34:59.200 --> 34:59.400] Yeah. [34:59.460 --> 35:04.560] We never did any staples or needed any spots where another layer would be needed. [35:04.600 --> 35:06.940] And so that's nifty. [35:07.140 --> 35:09.980] But yeah, that's the purpose of the pin types is you can define... [35:09.980 --> 35:19.620] You can make it so that on the next step on PCB, you make sure you don't make a mistake by, I don't know, writing like a radio signal through way too thin of a trace or something like that. [35:19.620 --> 35:20.980] A signal to the power type of thing. [35:21.040 --> 35:21.120] Yeah. [35:21.200 --> 35:25.700] I think it's a great example where PCB and... [35:25.700 --> 35:31.700] Well, gEDA as a whole, as a tool chain, works really well, surprisingly well from an enterprise mindset. [35:32.260 --> 35:35.240] And so yeah, as a hobbyist, you don't really think about it that much. [35:35.340 --> 35:36.660] You're not worried about those tolerances. [35:36.920 --> 35:38.920] But the tools are available to you. [35:38.920 --> 35:41.940] Well, and even if you are, you're aware of your whole project. [35:42.160 --> 35:42.440] Right. [35:42.440 --> 35:48.840] But if you were handing this off to somebody else, he might not realize that that part is doing this function and needs to have this tolerance to work. [35:48.980 --> 35:54.320] And so it's a way of just more documentation in your project at the source file level. [35:54.440 --> 35:56.120] You say that pin is a power pin. [35:56.300 --> 36:00.080] They know they need something thicker for a trace going to it for... [36:00.080 --> 36:00.600] Yeah. [36:01.180 --> 36:01.820] Providing power. [36:02.080 --> 36:02.260] Okay. [36:02.260 --> 36:02.400] Thanks. [36:03.120 --> 36:03.720] Thank you. [36:05.240 --> 36:05.680] Okay. [36:05.680 --> 36:06.200] I'm curious. [36:06.380 --> 36:12.180] How much are you paying for like a two by three double sided board with a silk screen and solder mask? [36:12.400 --> 36:13.200] Two by three? [36:13.400 --> 36:14.400] So this board was how big? [36:14.520 --> 36:14.920] It was... [36:14.920 --> 36:15.800] Oh, gosh. [36:16.320 --> 36:17.620] It's three by... [36:18.660 --> 36:20.800] No, 3.5 by like 3.5. [36:20.960 --> 36:23.520] So yeah, this board was 3.5 by 3.5. [36:23.520 --> 36:26.420] We ordered 100 of them and had rush shipping. [36:27.980 --> 36:30.480] And it was, I think, $169. [36:31.740 --> 36:33.520] And 40 of that was the shipping. [36:34.240 --> 36:35.100] And so it's... [36:35.100 --> 36:35.480] We wanted it. [36:35.560 --> 36:36.160] It's very cheap. [36:36.220 --> 36:40.620] But the other nice thing about the Hackvana guy is he is a cell phone... [36:40.620 --> 36:42.880] Or the person in his board house does mostly cell phones. [36:43.080 --> 36:45.880] And so they do two, four, and eight layer boards, I think. [36:46.120 --> 36:47.760] And so he doesn't care. [36:48.080 --> 36:50.400] So if you need a multi-layer board, he can handle it. [36:50.400 --> 36:52.040] It's not any big deal to him. [36:52.180 --> 36:52.420] Yeah. [36:52.740 --> 36:53.900] To add more layers. [36:55.560 --> 36:56.000] Okay. [36:56.640 --> 37:01.060] I'm a total KiCAD person because I just transferred to that. [37:01.340 --> 37:03.380] And I see no reason. [37:03.580 --> 37:09.460] Like, I can't see any reason why, you know, you guys choose gEDA over KiCAD because it's really easy to use. [37:09.680 --> 37:13.680] I used Altium and, you know, like DXP before when I was in university. [37:14.020 --> 37:16.780] And after that, I heard about Eagle because I'm from China. [37:16.940 --> 37:18.920] So obviously, people in China don't use Eagle at all. [37:18.920 --> 37:19.380] Right. [37:19.660 --> 37:22.140] So I heard about Eagle and... [37:22.140 --> 37:23.800] What do you guys use in China mostly? [37:24.060 --> 37:25.520] I said Altium or... [37:25.520 --> 37:26.160] Oh, just mostly Altium. [37:26.260 --> 37:26.360] Okay. [37:26.700 --> 37:26.720] Yeah. [37:26.720 --> 37:28.800] But very previous, it's called Pretel. [37:29.120 --> 37:29.460] Mm-hmm. [37:29.560 --> 37:29.900] Okay. [37:30.280 --> 37:35.580] And, well, so I really want to know because I don't use gEDA before. [37:35.740 --> 37:37.560] I saw the GUI and I give up. [37:38.160 --> 37:38.600] Yeah. [37:38.620 --> 37:41.720] That's a common term, I mean, common thing I've heard. [37:41.720 --> 37:54.740] Yeah, but be aware that I was an electrical engineering major, so I totally, you know, used way more complicated stuff like, I think it's called PADS, P-A-D-S, PADS, or whatever. [37:55.160 --> 37:56.040] So, Canvas, yeah. [37:56.420 --> 38:03.020] So anyway, I want to really know the difference between gEDA and KiCAD and why you guys choose, you know, gEDA. [38:03.620 --> 38:08.400] I'm aware that gEDA can do simulation, but that's the functionality most people don't use, right? [38:08.400 --> 38:08.880] No, exactly. [38:09.120 --> 38:09.660] We don't even use it. [38:09.660 --> 38:09.840] Right. [38:09.860 --> 38:16.760] We don't use it because we don't usually do analog that is that temperamental that we would want to make sure that it would work before we'd actually produce. [38:16.940 --> 38:17.340] Right, right. [38:18.340 --> 38:29.600] I would say the biggest difference between gEDA and KiCAD is that I think gEDA is built much more as several different projects, whereas KiCAD, everything's tied together. [38:29.800 --> 38:41.420] So, like, I have a schematic file for a part, or a symbol file for the part, and then there's a schematic file that eats the symbol files, and then those are just tangentially linked to the footprint files. [38:41.660 --> 38:50.460] And so it's easy to change each one of these parts individually without affecting the others, whereas most of the stuff that I see in KiCAD, everything is kind of lumped together. [38:50.720 --> 38:58.040] And I'm not necessarily saying one is better than the other, but I just prefer to have each thing be its small, own little bit of the world. [38:58.180 --> 39:01.020] Because, for example, I know nothing about routing. [39:02.560 --> 39:09.180] I get very frustrated in that I finish all of I need to do, and Tim has the last step in the process, and then I just finish. [39:09.540 --> 39:09.780] Yeah. [39:09.940 --> 39:10.180] Route. [39:10.640 --> 39:16.760] But the nice thing is I don't feel I need to know any of that, because it's easy enough for us to segment this work in that way. [39:17.060 --> 39:31.080] But there's nothing in KiCAD, to my knowledge, that you can't do in gEDA or vice versa, except for maybe some of the simulation and like Verilog, some of the more features that aren't part of the core feature set. [39:31.520 --> 39:31.540] Yeah. [39:32.160 --> 39:37.360] Some of our decision to use gEDA over KiCAD was mostly personal. [39:37.720 --> 39:37.960] Yeah. [39:38.420 --> 39:41.940] We're not here to say that KiCAD's actually a bad program, but... [39:41.940 --> 39:42.080] Mm-hmm. [39:42.840 --> 39:43.020] Yeah. [39:43.220 --> 39:44.440] So I still... [39:44.440 --> 39:46.040] So I want to clarify that. [39:46.380 --> 39:50.320] So I've been using KiCAD for a while, and it's actually... [39:50.980 --> 39:53.000] You can totally separate all the... [39:53.000 --> 39:56.000] No, I'm aware people can work different... [39:56.860 --> 39:57.940] I mean, apart from each other. [39:58.180 --> 40:09.020] It just seems to me that the majority of people that are using KiCAD use it in the same way that I see people use Eagle, and that they have a problem in their PCB. [40:09.680 --> 40:17.200] They click on a footprint, and then they edit the schematic, and then that changes something in their design. [40:17.940 --> 40:21.880] Whereas when we have hit a problem like that, I have to... [40:21.880 --> 40:27.880] I go into the schematic, and I make the changes, and then I say update, and I get a... [40:27.880 --> 40:31.360] Basically a diff that I can send to Tim, and then diff can apply it. [40:31.440 --> 40:37.320] He can apply the diff onto the PCB in its own subsection away, and then he can integrate those changes back in. [40:37.880 --> 40:40.220] And I just feel like that's a better... [40:40.220 --> 40:43.680] For integrity of the project is a better way to work. [40:43.840 --> 40:48.640] And I think that workflow is more defined in gEDA than in KiCAD. [40:48.880 --> 40:53.520] But I only really used KiCAD for a brief period before I decided that I liked gEDA better. [40:53.820 --> 40:54.500] Okay, thanks. [40:55.200 --> 40:55.480] No problem. [40:56.880 --> 41:12.280] I was wondering if you could elaborate a little bit more on the difference between gEDA or gEDA gEDA compared to some of the kind of industry standard or the higher level stuff, you know, where the shortcomings might be with respect to high-speed designs or six, [41:12.420 --> 41:14.380] you know, RF designs, stuff like that. [41:14.500 --> 41:20.240] Something that I, you know, if I wanted to kind of grow with this software into kind of more complicated designs, where might I hit a wall? [41:20.400 --> 41:28.520] So, first off, I guess I should have said this at the very beginning of the talk, but Tim and I are not EE's or even CPE's or even college graduates. [41:31.740 --> 41:35.020] So, I'm going to have to take this with a tiny grain of salt what I'm about to say. [41:35.700 --> 41:48.680] To my knowledge, PCB does not have tools for auto-routing traces based on megahertz delay and whatnot, so it would be difficult to do something like that in gEDA. [41:49.640 --> 41:54.840] But in saying that, I have seen some people who are using gEDA doing complicated things like that. [41:54.920 --> 41:57.700] I'm not actually aware how they're doing the math to figure that out. [41:57.700 --> 42:00.920] I'm sure they're not just eyeballing it and be like, that's good. [42:01.240 --> 42:02.160] That's not too bad. [42:02.300 --> 42:02.580] I mean... [42:02.580 --> 42:04.580] There are tools to keep bus traces the same length. [42:05.180 --> 42:05.580] Right. [42:05.740 --> 42:21.080] No, I know there's tools to keep bus traces the same length, but when you're trying to route a signal to have it arrive at the same time based on different megahertz clocks, and you have to wind the signal around because you're accounting for the speed of the electron through the path, [42:21.480 --> 42:24.180] to my knowledge, PCB doesn't have something for that. [42:24.320 --> 42:25.240] But I have seen... [42:25.240 --> 42:26.480] It doesn't have anything to make it easy. [42:26.480 --> 42:28.900] Right, to do it automatically, like some of the pro tools do. [42:29.020 --> 42:29.300] You can still create those routes. [42:29.680 --> 42:29.960] Sure. [42:30.460 --> 42:33.100] And you haven't run into any multi-layer designs. [42:33.220 --> 42:35.280] Have you done any four-layer designs with gEDA? [42:35.640 --> 42:36.680] Or know anyone that has? [42:37.060 --> 42:39.380] I've played with four-layer processes. [42:39.420 --> 42:41.880] I haven't produced anything yet on a four-layer. [42:42.700 --> 42:43.580] I think... [42:43.580 --> 42:45.000] And I've seen the auto route. [42:45.120 --> 42:47.580] The auto route will make those decisions sometimes when you let it. [42:47.700 --> 42:51.100] And I've seen it just produce this eight-layer monstrosity because it could. [42:51.400 --> 42:53.360] Well, and gEDA doesn't have a layer limit. [42:53.360 --> 42:53.520] Right. [42:53.520 --> 42:55.220] You can tell it to keep making more layers. [42:55.460 --> 42:55.700] You could theoretically... [42:55.700 --> 42:57.680] Would you like to use a 64-layer process? [42:57.860 --> 42:58.120] Sure. [42:58.440 --> 42:59.740] 1,000 layers. [43:01.360 --> 43:02.800] The board's going to be that thick. [43:03.740 --> 43:04.580] It's going to be great. [43:04.760 --> 43:05.420] It'll be tiny, though. [43:05.520 --> 43:06.420] It'll be like that and move around. [43:07.620 --> 43:08.140] Oh, dear. [43:08.480 --> 43:11.340] But yeah, that's not a limitation there, at least. [43:11.340 --> 43:26.820] More recently, I've had friends and family who do work in board houses, in engineering jobs for real, that I do try to now say, like, hey, look at this neat toy I'm playing with. [43:26.960 --> 43:27.720] How does it compare? [43:27.880 --> 43:29.680] And I will get some comments. [43:30.100 --> 43:33.520] It's either condescending or, you know, yes, that is a neat toy that you're working with. [43:33.520 --> 43:38.900] But they haven't come up with anything that I couldn't do in that that they do in their bigger programs. [43:39.140 --> 43:39.240] Yeah. [43:39.860 --> 43:39.960] Cool. [43:40.040 --> 43:40.220] Thanks. [43:40.640 --> 43:46.040] The only other big thing I would say is that some of the other tools now are starting to have these, like, footprint on-demand services. [43:47.020 --> 43:49.100] And there's nothing like that in gEDA. [43:49.180 --> 43:53.540] There are stores where people have put up their footprints, like ours. [43:53.680 --> 43:54.960] Like, we have all of our footprints online. [43:55.060 --> 43:56.780] Anybody can take them and use them if they wanted. [43:57.120 --> 43:57.480] Yeah. [43:57.480 --> 43:59.280] I'm with you with the anal footprint. [43:59.280 --> 43:59.320] Right. [43:59.320 --> 44:00.840] Nobody wants to use anybody else's footprints. [44:01.260 --> 44:01.800] This is my footprint. [44:01.880 --> 44:05.060] You know, there are so many instances where, yeah, it's a TQFP. [44:05.520 --> 44:05.760] Yeah. [44:05.860 --> 44:08.400] But, you know, the pad length is actually a little bit wider. [44:08.520 --> 44:08.700] Right. [44:08.700 --> 44:08.900] Right. [44:09.300 --> 44:11.620] Well, you want a little bit wider because you have the space for it. [44:12.840 --> 44:13.200] Exactly. [44:14.740 --> 44:17.840] I've seen some people route silk over pads as well. [44:18.000 --> 44:19.200] It's like, what are you doing? [44:19.680 --> 44:20.040] Anyway. [44:20.640 --> 44:25.120] Do you guys have any experience with places that will actually mount the components for you and what that costs? [44:25.940 --> 44:26.600] That's actually... [44:26.600 --> 44:29.740] Something like really small, you know, BGA type of thing. [44:29.820 --> 44:31.760] That was the step about chaining me to a dent. [44:31.980 --> 44:32.600] Yeah, that's... [44:32.600 --> 44:34.220] You call me and I'll hit him. [44:34.680 --> 44:36.780] So you would actually do things like that by hand? [44:36.900 --> 44:37.220] I mean, if it's... [44:37.220 --> 44:40.660] You can for a certain pitch with BGAs. [44:40.940 --> 44:42.320] There are people who are hot plating them. [44:42.500 --> 44:42.800] Yeah. [44:42.880 --> 44:49.540] But more realistically, there are services that will do that level of assembly for you. [44:49.600 --> 44:50.520] Have you guys done any of that? [44:50.680 --> 44:53.340] We haven't had anything where we had them assembled because I have Tim. [44:55.880 --> 44:56.760] But one... [44:56.760 --> 44:57.780] That's a new service. [44:57.860 --> 44:59.160] Seed actually just started offering. [44:59.440 --> 44:59.700] Yeah. [44:59.700 --> 45:05.260] They will do assembly for you and they can give you a quote based on how many components and how difficult it is. [45:05.640 --> 45:07.880] And they have even gone as far as... [45:07.880 --> 45:08.860] They'll even sell it for you. [45:09.020 --> 45:09.660] They will just... [45:09.660 --> 45:11.000] They'll never ship you a product. [45:11.180 --> 45:13.020] You can drop ship directly from them. [45:13.020 --> 45:13.740] They just... [45:13.740 --> 45:17.300] You just give them everything and trust that the seed guys are awesome. [45:17.500 --> 45:18.000] Because they are. [45:18.540 --> 45:18.980] But... [45:18.980 --> 45:19.540] Cool. [45:19.820 --> 45:20.000] All right. [45:20.120 --> 45:20.360] Thanks. [45:20.620 --> 45:20.960] No problem. [45:23.680 --> 45:24.120] Hi. [45:24.480 --> 45:24.700] Hi. [45:24.700 --> 45:27.180] I think you started with the schematic. [45:27.760 --> 45:28.260] Have you... [45:28.260 --> 45:33.700] Have you thought of going to, let's say, a higher level of abstraction like Verilog or VHDL? [45:35.780 --> 45:39.740] And if so, why don't you switch to that? [45:40.020 --> 45:51.260] I think what you are doing is that you are coming up with a schematic and then you decide what are the discrete components and then you build a PCP and then you sort of those components. [45:51.920 --> 45:52.000] Right? [45:52.480 --> 46:01.180] So, I'm just trying to understand, if you go to a higher level of abstraction like Verilog, how do we do the whole flow, you know, using gEDA? [46:01.300 --> 46:07.780] So, with gEDA, there is a path for using Verilog as your symbol language. [46:08.600 --> 46:18.700] I haven't personally used it because all the projects we've worked on are so simplistic that I wouldn't even begin to think of using Verilog to define the relationships. [46:20.200 --> 46:20.640] Microcontroller. [46:20.800 --> 46:21.080] Done. [46:21.420 --> 46:21.660] Yeah. [46:21.900 --> 46:22.180] I'm sorry. [46:23.260 --> 46:23.640] Exactly. [46:25.160 --> 46:26.160] I know those tools. [46:26.280 --> 46:27.440] I agree with him. [46:27.540 --> 46:28.760] I know those tools are available. [46:28.780 --> 46:34.360] I've seen them in the chain and I've played with them one afternoon and I don't know what I needed them for. [46:34.940 --> 46:35.340] Right. [46:35.760 --> 46:41.000] And at least personally, I find for the level of complexity we've kind of done... [46:41.000 --> 46:43.700] Most of our projects are 8-bit microcontroller based. [46:44.540 --> 46:52.680] It's just easier to see where everything is going on on a cleanly made schematic than to read through what is source code and Verilog. [46:52.860 --> 46:53.060] Yeah. [46:53.060 --> 46:53.680] So, I apologize. [46:53.920 --> 46:55.560] We haven't actually experienced that. [46:55.620 --> 46:58.520] If you are talking about the microcontroller, then you have the Arduino kit, right? [46:58.700 --> 46:59.540] So, you can use that. [46:59.660 --> 47:01.280] You know, why going through all this pain? [47:01.460 --> 47:01.660] Oh. [47:02.140 --> 47:06.480] Why would we bother making this an analog instead of just putting down one Arduino? [47:06.820 --> 47:06.900] Yeah. [47:07.240 --> 47:10.140] That conversation came up building this kit. [47:11.420 --> 47:15.400] This is all passive components because I didn't... [47:15.400 --> 47:16.180] A, I didn't... [47:16.180 --> 47:18.080] Like, I knew we were packaging this ourselves. [47:18.080 --> 47:24.280] I didn't want to go through the process of programming every microcontroller we sent out and making sure it would work. [47:24.380 --> 47:27.900] And then, when you ship it and make sure that when they solder it together, it's going to work. [47:28.400 --> 47:30.460] The analog components were just so much easier. [47:30.660 --> 47:33.480] And I feel that this is going to be a tank. [47:33.480 --> 47:36.020] You know, there's little you could do to break it, really. [47:36.280 --> 47:42.760] And although I disagree with Tim at first, this is $1.54 cheaper because it uses this instead of an Arduino. [47:43.100 --> 47:43.240] Yeah. [47:43.400 --> 47:44.960] Or, I mean, not an Arduino, but any app mega. [47:45.200 --> 47:46.440] But you're right. [47:46.600 --> 47:49.560] We talk about building microcontroller projects. [47:50.340 --> 47:51.760] Why not just use an Arduino? [47:52.020 --> 47:59.180] We're not just talking about a fun little robot on your desk or a blinky LED. [47:59.780 --> 48:00.520] Arduino's great. [48:00.680 --> 48:02.600] You can do prototyping with an Arduino. [48:03.700 --> 48:06.880] We're trying to get stuff that's smaller, stuff that does other things. [48:07.260 --> 48:11.400] More purposeful products that do a thing. [48:11.820 --> 48:13.780] And it's great that they're a microcontroller. [48:13.840 --> 48:16.280] We hope to open that up to you because it's open source. [48:16.540 --> 48:19.020] But we're not looking to build the next Arduino. [48:19.540 --> 48:19.720] Right. [48:19.860 --> 48:21.000] The Arduino's a great product. [48:21.220 --> 48:21.300] Just use that. [48:21.300 --> 48:21.340] Right. [48:21.340 --> 48:26.440] We probably use the Arduino in the majority of our prototyping to begin with because it's such a nice little tool. [48:26.660 --> 48:28.740] What are some of the projects that you have done? [48:28.860 --> 48:32.080] You know, like applications that you can share with us? [48:32.420 --> 48:35.740] So, we don't like to talk about unreleased products. [48:36.660 --> 48:47.360] But, since you asked so nicely, we've been working off and on for about two years now on a implementation of a two-factor authentication token. [48:48.380 --> 48:49.860] Kind of like the RSA tokens. [48:49.860 --> 48:50.860] Like the RSA tokens. [48:51.000 --> 48:51.420] The key fob. [48:51.700 --> 48:51.740] Yeah. [48:52.760 --> 48:55.440] But we've had some issues with battery life. [48:55.520 --> 48:57.600] That's one of the problems where we have where we're not... [48:57.600 --> 48:58.420] We're not double E's. [48:58.460 --> 48:59.200] We're not double E's. [48:59.280 --> 49:00.160] It'd be nice if we were. [49:00.640 --> 49:02.320] Because then this wouldn't have taken two years. [49:02.320 --> 49:03.400] It'd probably take two months. [49:03.660 --> 49:03.840] Yeah. [49:05.280 --> 49:09.500] We've worked on an alarm clock that messes with you intentionally. [49:09.620 --> 49:15.320] So, you set the alarm for 7:30 and then around 7:20 the clock starts to elicit odd behavior. [49:15.320 --> 49:16.660] Several different ones. [49:16.840 --> 49:20.120] Like, for example, it can pretend it's daylight savings time. [49:20.440 --> 49:22.260] And, you know, you messed up. [49:22.620 --> 49:23.120] Display the time in hex. [49:23.540 --> 49:25.520] Or time drifts by 13 minutes. [49:25.740 --> 49:25.880] Yeah. [49:25.880 --> 49:27.580] Or several other things. [49:28.000 --> 49:29.080] That's kind of a funny one. [49:29.660 --> 49:31.620] And if you're wondering why it's... [49:31.620 --> 49:36.620] I know at least myself and a couple of us, it's easy to trust your alarm clock and go, I got five more minutes. [49:36.740 --> 49:40.800] And this we saw as a solution to saying, it's like, well, you can't trust this clock. [49:41.000 --> 49:42.340] You don't know what's going on. [49:42.560 --> 49:42.720] Right. [49:42.720 --> 49:43.540] You got to get up. [49:44.940 --> 49:45.740] And we've also... [49:45.740 --> 49:51.220] We built a reflow oven controller so that Tim doesn't have to solder everything by hand. [49:51.660 --> 49:52.000] Right. [49:52.700 --> 49:55.600] We've been working on that for a while, but don't quite have a finished design yet. [49:57.000 --> 49:58.040] But fun stuff. [49:58.440 --> 49:58.560] Yeah. [50:01.360 --> 50:01.640] Meatstand. [50:01.640 --> 50:02.380] You want to buy it? [50:02.820 --> 50:03.700] Give me some money. [50:04.200 --> 50:04.960] How much? [50:05.560 --> 50:06.260] Lots of it. [50:07.940 --> 50:09.020] You don't even want to... [50:09.580 --> 50:10.460] Meatstand.com? [50:10.460 --> 50:10.720] Yeah. [50:10.780 --> 50:12.320] Meatstand.com is our website. [50:13.540 --> 50:20.920] And if you go to the website, all the source is under this fossil repo, and it's licensed under GPLv3. [50:21.480 --> 50:25.740] All of our hardware so far has been licensed that way because I'm a free tard. [50:28.860 --> 50:29.260] But... [50:29.260 --> 50:30.340] Wait a minute. [50:30.520 --> 50:35.020] So you said you are doing RSA on discrete components like that? [50:35.020 --> 50:35.400] No, no, no. [50:35.500 --> 50:37.240] Our RSA token is actually built off of... [50:37.240 --> 50:39.560] RSA is an example of a microcontroller project. [50:39.800 --> 50:40.000] Sorry? [50:40.000 --> 50:41.700] It's a separate project that we've done. [50:41.840 --> 50:52.460] It uses an app mega 32.8 as the brain, and just a 32 kilohertz clock to provide the clock, and an OLED screen for the display. [50:52.840 --> 50:53.120] Yeah. [50:53.360 --> 50:58.300] And given the complexity of the RSA that I know, what is the speed, you know? [50:58.460 --> 51:00.460] It's actually pretty instantaneous. [51:01.480 --> 51:02.480] We use... [51:02.480 --> 51:02.740] There's... [51:02.740 --> 51:11.580] I didn't realize it when I started working on the project, but there's an RFC, I wish I could remember the number off the top of my head, that defines a way of using a SHA-1. [51:11.920 --> 51:24.560] So you have a secure... you have a secret on your token, and then you take the time and that secret, and you SHA-1 summit, and then you run an FNV hash to get a very small, like a 20-bit... [51:24.560 --> 51:24.680] Six-digit. [51:24.940 --> 51:28.400] 20-bit number, and then you display it as a six-digit number to the user. [51:28.660 --> 51:32.460] And then you're doing the same thing on the server, and you just compare those two numbers. [51:32.460 --> 51:37.360] And there are crypto libraries for the AppMega system for doing this. [51:37.500 --> 51:40.180] And on the eight megahertz one, it's instantaneous. [51:40.600 --> 51:42.300] I never even took the time to measure it. [51:42.660 --> 51:44.060] And then you just go back to sleep. [51:44.460 --> 51:45.960] Okay, then it's not RSA. [51:46.380 --> 51:46.960] No, no, no. [51:46.960 --> 51:50.520] It's not RSA specifically, but it implements the same feature set. [51:50.520 --> 51:52.640] We use it as an example of what the product is. [51:52.820 --> 51:54.720] And it's the same system... [51:54.720 --> 51:59.560] Google is using the SHA-1 system and their two-factor authentication system. [52:00.200 --> 52:03.660] I would say it's of equal security given that in both... [52:03.660 --> 52:10.980] In all of these systems, the only thing that really is protecting you is your secret on the token and in the server. [52:11.380 --> 52:12.940] And the algorithm... [52:12.940 --> 52:15.200] I don't think SHA-1 has been... [52:15.200 --> 52:22.020] Or not SHA-1, but SHA-256 has been broken in such a way that it would make it any less secure than RSA token. [52:22.460 --> 52:22.860] Right. [52:28.080 --> 52:28.480] Right. [52:29.440 --> 52:29.840] Right. [52:29.840 --> 52:30.520] The secure ID. [52:30.720 --> 52:30.940] Yeah. [52:31.280 --> 52:31.580] Token. [52:33.460 --> 52:38.640] But they don't, to my knowledge, they don't publish how they actually implement their random... [52:39.560 --> 52:41.120] No, but yeah, it just gets leaked. [52:41.640 --> 52:41.980] Right. [52:42.240 --> 52:44.300] They lose millions of tokens somehow. [52:44.460 --> 52:44.640] Yeah. [52:44.720 --> 52:47.180] We heard that it got leaked and we went, yippee. [52:48.000 --> 52:50.660] And then we heard that Google was doing something like it and we went, oh. [52:50.900 --> 52:51.180] Right. [52:51.180 --> 53:00.560] One of the advantages of our system, and the same thing Google is actually doing, is we want you to be able to keep your secret on both ends and we don't want to hear from you. [53:00.700 --> 53:00.780] Right. [53:00.780 --> 53:03.380] We want to give you a device and you keep your secret secret. [53:03.960 --> 53:05.700] And if you lost it, that's your deal. [53:05.960 --> 53:06.020] Tough. [53:06.020 --> 53:06.760] Buy another one. [53:07.080 --> 53:08.000] Buy another one, yeah. [53:09.960 --> 53:16.260] Going back to G-Schem, is there any utility in there to do a bill of materials automatically? [53:16.260 --> 53:16.820] Ooh. [53:17.180 --> 53:22.100] So you can do it in G-Schem, but what I find the better place to do it is in PCB. [53:22.860 --> 53:22.940] Right. [53:22.940 --> 53:25.540] PCB has two nifty tools actually. [53:25.980 --> 53:31.000] It can produce a bomb of all the parts you need. [53:31.220 --> 53:37.860] And then it also has the ability to produce an X and Y plot, so a pick-and-place machine could place all the parts. [53:38.660 --> 53:41.960] That's really handy because somebody gave our hackerspace a pick-and-place machine. [53:42.120 --> 53:42.740] There you go. [53:42.740 --> 53:46.260] You can just assemble your board yourself or assemble our boards. [53:48.740 --> 53:50.820] We're looking for a project to use it for, so... [53:50.820 --> 53:50.880] There you go. [53:51.260 --> 53:51.540] Awesome. [53:53.120 --> 53:53.520] Okay. [53:53.740 --> 53:54.260] I think that's... [53:54.260 --> 53:55.320] Calgary hackerspace. [53:55.420 --> 53:56.300] Yeah, I think we're... [53:56.300 --> 53:56.440] Cool. [53:56.580 --> 53:59.420] That's most of our time, but any other questions? [53:59.840 --> 54:00.400] Last question. [54:01.420 --> 54:02.960] You're going to buy one, Matt, right now? [54:04.060 --> 54:04.460] Sure. [54:04.840 --> 54:04.960] Okay. [54:05.860 --> 54:06.400] Give me some more. [54:06.400 --> 54:06.880] Thank you very much. [54:07.120 --> 54:07.320] Cool. [54:07.600 --> 54:08.420] Thank you guys so much. [54:08.420 --> 54:09.060] It was a great talk. [54:09.420 --> 54:09.660] Bye.