CEP014 - Moving to KiCad V6 with Jon Evans

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
long time viewers of this channel and members of the contextual electronics course will know of my deep abiding love for kycad and that's what we use in the course and for a couple reasons one it's open source two it's free part of being open source and i think it's really flexible too i think that that is one of the most exciting things about it the fact that there is a community around it building out additional extensions we talk about that a little bit in this show with john evans who's one of the lead developers really exciting thing about the kai-cad development team is that many of them are electronics designers themselves and so they're thinking about people like me like you about how we might be wanting to use the program and all of the things that are affecting users on a daily basis there is an upcoming version of kiket happening v6 as we talk about here in the show john is kind enough to showcase some of the features and we talk through how things are going to be changing in v6 i'm very excited for it personally i think it continues to move kiket along the path towards a more and more professional tool i do use kai ked professionally in my consulting work and i think it is a capable tool to do that sort of thing so i hope you enjoyed this episode with john evans and from the core development team of kai-cad if you haven't seen it there's many other videos here on the channel about kai-cad from kaikon you can see john talking there as well and i'm really looking forward to future developments of the platform [Music] i'm here with john evans and today we're going to be talking about kycad or kicad and we're going to also be talking about designing next versions of electronics using v6 and beyond welcome john how are you doing hi chris great to be on the show i'm doing well yeah it's good to have you here there are so many exciting new things coming and i uh you had done a live stream along with other uh developers back in i don't know mid 2020 or so actually no by late 2020 and you did so many great demos then i really appreciated that uh how long have you been working on the project oh i'm i'm uh coming up on five years now of of being involved in one way or another and i've uh i've been sort of heavily involved in in the in the core development uh since since about when version five was released and we started really working on version 6. i i have to wonder like is it is it super empowering just be like huh i really wish the cad program would do this oh i could just go is that like something is that like a regular basis for you how does that work oh yeah oh yeah that's actually how i got started you know my very first uh kicad contribution was uh you know i was i was using it for something and i i i think it was um in the in the board editor i was just like why why can't i do this and this in the in that case was uh making uh making a layer like an arbitrary color for those who've been using kicad for a while you might remember back in the day you couldn't actually use any color you could only use like a certain palette of colors because of the sort of the graphics technique that we were using um mixing colors together there was only certain colors that worked um and i i didn't really know about the technical background of that limitation i just thought it was a limitation i wanted to use a different color theme and sort of started digging in and you know quickly found out it was a it was a more complicated problem than i thought which is why no one had done it before but it was it was a great way to sort of learn about how the how the code worked and uh yeah that that feeling of uh oh why doesn't it do this so wait maybe i can make it do that it's uh yeah it keeps coming back empowering and yeah and it's funny too because i remember talking to some of the other developers at uh the conference back in 2019 and it was a pretty common story too it was like oh yeah i started digging in like how hard could this be and then like the complexity of just like the years and years of like building a cad program from scratch is pretty significant it feels like absolutely i totally understand why some people's approach to that is you know they see it and they they run away and say i'm gonna i'm gonna build my own cad program because they don't yeah they don't want to take the time to to learn the history of the code base and you know i think i think both approaches are are valuable but i really think you know even though there's a lot of complexity and history in in the kicad code base you know over the you know three decades it's been around i think there's you know a lot of value in that it kind of you know has has grown with the users and and we've been you know seeing over the years what what people are doing with it and what people want to be able to do with it and all of that is kind of encoded into where kicad is today and and i think uh it's a it's a great place to build on even though it does uh take some uh some barrier of entry to sort of figure it out yeah right right yeah that's uh it's not a quick there's no quick start uh guide aside from well get it to build first although that's gotten a lot better um and another thing that's interesting to me is that like a lot of the i think almost all the developers are like have electronics background or are practicing electronics designers yourself included i mean you you work at a a fairly large like you know electronics design group inside of a 3d printer company yeah so i lead the electronics team at form labs and and yeah i think uh having input from various you know various different corners of the electronics uh world whether that's people working in industry like i do whether it's people who are sort of focused on one particular part of electronics design like people who do you know high-speed layout or things like that um and also people who are you know not coming from a industry point of view but are coming from a more personal project point of view but one way or another they're they're using the tool and they want to improve the tool that they use i think that's uh you know obviously it helps to motivate people but it also helps to uh you know have all these different use cases within the development team that we can discuss it's not not like building a product where the people who build the product are disconnected from the people who will use the product right if you or i were like designing a product for 100 year old people that would probably be a tough one to to kind of dog food and try out right because it's just like you don't have that experience versus in this case it's like yeah people know how what they want on a regular basis or they're trying to fix something that annoys them personally so that's that's a great use case what's what i mean what is it the like formlabs i mean is is a big team small team i don't really uh i don't know the yeah yeah i mean it's it's uh it's a little over 500 people in the whole company so it's uh it's not a little startup but it's also not super huge um and in in the you know electronics team it's uh it's eight of us so you know it's uh i think it's a good size it's uh not not small enough that that everyone is you know burdened by having a million different things going on and and no no breathing room but also it's uh you know it's not a huge corporate culture where you have you know different teams that aren't talking to each other doing different kinds of electronics design or things like that yeah yeah i'd imagine i mean sp forms been around for formlabs has been around for a while now too so then you start to get into like sustaining engineering and just keeping products alive and manufacturable and just cranking out that next thing while you're also working absolutely yeah on the existing one that's making money you know like you have to just keep things going yeah yeah i mean it started out as just a kickstarter project and you know when you have when you have that kind of thing and you have everybody working on one product and then the one product gets out there and you have to see how people are using it and fixing it that's a totally different atmosphere from where we are now where you know there's uh it feels feels more like an established company where we have you know as you said sustaining engineering efforts new r d you know uh product introduction things like that yeah i mean kind of parallels the cat development right i mean there is this ongoing base of people that are using the stable using the the stuff that's already out there but then there's people like you that are developing that next thing that's that's in the new code base in version 6 or 5.99 until v6 is released and so what what is that new product introduction that new product fanciness that's going to be coming in v6 that people should be excited about oh where to even start i think v6 is probably the biggest keycard release ever in terms of how much it changes uh and and how how much people will notice it having changed um certainly certainly in terms of impact i think just because the you know the number of people using kicad has grown uh so much over time like the number of people who will be moving from version five to six i think is going to be you know a lot higher than from four to five just because you know more and more people have started using keycad but i think if i had to sort of sum up where we are going with version six it's uh it's trying to work on smoothing over some of the rough edges that that people complain about in keycad and trying to you know close the gaps between keycad and some other tools that people might consider using so make it make it relevant to more use cases and make it easier to to get into keycad from zero experience with with electrical cad or from experience with another tool so we've just sort of looked at all of the ways in which you know people have pointed out kicad is a little bit different a little bit quirky compared to what they might be used to and and tried to address as many of those as we could and also you know there's a long list of of features that people have requested you know hey cad tool x can do this why can't kicad do this and so there there's some juicy ones in there that we've managed to add for version six and we've uh got a long list ahead for version seven and version eight and uh on and on yeah i mean it's tough when there is there are so many like different viewpoints so much history in the industry so many i mean like you said different different people using different programs that are like oh i really liked feature x or future y and now those try to you know trying to kind of bolt these things on but also make it feel like this whole thing that actually isn't isn't just like menu after menu after menu after menu item you know right right and i think that's you know one of the challenges you know we were talking earlier about how you know key cat has been around forever and can be kind of hard hard to get into as a developer if you aren't used to like these big legacy programs um one of the hardest things about achieving those goals in key cad is just the legacy like it's really easy to start from zero and develop you know a philosophy for the user experience and the ui of a program and then just stick to it but when you have an existing program and you you have you know identified faults with the ui like this this is obviously confusing to people doesn't work as well as we want it to work we have to also consider but this is also how it works and how it has worked for decades and so not only do we have to design a good ui but we have to design a you know an experience that people can transition into have already been using kicad because we don't want to just blow up what we have already and and make everyone completely relearn something that feels foreign again so we're we're also thinking about you know some sometimes blowing parts of it up is the right move and and you know one of the things that we've done is um this you know the schematic editor for example the way that you interact with with objects in the schematic like selecting things and moving them around was just very strange in in previous versions of kicad compared to what people are used to in most other editing tools and there we felt like we could just change to the standard kind of paradigm that it's used in other tools and yes people who are very used to the old way would notice a change but they would also probably be able to pick up that change pretty quickly because it's the same paradigm that so many other pieces of software including our own pcb editor already use and there are other cases where it's it's harder to figure out what the right move is because we can look at other commercial cad tools or other open source cad tools and sometimes we think you know no one's doing a great job here with this particular thing like uh you know cad is is not one of the places where you see a lot of like you know award-winning user experience and things like that so it's such a joy to use so yeah you know oh my my my my ipad is just such a smooth experience and no one's saying that about about cad programs huh yeah and and there are a few places where you know there's some some some of the commercial tools are really trying to push on user experience and have made some progress there and i i think we you know we keep looking at those and thinking about you know how does how does that map to something that we could realistically do in key cad and you know have have a have a path for people to learn the new paradigm and you know implement it into the code that already exists that's cool that's cool so um you have a demo project we could maybe kind of use as like a basis for talking about stuff obviously if people are just listening to this there is a video version so you can go check that out otherwise you can go and download version 5.99 there is a nightly available you can try it out i personally i keep it on a vm i think it's great for just keeping it kind of play grounded myself and uh but it doesn't you don't even need to do that it's pretty easy to to keep it separate in you know a linux repo or as a separate windows install right yeah if you're if you're using linux or windows it's very easy to install both the nightly development version and the stable release on the same computer and there's no problem with the programs fighting with each other like there was in the past you just have to watch out for your design files once you uh once you open your design in the nightly you can't go back to the old stable release so so work work on a backup copy yes that's right that's right cool so what do we what are we going to be looking at here as an example yeah so so what i have here is uh this this project called stick hub which is uh one of our new demo projects this was contributed by a key cat user and it's a it's a new demo for for version six that shows off uh some of the new features like uh like curved traces in the pcb but i wanted to start by showing the schematic editor and just showing that now you know the biggest change is like i said how you interact with objects so now you can just click on objects and they're selected and uh if if you haven't used kicad before this might seem a little bit obvious but you know kika didn't have this in the past like there was no concept of just like having something selected um it was either not selected or you were already doing something with it you were you know you you select and move or select and rotate or something like that but now and you know you can you can drag i have to have an extra click john is that what i'm hearing oh my gosh so many extra clicks well if you know if if you really want to use keycap quickly i would say that the thing to do is to learn the hotkeys and that's something that we've maintained from the you know the previous version um all of the things that you do with the mouse you can also do often faster with the hotkeys and so you can also just you know grab parts with a single key press and move them around but it took me far too long to realize that the the old hotkey uh index like the thing that showed like all of the all the hotkeys it used to be on the question mark button and now i think it actually is very smartly i think control f1 or f1 is basically how you like have that show up and uh yeah that that is how i learned the program to start with i i've always said that that's the best way to to to get started just because like you keep kind of getting that repetition in there it's and now there's even a search function which i don't think it had back in bzr 3104 or whatever it was so but yeah um i think you'll notice uh there's you know visually a lot of change here we've completely redone our icon pack and we did that for a couple of reasons one was we needed to sort out some licensing issues with the old icons where some of them we didn't really have clear records of the author and the license and and we needed to just make sure that we were starting from a position of having a good license on all the icons but we also took that opportunity to develop a icon design language and we worked with a graphic designer and sort of developed you know a set of colors and a set of design rules and things like that so that not only do we have you know 500 icons that are all sort of designed the same way now but we also have a guideline for developing new icons in the future as we develop new features and hopefully can avoid uh some of the issues that we've seen in the past with kicad and and other open source projects where the the visual design language can be sort of all over the place with the with no you know guidelines for keeping things consistent um and one of the other things that's allowed and i can't show it off here because i'm on windows at the moment which is the one platform where this doesn't work but on on linux and mac we now have support for the operating systems dark mode and and so you know we can have a dark icon theme that uh for for users who are using those operating systems cool yeah that's great that's great and i mean so i i think from a first glance like you know like top line the graphics like you said are the icons rather that that that is different but like it still looks like a schematic to me i mean like it's not like so radically different that it's like oh i don't even know what programming this is whereas you know i look at an all-team schematic i know it's an all-team schematic i look at the eagle schematic i know it's the eagle somatic and so this still looks like i can to me that it's still got that same that same look and feel and kind of color scheme i guess yeah yeah we wanted to maintain that that kicad feel and and just make subtle improvements where we could so the list of things that has changed here i mean it's going to take a while to compile we're going to have to do that at one point and you know actually write the release notes um you know there's there's just hundreds and hundreds of of small improvements and and big improvements um in the schematic editor um you know one of the things is that you know net classes can now be defined in the schematic it used to be this was something that you would do in the pcb but now you can say at schematic time okay here's some high-speed nets or here's some you know power nets and and set them up here and you can actually give them different thicknesses and colors and line styles and things like that so if you want all your all your power nets to be thicker than your signal nets you can do that in the schematic and things like that um that's great that's great yeah i think that's another thing too where it's you know for for a long time like the you know the uh the net classes was the scary thing that like i you know i told people like oh well you don't really need to use it at all but you know as you start doing high speed stuff you want to have controlled impedances it just becomes so critical to uh just to keep things separate especially as designs get more complex too because you want to you have so many different types of of uh maybe controlled impedance lines or or requirements for a specific output or spec yeah one of the things that we've been doing you know both on the schematic side and on the pcb side is trying to make kicad more applicable to more types of designs and that includes high speed designs or high power designs or or any kind of situation where in previous versions of key cad it was really hard to sort of define the design rules and and the requirements for your design whether that's a lot of different impedance control requirements or current carrying capacity on traces or things like that so one of the things i'll show later is we have you know a really big upgrade to the design rule system and you know part of that is defining net classes but part of that is also being able to you know set up custom rules for specific situations where you know previous versions of kicad had sort of a one-size-fits-all design rules that didn't really work for a lot of advanced pcbs right yeah if you have different even different sections within a pcb you might want to have the analog section have different rules in the digital section that sort of thing exactly yeah so speaking of the pcb i can i can pull one up here and there's uh perhaps a little bit more visually different on the pcb editor than than on the schematic editor um just at first glance we've uh you know redone this right panel here where you you choose uh what things are visible and and and there's now a list of nets and net classes here so you can actually uh scroll through nets here and and turn them on and off and hide the rat's nest lines which can really help on busy boards but we also have these presets for displays and you can add your own custom presets so this just makes working with busy designs even better because you can now use this control tab hotkey to just cycle through different presets of layers so if there's a inner layers there's none on this design or i can just say i only want front layers or maybe i only want back layers and if there's a particular set of layers for your design that that matters to you like maybe you want to set up a specific view for routing certain traces against reference planes you can save that preset and you can pull that up in the list in addition to the built-in ones and we've also made it so that you can change the transparency of different types of objects so you can see here i can i can make the filled areas and these zones uh translucent and keep the tracks fully opaque and there's a lot of little tweaks like this that we've done to make busier boards easier to navigate in the pcb and generally just trying to make kicad an easier place to be if you're dealing with a complex design yeah that's one of the things where you like it especially for beginners it feels like trying it's so much information that you're trying to kind of parse you know you say you have a neat layer board and you're trying to see all these things see all these things at once right you're peering through different layers you're having different cutouts it's just it can be really confusing especially if you start getting into really crazy things like blind and buried vias and just trying to visualize that stuff so this is very much appreciated yeah and another thing is you know we can um in previous versions of kicad you could go into what was called high contrast mode and sort of make make things fade out and this is nice for some situations but still you know especially when you're talking about like an 8 layer board or something like that even the faded out stuff can still be distracting and so you can now you know hit that hotkey one more time and now you're only looking at one layer at a time and you can still you know quickly toggle through which layer you're looking at and with a single hotkey get back to showing more of the context you know previously you had to go over here and you know hit a bunch of check boxes and turn layers on and off so now it's a lot easier to navigate those kind of boards yeah yeah it is usability that's that's really great that's awesome and i think that you know like like i said uh you know like some of the mental just viewing of this stuff is it's going to be a skill regardless right some people watching this are very likely beginners or interested in pcb layout you know some of it is just going to be learning some of these methodologies some of the conventions that are part of uh ecad programs it feels like so what is the what is the split of like beginner versus you know more advanced type stuff it seems like this is maybe skewing more towards the advanced that's a good question i i i wish i knew i mean we don't we don't have very good statistics on the whole user base i mean we you know we don't we don't collect a lot of information you know from from every kicad user i mean we've done some surveys in the past to uh you know places like the kicad user forum but uh that's only going to capture you know a certain subset of the people who actually use keycad so we can find out about those users and we can sort of find out you know users who report bugs to us sometimes sometimes you can tell what kind of work they're doing uh if you know depending on how much information they share with us but i think what we've seen is key cad has always been recommended to to beginners to hobbyists to students to you know anyone who needs a good tool that is also you know free of charge where you know they can't they can't uh you know justify paying for for a tool and you know until until fairly recently there weren't a lot of good options other than keycad that could both do you know a wide variety of tasks in in electronics design and we're free of charge and we've also seen recently a lot more users who you know they don't care as much about the free of charge part um they care about other things that might be either pushing them towards an open source tool or pushing them away from you know whatever commercial tool they have been using and one thing that's been that's been big is sort of control over data and and control over licensing you know a lot of companies these days are are looking at how they can move away from perpetual licenses to uh subscription licenses for for all software um obviously you know from a from a you know business point of view subscriptions are pretty attractive um you know they sort of guarantee recurring revenue um but it does create a lot of you know unease with with the designer community i've seen where people are worried about losing access to their designs things like that so one thing that kicad offers is there's no way you're ever going to lose access to your design and uh you know even if you you know if if you decide that you want to operate with a certain keycard version you're never going to be forced to upgrade to the new version if you don't want to and so i i think there's been you know for for those kind of reasons and for other reasons we've seen you know more more professional users come to key cat in the past years yeah i mean it's kind of like what you were talking about with people you know gently guiding people towards these new features these new uh locations of just maybe where to click and where to just people's workflow and it's like with some of the cloud tools even when they are updating for a a arguably objectively better flow or way of doing things it's just like you're blowing someone's up so blowing up someone's workflow on a daily basis now instead of like this opt-in like oh yeah i'm ready to move to the next version and like i'm ready to to like sit down and make sure that i'm good to go and it's not the day before my boards do and uh yeah so there there is a lot of that pushback and then like you would also said like it seems like the ecosystem kind of the ecosystem stuff has maybe that's a softer one i'm not sure like i personally i feel like so much of the there's the core developers but then even like the bomb plug-ins and and things like that that a lot of the kai-ked community has has pushed back in like it that is so valuable to me that that i can just find something there's people out there that are doing python scripting or doing other stuff out there that when i'm in a bind i can just kind of google around and find something absolutely i think you know the keycard community is definitely its biggest asset and and just it's it's incredibly motivating to me and the other developers to see the people who are not only using keycad and showing off like the boards they make with it but also you know contributing library parts contributing python scripts and things like that it's definitely when you when you compare to some of the other options of even you know commercial software might be very capable but if you try to find support from the community you know it might be might be kind of hard to find like there's not there's not just a you know a user base of people who will you know chat with you in real time and try to help resolve your issues and you know i think one of the other things that is is kind of paradoxical about about uh you know the the nightly nightly builds of uh kicad and like you said the people who are you know enthusiastically testing that and and and sort of living on the on the on the danger zone of uh running into bugs um you know we we really appreciate the people who are who are doing that and and they are providing a really invaluable service because you know whenever we have a you know a serious kind of bug um that you know misses the development team we find out about it from those users really quickly like we have people reporting stuff and and you know within hours um and this this really allows us to you know focus in on those on those critical things and get them fixed quickly and i think one of the things i've i've heard from people in the community is that they really appreciate how quickly key cad fixes serious problems like uh you know there might be you know people people might wish for a certain feature and it might be a complicated feature and yeah those those can take years to figure out how to do um but there's some bug that's crashing key cad like we want it fixed today and you know if we if we can't fix it today it's because it's a hard problem and we're still working on it um and not not because we don't prioritize it whereas i i've i've seen some complaints about various other tools out there you know open source or commercial where you know serious crash problems can can stick around for for way longer than people expect right yeah and then it's again it's like a business thing of like what is the cost of your business being down for days at a time or weeks at a time and you know if you can't pay someone to fix it even it's like oh my gosh okay well good luck yeah yes and speaking of that it's you know it's really exciting now like that if people don't know we now have uh some of our developers have started a a company the key cad services company where they offer paid support and and paid development and i think it's it's great to have both um you know the the um the volunteer developers like myself who are who are working on you know what we what we feel like working on and contributing when we when we can and then also have the option of you know oh say you want to pay for this thing because you know you feel like it's not getting prioritized by the you know the volunteers like me you can do that now and i think it's uh it's it's going to be really great for the project to have that have that uh as an option for you know supporting professional users who you know like you said you know if if something's broken for them it really matters how quickly it gets fixed yeah i'm still a little disappointed they didn't go with the name lead hat instead of red hat but they uh that's okay i guess you know i guess you know key cad professional services is also good you know but whatever well you'll have to you have to complain to seth about his uh his lack of humor and his name yeah speaking of seth so i actually texted him in preparation for having this recording and i wanted to verify because seth will be hosting uh kai khan kikon uh 2021 which is a go and so that is happening and that's great to hear yeah so uh more more to come on that that'll be in october of 2021 uh in the newly opened california as as of today's recording so that's that's very exciting and we might get to all hang out and talk about our favorite cad program in person which would be very very awesome after a year and a half of not being able to do that and missing out on going to cern well well maybe next year but that's that's great to hear i know i know seth's been working in the background for a while to make that happen it's really good to hear that it's that it's going to happen and you know yes yes there's going to be a lot of caveats to having that kind of event this year but you know we're doing what we can and and like you said you know after a year and a half it's going to be really good i really i really enjoyed the last keycon so i'm really looking forward to this yeah it's a lot of fun so uh if we can get back to the um some of the features so you mentioned the drc stuff and i feel like that's one of the ones where it's this hard thing to explain to people especially people that are getting started right some of the people listening are getting started here what is drc why does it matter and then how is it changing in this case because it feels like that's that's kind of a game changer it feels like to me and it also feels like it's like kind of this background feature otherwise you know it's not something it's visual it's something that's more rules-based yeah so so drc or design rules in in general is uh is how you tell keycad or or any electrical cad tool what the requirements of your design are when you're when you're laying out a pcb so those requirements might come from different places like a lot of them come from the manufacturer of your board you know you might know i'm going to send this this board to osh park or whoever your manufacturer is and they will have certain equipment that's actually going to you know set up your your board and and and expose all the copper and and and mill it out and all of those steps in the manufacturing process have tolerances and and so you need to allow for those tolerances and so one part of design rules is making sure that you don't accidentally design something in cad that can't be built in the real world like you know lines are just too close together they're actually going to short out if you try to if you try to manufacture that in the real world or things like that it's like bumper bowling for uh pcbs right you'd make sure you can't you can't go in the gutter yeah yeah and so you know making sure that your board can actually be made is part of it and another part of it is making sure your board works properly even if even if the manufacturer can make it you know um all of the copper on a board has certain electrical properties and and those electrical properties you know matter in different situations like if you're if you're trying to you know power some kind of high power device off of your pcb you know all of that current for that device has to go through traces on your pcb and so you want to make sure that the resistance of those traces is going to be low enough that the the copper and the board doesn't actually you know heat itself up to the point that it fails and there's a bunch of other stuff like that when you get into a higher speed design you have to start thinking about signal integrity and if you're trying to make a product and release it you have to worry about emc and and whether your board is going to be unintentionally radiating uh noise into the world and things like that how you lay out the board and you know exactly where you put different pieces of copper matters a lot to the success of your board especially when you get into you know higher end layouts when you when you're talking about you know sensitive analog circuits or high speed digital circuits or things like that and what design rules does is it allows you to sort of offload some of that thinking to the computer definitely not all of that thinking like you definitely still have to think for yourself a little bit but you can at least tell the computer some of the things about what will make your circuit work or what will what what your circuit needs in terms of the the physical copper on the board and then as you're designing the board the design rule checker can in some cases just prevent you from doing things that are going to violate those rules and in other cases you know notify you later if you if you accidentally violated any of those rules and and and give you an opportunity to fix it so when we talk about design rule checking you know that's that's what we're talking about is uh it's it's only as good as the rules you put into it so if you configure your rules correctly it will tell you if your design meets those rules but unfortunately it can't tell you if those rules are the the right rules to make your product successful but you know it can it can help with part of it yeah yeah that's and i actually i think that was one of the things that kind of brought me to the program in the first place was the i had been coming from eagle where you could just you could lay a line over top of line over top of line and the end yeah it tells you oh yeah actually you you busted that it you can't you can't put two lines you can't cross the streams but you know kyked you could bounces off of things because yeah the live drc is there and it's preventing you from doing the things you shouldn't be doing and like you said you can always go back and mess something up later and so you still have to do that final check but the the idea that you're checking it as i go that's that's that's very important because i i my brain loves making mistakes like that i think yeah and that's one of the biggest engineering challenges in in bringing the new drc system to key cat is that it's it's not just a final check at the end it happens in real time as you're drawing traces with the router so um now that the new system allows you to have a different clearance in one part of the board than the other and all kinds of things like that that people have been asking for we had to make all of that work in real time um and and so right i mean there's a lot of math there i i on the abc board which is one of the boards that i designed for the the contextual electronics course i have a bunch of parallel lines there and they it was getting real tight and uh you know so as i started to push things together there's shifting that happens around with a push and shove router that came out in v5 which was a great feature that people before maybe even whatever it was uh you know people loved it i love it it's it's amazing but as it's pushing as it's you know one trace runs into another and it moves something else it has to calculate like hey can i move do i have any room to move and as you have multiple lines stacking up it becomes difficult and now the rules might be different from line one to line two to line three and it's just exactly it really it'd be it's a lot of it's a lot of math i've always been surprised about how much math is in there yeah and that's you know that what you're talking about like uh you know shoving 10 lines around a board is something that you know we've we've gotten real test cases from some commercial users of kicad who are you know designing products and they have you know shared their designs with us privately because they're interested in helping make kicad work better on these large designs and it's been very helpful to have these enormous boards that you know you just don't see these uh on the uh on the open source hardware sites like you know talking right you know different than an atmega328p uh you know with just routing out to headers it's like okay well that's that's one thing but there's also 1200 vgas that are doing their own thing right it's like exactly you know you know huge bgas you know 16 plus layers things like that and and we we have really spent a lot of time trying to make sure that as we're adding these drc features that we're not you know compromising the the speed of using keycad and creating huge lag and i think you know we've done a pretty good job there's definitely still room for improvement there but i'm actually quite impressed with how keycad is able to handle large designs in in the nightly builds today you know compared to some other software i've used yeah can can you show a little bit of the what the drc looks like because it is more kind of scripty now right yeah so so there there's uh there's two options so um when i open up the board setup here there's there's two places where you can set the design rules and part of them is this uh this page called constraints and this is fairly similar to what was in previous versions of kicad there's there's some new stuff here but overall what this page does is it lets you set constraints that apply everywhere to the whole board so you know if you get word from your manufacturer like everywhere on this board you know i need to have minimum clearance of you know 0.15 millimeters you can put that in there and then you know no matter what else you do this will always be the absolute minimum clearance and so then there's uh there's i i i said two there's actually three places because you can you can come in and and define net classes and this allows you to say you know i have this set of nets like these are all my power nets and they all need to carry more current so i want to make sure that my tracks in the power net class are are a little bit bigger so you can set that up here and then the the new part is is what's called custom rules and like chris was saying this is a more of a scripting way of um of defining design rules and you know i could i could talk for a while about this but basically the the really short description of how this works is you um you you figure out where you want the rule to apply and where where could be like a physical region like i want this rule to apply you know in this little corner of the board or it could be uh um you know uh a matter of the properties of the objects like when uh when net a runs up against net b i want this rule to apply so you you know whatever your um condition is uh you're gonna have a way of defining that condition by writing some kind of expression and we have a you know a help system that explains all of the different things that you can write in here and a lot of different examples for for common use cases that have come up from our from our beta testers who have been using this um in the nightly builds to to you know design real boards um so once you define where the rule applies then you just define you know what the rule is like you know this rule is giving a minimum copper clearance but you can also you know have a lot of different rule types like you can you know control how wide a tract is or you can control how close together two footprints can be you can control differential pairs and net length and things like that so we are you know we we know that this is uh in its early stages i mean this has been a pretty complicated system to build and we know you know some people would prefer to have some kind of like a wizard system to define rules which are more graphical and and less sort of uh programmy and where we've decided to go with this is to do the sort of the architecture first and this this scripting system that gives you all the control and now that this exists it it's actually pretty easy to think about building a ui that sort of automatically creates rules for you based on some kind of a wizard and so we expect to see people building that in the community via python plugins and things like that and we'll also consider you know in future versions of keycad adding more ui here you know one of the things we're thinking about is we can make this text editor better like if you've used a modern programmer's text editor they can do things like you know real auto complete entire sentences for you in your programming language of choice and we could do that kind of thing here yeah and like uh automatic lookup and so that it's like oh here are the nets that are available to assign to this exactly actually and we have a little bit of that already like you know if we have um we have some some amount of autocomplete for things um but i think i think that's uh definitely an area where we we think that this is kind of a new approach to doing design rules it's not something we see out there in in other tools and it's always a risk doing something like that and you know we we definitely talked about the various ways that we could answer people's uh desire for more flexible design rules and what we concluded is that we weren't really happy with any of the implementations that we were looking at as like the the nice solution to the problem and we've been trying to care about user experience and trying to make a nice solution and we think that starting here is actually going to lead to a nicer place in the end than just jumping into you know one one way we could have gone is just having a a ton of different uis for setting up you know i want to rule in this area or something like this but you know one one fact is it would have just taken forever and we might you know we might not have nearly as many new design roles as we do um if we had to build a separate ui for defining each one yeah it's also interesting is that i mean it does feel like there's more software people that are interested in hardware coming into the space anyway so it does feel like for the people that are kind of software wizards they can just kind of pick this up and go maybe script it like you said um how has that been impacting other parts of the the program and i mean do you or is this even a trend you're seeing yeah i think um you know one of the things that we're working on the background that's not quite ready for the for the public yet but but will be by the time version six is ready is a is a new python api that will make it easier for uh people in the community individuals or or companies to develop add-ons for key cat that that make it do things that it can't today and we've definitely seen you know there are a lot of people out there who are kicad users and you know don't want to dive into the you know admittedly complex and and uh storied uh c plus plus code base of of key cad you're a politician now as well but uh you know they can they can write a little python script you know um i think uh you know what i've seen you know in my in my professional life is um for for hardware engineers knowing knowing software development or at least knowing you know some kinds of software development like you know quickly developing a python script or something like that is is more and more important i think you know the days of you know someone you know being in the professional world and and laying out complicated pcbs and just like not knowing any programming at all um are numbered i think so we've we've seen more and more um people who would be comfortable um doing this kind of basic programming um and and we want to empower that so we're definitely like i said working on a new and improved python api that that makes it easier to and and make makes it possible to automate more tasks in key cad and make it easier for people to discover those things that that people other people have made uh sort of plug-ins to key cad um so that we we want to see that community grow and thrive yeah yeah that's one thing i'm actually excited about as an external i'm not much of a scripter myself but like uh seeing people do things like you know wanting to like set up automated builds and and similar things using apis um that kind of stuff is is really useful and it makes for consistency whereas you know certain things in graphical programming graphical you know tools like this it's just tough to make consistent right you always have to click the same thing in the same order or do the same thing the same way each time it's kind of down to personal rigor instead of like a computer doing it for you and now it's like oh yeah okay so now if you start being able to script this you can make it so you it's one click button maybe all the stuff gets exported at once or one click button and all of the all of the leds get put into a circular ring or you know and on and on and on and on there's lots of ways that the scripting can be used so that's uh yeah do you have a good like example project that you think is like a good way to get started with scripting in inside of the inside of the cad program um i i think placing you know leds like you said is is a great example like you know something where you want to um do something a little bit tedious like if you if you are you know say you're designing your own keyboard or or something like that where you have uh you know a bunch of switches to place a bunch of leds to place something like that if you can figure out um you know a simple way to describe in in python code you know where the center of each part should be then that's a pretty easy script to write and i've seen a lot of those out there and they tend to be pretty specific to the application so if you have a specific application for you know placing parts precisely i think that's a great place to start in terms of seeing how scripting can can help your workflow and in general i think you know this is the thing that i'm really excited about for you know one of one of the things i'm really excited about the new python api enabling is there are so many different little use cases for kicad that people have that you know they're the only person who needs it to do exactly what they need it to do and when the development team is you know looking at feedback coming in or like i wish kicad could do this or i wish it would do this differently or things like that we sort of have to apply an averaging like we can't we can't add everyone's specific request in the specific way they want all the time especially when you know people are requesting things that are in conflict with each other and one of you know we can take the approach of seeing okay most people want this or it seems like you know for the for the eighty percent of people this is going to be the right solution and add that into the main kicad code base um but you know we still appreciate that there's then 20 of people that that's not quite right for them and um we can't you know we we we don't want to take the approach of adding like 5 000 options to every single feature in key cad so that everyone's particular style is accommodated everywhere um you know there's certainly places where we uh want more flexibility in kicad and we'll look at editing it but there will always be a point at which we say you know this request is a little bit too specific it's a little bit too out of the ordinary and there's a cost to adding that to the main keycard code base i mean it you know then becomes something we have to maintain and test and um document and all of that stuff and it becomes confusing for new users too they're like well exactly yeah they're overwhelmed you know which which one do i pick things like that you know where where we can we you know the the best option is no option when when when that works out like there's a lot of caveats to that um you know catch phrase where you you certainly need configurability in a lot of spaces but i think you know if there's if there's uh you know a 99 versus one percent kind of use case we would prefer to not have that extra checkbox there and one of the things that the scripting lets you do is serve the one percent like you know you can if you're if you find that you're in the minority in your opinion of how something should work we want to enable you to make kicad work that way anyway by by implementing it as a python plugin and so we we really look forward to you know making it easier to develop and publish python plugins so that you know more people can do that yeah can you show just how is the console still there in v6 like can you show what that looks like to to just kind of roll up a quick script not not that you have to like do one but is the location of scripting the same yeah so so there's uh this icon up here it looks looks like a console and this opens uh a python shell inside of keycad and um you know you can you can directly start uh live coding here and people use this in a couple of different ways one you can use it uh to help develop a plug-in like you can you can try things out and see what they do it has an auto-complete so you can sort of see okay these are all the functions that are available in the api and things like that but you can also use it to just directly manipulate the board that's open like if you if you have some function that is just a few lines of python you can actually just run it directly here instead of going through the trouble of you know creating a plug-in and all of that extra stuff got it yeah that's super cool and i mean that's honestly that's not something how i work normally but it's like that does seem like that would be such a enhancer of of uh time and like you said anything repeatable led panels those are those are the the bane of my existence of just like making sure those are placed right and stuff too so yeah that's great yeah i've seen some great things where people want to lay out leds on on a curve or on a spiral or something like that where you know the um points on a spiral are pretty easy to describe in math but pretty tedious to do by hand so that's right that's a great example yeah yeah that's cool so what are some of the things you're excited about in v6 well apart from you know the stuff we've already talked about um i i think that um i'm i'm pretty excited about the workflow improvements to the pcb layout and and to the schematic editor like there's there's just too much to cover here but um some of the things that we've done in the schematic make it a lot easier to build complex designs like we've we've overhauled how buses work and how how they pass signals between different sheets and so if you're dealing with a large design that has a lot of different sub-circuits it's a lot easier to do now and we've we've just looked at like almost every different part of laying out the pcb um you know the workflow that you go through and and tried to make it as efficient as we can like cut out unnecessary steps make the tools work in a more consistent way and and and make the tools smarter like uh you know making making the router do uh do things that you might expect instead of things that you might not expect like some people who have used the keycad router in the past have complained that it was it was sort of hard to get the results they wanted and we've we've taken a look at those some of those problems and tried to fix them um so so generally i would say uh you know version six gets out of your way and and helps you a lot more than previous versions of kicad did and i i am really excited to you know start doing more designs with that i've i've been doing you know a few simple designs off and on but i'm i'm excited for key guide 6 to be out and to see people doing more complicated designs with it and really to spend some time watching people using it and seeing um you know how well we've done on on improving the things that we tried from version five and also you know double checking our idea of you know what should we work on next what should go into version seven yeah yeah that's that's always a tough thing it's you know there's only so many times so many hours in the day and so many uh developers on the project so yeah you gotta try and get that eighty eighty percent of uh what's going to be valuable so that's it's a tough tough role basically you have to be like a product manager as well as the person writing the code absolutely yeah i think that's a big part of you know being on the lead development team is uh it's not just writing code it's figuring out what code to write that yeah often takes more time actually yeah and i mean so so now taking off your kycat hat and putting on your w hat i mean what do you see in terms of like people using this in the workplace you kind of already talked about it as a professional tool you're seeing more people doing it what do you think is going to take for [Music] until you know like market adoption more people using it on a regular basis i mean like i use it professionally but i'm you know one person company versus like you know maybe any person grumpy like yours or a hundred person company or a thousand you know like thousand doubles that would be a lot of opinions but uh you know like a larger style companies as well yeah so i i sort of think there's two categories of of things that that keep people off of keycad who might use kicad or might want to use keycat um and one of them is sort of easier to figure out which is uh you know missing features like um even though we've we've done a lot of work for version six to to add new features that people have been asking for there's still you know a set of features especially for advanced pcbs where key cad just really doesn't compare yet to some of the commercial tools out there when when people are designing complex stack ups like are needed for rigid flex boards or sort of high-end rf work things like that it can you know be you can certainly do that in key cad like nothing is going to stop you from doing it but the the productivity tools that are offered in some of the other commercial eda suites are just not there yet for those high-end use cases and so i think that's going to keep some groups off of keycad but i think the the one that's maybe affecting more i know this is just a guess you know and it certainly applies applies to me personally um is just productivity in teams you know i think um the way the way kicad has developed um over time has been uh you know more focused on the individual user than on a team of users and there's nothing specifically that prevents a team of users from using keycad but it's you know the same with the advanced board layout techniques um the commercial tools just make it a little bit more painless in some ways when it comes to you know collaborating on designs especially collaborating on libraries and sort of central library management and things like that i think this is this is something where where kicad certainly has room to grow and i think when people look at what would be involved in migrating to keycad i i think that the the collaboration workflow and the um sort of the centralized management of of assets like footprints and and symbols and things like that is sometimes a sticking point um maybe not always because key cat can't do something but just because the way kicad would want you to do something is is so different from what people are used to in the commercial software that it just sort of uh you know makes them a little bit uh concerned about whether or not it's going to work out so that's that's that's what's on my mind in that regard i mean it's certainly something that i think about a lot and um you know if if i think about what's coming up for version seven um i can relate a lot of things that are on the to-do list back to those two uh sort of sets of things yeah yeah it's really interesting just kind of thinking about that as like uh you know it doesn't have to be all one type you know there's going to be many different ways to do a thing and you know might be this program might be another but uh just kind of being curious about that because there are some some top level companies and programs that a lot of you i see a lot of people using you know and what it's going to take to get more people to migrate to kai cad it's uh it's it's interesting and just seeing how that how that goes so um yeah it's it's an exciting exciting future all the same and i'm really glad that people like you are working on it uh where can people find out more about what you're doing both you know in your in your day job and and your professional life and then also for for the project and for kai cad and you know the community and and uh and writing code and stuff yeah well i i hang out in a variety of different places online uh so so um i i often tweet about keycad when there's uh cool cool new features that especially when i can show a little video of something i i i'm uh at john crafty john on twitter and i i hang out on the keycap discord and a couple of other electrical engineering discords um i find you know that's been a great way to you know find out more about kicad users and and uh even you know watch some live streams of people using kicad which has been incredibly useful from a product management point of view and i also hang out on the kicad user forum and and of course all over the uh the keycad git lab where where people engage with us asking for features and things like that yeah yeah that is a that's a good way to start an engagement but then you might also get a uh pull request welcome that's always the uh isn't that a fun fun response it's like yeah come on in come on in the water's fine try and change the color you can do it folks you try it out well john i hope i hope you and i can be clinking glasses soon at kycon 2021 and uh absolutely talking more about this stuff i'm really excited uh for all the things that are to come and uh all the work you're doing so thank you for doing that well thank you chris and i'm i'm looking forward to kaicon as well all right so that was our episode with john evans one of the lead developers for kicad or kicad and you should definitely go check out v6 you can go and do that in a vm you can download it you can just download it directly and run the nightly specifically it's usually a separate install so that's really helpful like john talked about i think it's really worthwhile to go and see what's coming there of course are always going to be some some things that are maybe a little bit rough around the edges still before we get the stable release out there but you can also go and help out you can file bugs you can help with documentation you can dive in and become part of this project that is an ever-growing project there's also the forum.kycad.info if you haven't seen that that's a great resource a lot of helpful people over there and john is one of the founding people on the discord channel there is john's always on the kai-ken discord channel helping people out giving feedback working people through their problems and so i will link that down below as well i'm really appreciative to john and the entire kai-ked team uh we did a talk a little bit earlier i guess it was 2020 we did a talk with all of them it's really worthwhile to check out where they are thinking about going with with the program john obviously talked about a lot of that but i think it's just a exciting time to be in this part of the electronics industry more and more open source tools that are enabling people like myself like all of you and allowing you to jump in and participate in that way so please consider jumping in participating donating anything you can do to further the cause of kai-cad you know that i'm gonna like it around here and i think it'll benefit you as well that's all for now thanks for watching thanks for sharing these episodes on social media and we'll see in the next episode [Music] you
Info
Channel: Contextual Electronics
Views: 5,233
Rating: undefined out of 5
Keywords:
Id: dfAkYMuyhFA
Channel Id: undefined
Length: 63min 56sec (3836 seconds)
Published: Tue Jul 13 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.