35C3 preroll music Herald: Our next speaker got hit by a car really really bad and she wasn't able to do anything for around half a year. And what do you do if you're running out of books to read and games to play. Well, if you're already a Ph.D. in manufacturing, you probably turn around and think what can I do in my home and what you can do in your home without many tools is actually getting into electronics and well electronics can be functional but electronics can also be very very beautiful. So we 're going to look at the beautiful side of electronics today with our most excellent speaker Emily Hammes. applause Emily: So yeah. So I'm going to talk to you guys about artistic PCB design and fabrication. And like you said I'm a manufacturing engineer and a bioengineer. I'm really not an electrical engineer nor am I a programmer. I literally had one programming class in my 16 years at a university and I had two electronics classes so really not much more than gymnasium for everybody. My first PCB that I ever designed was actually during my Ph.D. in manufacturing. I had no idea what I was doing so I designed it completely in solidworks which is a basically a mechanical engineering software where I built a 3-D model and it included layers that were going to be the copper. And then I went to an electrical engineer and I was like so how do I turn this into a file that an electrical engineer can use and he just laughed at me. So the purpose of that was actually that particular PCB. See if I can get the mouse to work. Actually I can just walk over here. But basically in this column, this column used chemical chromatography or liquid chromatography to separate chemicals by different properties. And what I needed to do was buffer humidity that was reaching poison gas sensors without losing the poison gas measurements because the sensors that my colleagues were designing were cross sensitive to humidity and to the poison gas we were measuring. So it was my job to build a zero energy system that could remove the humidity or at least buffer it. So the signals wouldn't reach those sensors at the same time. So what I did is I sort of inspired by a bathtub drain as I built this PCB with the humidity and temperature sensor in the middle and then slits in it so that the air could go through. And that's sort of how me building holes in PCBs got started and building holes in PCBs is not really normal for fabrication companies. So when I took that PCB to EPFL and asked their fab to build it they were not happy with me. So then after the accident that he mentioned I decided I wanted to, so basically I was living with my now husband and he runs a embedded systems engineering company. And so our apartment is a stack of oscilloscopes and multiple soldering irons and I knew very little about how to work with these things but I was like you know what. What you're doing is way cooler than reading books. So I'm going to figure this out. So I started with simple things and basically then got into more complex things. And on the far side is a image of a PCB that's taped to the window that I've embedded plastic in I have a video online of how I did that for those, actually those are the examples and that's the end- slide of that video. And then this is what it looks like in the dark. So you can see that it blinks and it also has this stained glass window property. So there just 2D art. So then this is my most recent PCB and it's a Christmas tree and it's three dimensional. They basically the dragon fly and the Christmas tree have the same schematic so electrically they're identical it's just there's four of them on the Christmas tree. But mechanically they're very different. So that's a little bit of my background and the type of PCBs that I actually end up building. So this talk is going to be about my workflow. It's not going to be about like all the different softwares I'll mention the software is that I use that are free. I've used non free softwares. But those aren't as interesting because you have to do those for a company if you want to do it on your own. You need the free software. So I'll mention which ones I use but it's not an introduction on how to use those. It's an introduction on how to fuse them together. Because that's the really complicated part that I had to figure out on my own. There's tons of youtube videos on everything else. So basically it's mechanical design that's coupled with the electrical design. So the first thing I'm going to talk about. It's actually an interplay between the CAD software, which is what architects and mechanical engineers use and PCB software which is what electrical engineers use. So basically it's not about how to use any given software. So the first thing that I need to think about when I start designing a PCB is what are the rules that the fab needs me to follow in order to actually have my final electrical design called the Gerber file work in the fab or actually be buildable and the green PCB is how it looks on KiCAD and three dimensions. The purple PCB is how a lot of fabs would actually end up building it because a lot of fabs do not deal with internal holes. Many of them will do it but you might have to actually contact them and talk to a real person in order to make sure that they will actually build it the way you wanted because their software doesn't necessarily automatically identify the routing for that when they actually go to the milling process. The other thing that I have to think about is what are the design rules on V-CUTS. So a V-CUT, basically if you look at this heart that I have an example of it's a very small heart. So I can panelize it which means putting more than one heart on a board so that I can break them apart later. It's makes it cheaper for me because then I get four for the same price as I'd get one for from the fab. But I have to incorporate a way to break them apart. And those are called V-CUTS and a V-CUT is just they basically take a blade and they run the PCB through it and it causes a small cut to be made in the board and it's often on both sides of the board. But in order to do that they need a flat surface so it's difficult to see in. I'll use the pointer although I don't think it shows up online. So basically on this red PCB where there's the four hearts, they don't have a way of making this yellow line because, or without these small edges, because there's no flat surface for them to use as a guide. So then I got an email back from my fab. They are like we can't build this the way you wanted. So you have to add some part that's flat so that we can actually manufacture this for you which is why I ended up having to add this. So it's a really important design rule. In this case it wasn't a problem because I had this space to make it flat. But if you don't design it with that in mind it might not end up working. So then in order for that extra part to be removeable I needed to do something called adding mouse bites. There's a couple of other names that these go by but at least in Switzerland everybody I know calls the mouse bites. So basically that's this small square. And this is what it looks like when you zoom in and there's these small, or these three small holes that make it very weak in that part so you can just snap it apart and break it. And this is what they look like on the Christmas tree to break the separate branches apart. So the other thing you need to think about. You can't just make things infinitely thin. You're going to have to put the wires in somewhere and you're going to have to put the components in somewhere. And so you need to think about how big those wires need to be, how close to the edge can they be and design with that in mind. So this is the Christmas tree that I did. And this side is actually, it's not the mirror image. It's like the rotated image like if you flip a pancake over a turn a book over. So this is the backside and this is the front side of each other. So when I go and I zoom in on the center what you're seeing is actually this is the backside that would be on here. This is the backside that would be over here. And what you can see is that up here it's really really tight and so you have to think about how many wires do I kind of expect. How big are these components and design so that it really will eventually fit. And sometimes you have to redesign things because you need more wires than you originally thought about. And then there's also mechanical properties. So PCBs come in different thicknesses in the case of my Ph.D. when I built this I needed a very very thin PCB because I had a very tight restriction on this component and actually all of these measurements are minimized as much as possible for clearance and manufacturability incivility. So in this case the PCB was really really stable once it was in the column. But a number of people were not careful and my collaborators... Because this was delivered all over the European Union. A number of my collaborators were not very careful with this PCB and they would bend it or break it, which made my fab even more happy with me because basically they kept having to rebuild them. So, you just need to think about the manufacturability and like once you start removing the inside how strong will it be and will I be able to bend it like paper. Because if you can do that, it's not going to last very long. So then you also just need to think about the tolerances. And a lot of these are online. So for example holes in pin headers. I recently had a PCB that I designed and the pin headers were a really good tight fit. They basically stuck them in and they were pretty much a right angle in the first round. And then I ordered more and the holes didn't fit anymore. So you need to always allow for, you know, some tolerance in your manufacturing site an error on a bigger hole that you fill in with solder at least in the artistic side then a small hole that you have a perfect fit with. Also wires near the edges can sometimes cause problems. And that happens because the tool might not be perfectly aligned. So if you put your wires further away from the edge you're going to have a more likely chance of having a lot of really good PCBs rather than difficulty with your fab. And if you're already asking your fab to do special stuff for you, you probably don't want to make their life even harder. And then tool radius. So in this first version of the dragon fly I sometimes had problems with this particular joint and you can kind of see a blown up sort of out of focus image here where you can see that they had trouble with the tool because they were using one milling tool for this outside part. And then they had to go in with a smaller tool to sort of get this part out. And it was difficult for them. So that's why in the Christmas tree I made the fillet, so that's the curves on the inner fillet, in manufacturing or and mechanical engineering is when you have a tight joint and you make a small radius that's the size of the tool bit or larger. So I made bigger ones in later designs, for that reason. So now that you kind of have a background in all the different things you have to keep in the back of your mind when you're actually going to try and have this fabricated. Now, I'm going to get to my workflow, which is what I actually go through when I'm trying to design something new. So the first thing I do is I actually get a piece of paper and a pen and I just start sketching what I think it's going to look like. It's so much faster to draw in on paper, even though I'm really not a great artist, than it is to try and draw in CAD with exact dimensions and so on. Then I make a schematic in KiCad. Schematics are basically the the electronics, and saying you know I need a resistor, I need a capacitor and so on. Then I pick the components, so that's like not just I need a capacitor, but I need this type of capacitor, that's this big, and this wide, and this tall. And then, once I have that, I now have the maximum size that all my parts need to be, that need to fit on the board to actually do something. So then I can go in to a CAD model, which is what the mechanical engineers, and the manufacturing engineers, and the civil engineers, and the architects use, to start building the PCB outline, so that electrical circuit board outline. Then I import that model and I use the outlines that I drew as the edge cuts. So that's actually the end of where the milling tool will go during the manufacturing process. And then I placed the components where I want them to be. And then I connect all the wires how they need to be. And then I optionally will panelize them, depending on how big that PCB is going to be. So that means putting more than one of the same thing on the same board. And then ,if I need to in order to have it be manufacturable just like the heart, then I have to add breakoffs, which is all those parts that I'll eventually throw away just so that they can do v-cuts and so on. So this is me sketching what I think my Christmas tree will look like. So what I did as I started and I literally got a piece of paper and I started drawing triangles, that are the size I wanted it to be. So this is 10 centimetres tall and then each one of those small triangles is 5 centimetres. And then I started sort of sketching this, trying to keep it at about 3 millimetres, because I've done so many charlieplexing LED things at this point, I know that if it's less than 3 millimetres, it's going to be hard to route a lot of wires. So it's a good starting point from my side. All my components I also know will be able to fit on that 3 millimetres, except the microcontroller. So that means somewhere I'm going to have to make something bigger than that 3 centimetres or 3 millimetre, 3 centimetres, sorry that's wrong. It should be centimetres, not millimetres. No, it should, yes millimetres, sorry. Sometimes I think in inches, I'm American. Laughs I haven't quite converted. So basically I also think about what it should do electrically. So is this blinky lights, is there a motor is there, what's that going to have on it? And is it going to be 2D or 3D? And I start thinking about if it's 3D, how am I going to get ground and five volts from one side to another. Do I need to get a signal somewhere? Like is there one microcontroller on this 3D object, and therefore the branches are of the Christmas tree are all going to have to get the all the signals from the microcontroller or I'm going to have separate microcontrollers on each branch? How's that gonna work? Then this is the schematic, actually, and it's the same schematic I've used for the dragon fly, the heart, and the Christmas tree, where I basically go in and I say "Okay, I have that sketch that I drew by hand and I'm going to need a capacitor that goes between five volts and ground. I'm going to need the microcontroller that's going to tell all these LEDs what to do. And because these are LEDs, I'm going to need resistors." So I connect them all the way that I want them to be and the way they need to be to work. And then the next thing I do is I actually go through and I get on like a distributor for electronics and I actually pick components. So this is in 0603 capacitor. These are taken from DigiKey. This is an ATtiny, these are resistors, this is the LED and so on. And that way, I have a physical idea of how big these things need to be. And then again footprints, so the pads that those components are going to be soldered on are actually bigger than the components itself, logical. So I need to figure out exactly how big those need to be. Because if it's a perfect fit for the resistor somewhere, that means that's not going to be a perfect fit for the, resistor, it's not going to be a perfect fit for the pads. So I need to really think about the pads. And at this point sometimes I design new footprints. So maybe I want, instead of the resistor to look like this, maybe I want it to be a Christmas tree. So the ball needs to be actually a ball, like I want these to be the ornaments. So then I just would make some silkscreen marks around it to make it look like a ball, for example. So then, I have to go ahead and actually build the CAD model. So that means I go into Fusion360, you could use other software, I've used SolidWorks before, as well. And then I start drawing things. And these are all 3 millimeters. And this is actually where the micro controller goes, because it has to be big enough for the microcontroller. And so this was the logical place to put it. In the dragonfly it's actually in the center where the wings come together. In the snowflake it's in the center as well. In some other PCBs that might be on the stem of a shamrock, because those are logical places to be bigger. So this is a snowflake that I was talking about. So sometimes I also, and this is like actually the one of my earlier PCBs, I actually modeled the components to make sure that it would make sense and it would look OK. And I don't have the back shown. But I also modeled this component. And if you look, it's kind of a tight squeeze there and I needed to make sure it would fit. So then, once you have a CAD model that you're happy with, then this is sort of a weird step that it took me a while to figure out. But I already had a lot of experience dealing with the quirkiness of machining tools and 3D software. So, basically I export it from Fusion360 as a DXF, but because there's multiple different formats that DXF can have, DXF is just a two dimensional drawing format - there's multiple forms that it can have - I actually have to open it in another software, because Fusion360 doesn't save it in a format that KiCad can read. I open it in a different free software and then just save it as an R12 ASCII file, that's a form of DXF, and then I can open it in KiCad. If I don't do that what ends up happening is only the straight lines show up and some of the circles might. But none of these complicated curves will show up as edge cuts. So then I just go through, once I have the edge cuts put on my board. Because this is when I'm starting to actually design the board. I import all of the LEDs and so on that I did and the schematic, and then I start placing them where I want them to go. In some cases, I might have, if I'm really going to be very specific about where an LED needs to be, I wasn't so much on the Christmas tree, I'll also have exported the LEDs as part of the edge cuts and I'll just delete them later. And that way I know exactly where I want that LED to be. And then I need to route them. So all electrical softwares have routing, as far as I know, that you can do and it usually comes out in like a 45 degree angle or maybe 30. So often, I will do it by hand. This is a different kit that I built and I wanted the routing to sort of make a heart shape in the charlieplexed heart. And so I did it by hand. The other option, it also if you do it by hand, you are less likely to make really dumb mistakes. So for example when you use an auto router, auto routers know where the components are, but they really don't care about anything you would learn in like a physics class. So they have no problem with making an insanely long line from a capacitor to a microcontroller and you want that line to be really really short because it's supposed to buffer voltage changes and provide, like, basically buffer fluctuations in the amount of energy that microcontroller is receiving from the main power source. Because maybe more LEDs are drawing more energy. But anyway, it'll make those lines not the way they should be. So doing it by hand is often better, but with some of my designs like the Christmas tree it's just not possible. Because this isn't an angle that KiCad can do and that most software can do, I actually export the file that has all of the components on it, placed in the correct location and the edge cuts, and TopoR will go through it and it will make curvy lines, by making lots of tiny straight line segments. And one problem with that is that, a lot of these auto routing softwares have no ability to work with a giant hole in the middle of the PCB, so they'll just connect like this to that, just through the hole. So that doesn't work either. So there's a script on my GitHub page. It's actually not on there right now. I will put it up there by the end of Congress. But I just didn't have time over the holidays. And then once I do that, I also need to check for stupid electrical errors. Not because they won't be connected but because sometimes you have components that are close to another component and the lines need to be very, very short. So you might have to fix that on your own. So then at that point you're basically done, except if you want to panelize. So in the case of the Christmas tree I had 1 and I wanted to make 4. So in order to make it panelize well, because this is basically just a triangle, and I needed to know how long it was and how tall it was. And in my mind it was the full 5 centimeters, but in reality, because I had cut off this corner, it wasn't five centimeters. So I took a like marking edge, so something that the manufacturing process doesn't use for anything, and it doesn't end up in the Gerber files, and I extended this line out to where it should have ended. So it would be the right shape. So then I could rotate it and flip it and so on and have it turned into this pattern. The other thing is that I had to remove extra and duplicate lines. So in the process of making one, I needed to close all of the lines. So on this mousebite there's a line here, that actually, the arrows will show it. So the blue lines or the blue arrows show where these mouse bites are closed and they're actually going to flip and connect to each other. So I had to remove them in the final panelized version over here. So you can see it four times with this edge removed. And then there were a couple of mousebites that were close to that edge so they weren't completely closed. And it also had problems with that, so I had to just replace them with circles or close them manually. And then the next step when you're panelizing is also to add brake offs for the manufacturing process. So in this case that was these small edges because the v-cuts needed the flat surface. So that is the end of my talk. And if you have questions, I'm open to questions. You can also, if you're online and you're watching this later, you can leave a comment on my YouTube channel. I try and get back to people and make videos based on their comments. I have a Tindie page and I have a webpage. And then, if you want to learn how to solder but you don't know how, come over to the hardware hacking area because I'm going to be teaching a workshop on that. Herald: Thank you very much for this most excellent talk. If you have, please a round of applause. Applause If you have any questions, thers microphones, 6, distributed through the room. Please just walk up to them and I'll point you out. Are there any questions from the internet? No questions from the internet. Are there any questions from the audience in the Saal? Come on guys, I know it's early. There is one. Please walk up to the microphone there in the aisle. Center front microphone please. Front center microphone: Let's see if this works. Sounds good. So I'm also very fascinated of the idea of charlieplexed circuits, and I'm wondering: Do you sell any of your PCBs as kits or something? Emily: Yeah, I have all of them as kits with me. So go over to the hardware hacking area. Mic: OK, thats cool, thank you. Emily: Yeah, even the ones that aren't on Tindie. So basically anyting on my webpage, tried to get all of it here. Herald: Again, center front microphone please. Question: Yeah, hi. Why didn't you use the PCB layout software to create the outline. Emily: Because KiCad doesn't like splines. And so, if i did the, so basically PCB software is often designed for straight lines or arcs. So just circles und straight lines. To define more complex shapes is significantly harder. Also, with like standard manufacturing software or standard mechanic engeineering software. they are designed so that you can parameterize things. So actually with the snowflake or the Christmas tree in the Fusion360 version, I have numbers that say, you know, 3 milimeters. This is three milimeters. So if I decide later I need it to be 4 milimeters, I just go 4 and then export it again. It's much faster. It sounds harder, but is much faster. Herald: Again front center microphone please. Question: Absolutely newbie. So I'm only wondering if you prefer EAGLE as well? Emily: So I've never used EAGLE. And the reason, that I haven't is... Well, there's two reasons. First, right now it's only free for smaller PCBs than the Christmas tree. So I don't want to spend money because I'm currently unemployed and I don't have that kind of money. Second, my husband runs an embedded systems company and he uses KiCad. So I have a professional that lives with me and that I can go "I don't understand." and he can be like "Here is how it works." So on that side it was easier for me to use the software that was already in my house. When I was working professionally, we used a professional software. So it's just basically I started learning when EAGLE went from open source and free to being bought by Autodesk. Applause Herald: Again center front microphone please. Question: Thanks for this interesting talk. So I knew about PCB design, but the artistic part is new. My question is, how do you deal with, so I like to use Git or some version control and with KiCad it's easy. You have it if it's a XML file. But with outer tools you have binary files. Do you have any way to deal with diffs of binary files? Emily: So with most mechanical software there is version control as well. So you, like, for example in Fusion360 every time I save it'll save the same file as version 1 or version 2 or version 3 or version 4. So it't not really GitHub, but it does have a way to regress backward in what you want. Mic: So you save it as version 1, version 2 or does it automatically Emily: It automatically actually does it. Every time you save it, it sort of appends a new version to it. Because this is also a problem industrially with mechanical engineering designs, where mutlipe people need to be working towards getting maybe a probe to be stable. So they also have to deal with version control. Mic: Because I'm trying to do the switch from EAGLE to KiCad, and in EAGLE I just have version 1, version 200, 300, 400 Emily: Yeah, with KiCad I don't really do so much version control. Yeah. I, he would be the person to ask, because he's the professional. The guy in that shirt with the "do not panic" is really the person I end up asking all of my really tough electrical questions, too. Herald: We have another question on the front right microphone. Mic: Yes, hi everybody. Thanks for the talk. Not really a question, but just a heads up. There is going to be, according to my knowledge, a KiCad beginner workshop on friday at 9 in the evening. Just for those interested. Emily: Cool. Mic: Maybe you show up as well. Laughter Emily: Maybe Herald: Another question form the cernter front microphone. Question: To the usual PCB interested person, how would you recommend to find and select a fab? Emily: For regular PCB, like if you are just trying to make a square, I think any of them will probably work. For me, like when I was trying to do the Christmas tree, I sent it to 3 different fabs. And one of them I have a contact there, because I actually visited that fab at one point. And so that worked out. But when I, acually the purple picture is from OSH Park, and they say somewhere, that they don't deal with internal holes. Yeah, so I would just contact people. Just email people if you have something weird. Email people and see if they can do it. Because most people who have a PCB fab want money and will work for money. Laughter Herald: Next question again center front microphone, please. Question: Yeah. Very, very specific to your talk. You said that the DXF format that Fusion puts out is not directly readable, without loss, by KiCad. I missed the software you use to convert it. Emily: Ah, it's DraftSight. So... ... this ... this slide. So thats how it's spelled. Q: I see, thanks. A: Yeah, and in that software they have, I don't know, maybe 20 different types of DXF and other formats you can save things in. So when I worked for the Swiss watch industry we would have to take all our files and save it in the right one from customers. Herald: Next question, center front microphone Question: Hey everybody. If I wanted to find a lot of people who already know KiCad, where would be the best place to look? Emily: An electrical Herald: Probably the workshop. Emily: Yeah. Question: Well it's for beginners. I'm talking about people who already know KiCad. It's like, is there like one main discussion group in Usenet or something like central point on the internet to find those people? Emily: Yeah. Herald: The audience says: "Go to IRC. There should be a KiCad channel." Emily: Again, I Herald: Probably on freenode. Emily: Again, like he mentioned, I was a broken person, who couldn't leave my appartment for actually it was a very, very long time. But, he was my answer for everything. I was just like "I don't understand after an hour. Can you fix it?", he's like "OK". So I'm not knowledgeable on that. Herald: Next question from our signal angel handling the watchers at home. microphone issues Emily: Thanks. Herald: Next question center front microphone. Question: Hi, thanks for your talk. I just have question about the mousebites. How do you convert them from the edgecut format to drilling, actually? Answer: So, I just leave them as edgecuts, honestly, and they magically work. Mic: OK, not the answer I expected. Thanks. Herald: Are there any more questions? Last call for questions. No, doesn't look like it. Well please give Emily Hammes a nice round of applause for her excellent talk. Applause Emily: Yep, and if you are watching online, not during congress you can contact me that way. postroll music subtitles created by c3subtitles.de in the year 2019. Join, and help us!