 My name is Wayne Stamball. I'm currently the KeyCAD project leader. We'll talk today a little bit about the current status of KeyCAD, where we're at right now, where we'd like to go in the next stable version. I'm going to change my format a little bit this year. The last two years I've kind of done, I just, I talked at you. It's going to be a little bit more of a show and tell. I kind of cherry-picked some of the bigger highlights of the upcoming stable release and try to kind of left a little bit of the more detailed stuff out so I can get through it a little bit quicker because in the past there's been so many questions. So, without further ado, and of course it's going to make a lot of going on here. Ah! Some of my computers. Okay, current project status. Hopefully, stable release five will happen soon. I'd like, I'm hoping in the next month or two we're going to be ready to branch and then start, you know, final bug fixing. So, the goal is sometime around summer. See how that works in practice. Anybody who's ever, you know, done an open source project knows that that doesn't always work that way. The development, the version six development roadmap is complete. If you want to go see that it's online on the KeyCAD website. We have seen an increased interest in user interest from the downloads from our website, increased commercial interest and I was told earlier when talking to Javier that there was a sudden spike in donations and people who know the whole situation with EGLE know probably when that happened and why it happened. So, that's a good thing. Thank you, EGLE. Now, yeah, I'm not going to complain. This year, first for the first time we had two hackathons. Some of us were at CERN over the summer and July for a week and then there was another hackathon in the fall at Brazil in Brazil and I don't normally like to give too many commercial people credit, but if I don't know if you're here, somebody had hijacked a long time ago, KeyCAD.org. We didn't get the domain. Somebody else took it from us and we said, we weren't going to pay the money because we didn't have the money to pay to get the domain back. But DigiKey graciously bought the domain, paid the five grand to purchase from whoever had it and wanted that money for it and they redirected KeyCAD.org to the website. So now, when you type in KeyCAD.org, yeah, thank you. Thank you, DigiKey. They're under no obligation to do that for us, but I talked to their people and they were, yeah, no problem. It was very cordial, so keep that in mind when you're ordering parts from somebody. Oh, it's going to be slow today, isn't it? Yes, it is. Okay, come on. Where's the first page? Of course it goes to... Okay, stable five release, new features, the big stuff. Okay, I know technically the first one is not KeyCAD, but for all the people who developed on KeyCAD, that was probably more important than everything else we've done. We're now on a good project. I'm not going to go over the next one because Tomas did a really nice presentation earlier on the NG Spice integration into KeyCAD. If you want to go take a look at that, you can go look at the video. It's really nice. If you haven't had a chance to use it, if you're a Spice user, I highly recommend you try it. Okay, so let's get into some of the stuff that happened here. We have a few simple things here. One of these is the schematic editor tool. One of the things that it's easy to get your fields lined up, very simple tool is the new alignment tool. You just hover over and hit O, or you want to do the context menu, you can do that too. Just a new tool that happened to be thrown together by one of our guys is a cheap and dirty who was tired of trying to change the grid size and place everything. That's a nice new feature that we have. The next one is the, you also just saw that. You see that there's a net highlight here in pink. If I go over here and click on the net highlighting tool and I click on a different net or a different wire, and it also works for hierarchy. If you're one of those guys who has a big sheet and you just use labels instead of actual wires, it'll highlight the labels too. If there's one over here on this side of the page and one on that side of the page, it'll turn pink. Now it's not hooked up to the board editor, that's coming up in the next version. That's a new feature in the schematic editor. One of the other new things in the schematic editor that was, I'm not going to go over that. There's a regular expression in search, when you're searching through the library, you pick a symbol to put in your schematic editor. Rather clever, it's a combination of type as you go, old wildcard searching, matching, and regular expression. It looks at the whole thing and picks the best combination of queries that it gets, and then that's what you see in the symbol list. Probably only us geeks will ever care about regular expression searching, but it's there if you want to use it. Another requested feature is you can now directly update the board from the schematic editor. In other words, there's no intermediate net list file. You can still generate it. It's just, it's now transparent. It's actually sent through an internal communications bus from the board to the schematic, and it looks a little something like this. You go in here and you go into the tools menu and update PCB from schematics, and you'll see the schematic. Since I didn't make any changes, there were no changes, and then you can perform the update. You can say, yeah, I accept them, or no, I don't, and then it'll make any changes to your board. Now it's transparent. When I hit perform PCB, any changes that are in that list are going to be made to my board. There's no intermediate. You don't have to save the net list till file. Go into the board editor, open the new, you know, re-import the net list, and then go through this iteration. Can you pop champagne for that one? Yeah, sure. Sure. Yeah, it has a converse too, which is rather nice. You can also go the other way. When you have the board editor open, and I'll talk about that in a little bit, it kind of works in both directions there. So that's that one. Probably the single biggest user change you'll see this year is the 3D editor was completely rewritten, and it brought a lot of things along with it that are really nice. I know ray tracing is eye candy. Most people, unless you're, you know, creating brochures or something like that, you probably don't care. But I don't know if anybody, any of you have seen what some of the results of our ray tracing are, and I don't know how good this is going to look here, but if you look at some of the, if you have really high, well, now, in all fairness, you have to have really high quality models for that to happen. You just can't take run-of-the-mill models. You've got to do all the texturing, but if you're dedicated enough and you're ambitious enough, you can get these kind of results. So, yeah. So, and I know it's just kind of eye candy, and I'm not going to do it live here because this computer's too slow. If you know anything about ray tracing, it can take a while. So, that's a nifty little feature we got. The other nice thing about the 3D viewer is we used, it brought in step. The developer who did it did a nice plug-in system, so now we can import, you know, not just our VRML models, we can also import step. So, which also gave us direct export to step. Once we had, basically, we can import step models and flip them around. You can now, from the board editor, edit to step. And I'll show you, here's a simple board that I did. Some of these are, oh, man, it looks terrible on this. No, it's probably because of resolution. Only one of these components on this board is a step model, the rest number of VRMLs. So, when you do the export, you will see something like, where's FreeCAD here? No, that ain't it. Where is it? There. So, that's a step model that's to scale. So, if you wanted to, like you were putting that in an enclosure, you can pull that into your, whatever, solid modeling package you use for, you know, hardware development and use that model. And that's a step model. So, we now have, because that is a really highly requested feature for a long time. So, that was the 3D viewer bought us all that. So, we also now support rounded rectangle, you know, our pat, in the past, we've only just had pure rectangles. We now support rectangular or rounded rectangulars. One of the old things that were left over from the good old days when you would, the first time you opened, imported your net list for a board, all the footprints would be laying on top of each other and you had to spread them out manually, and people who know, are currently using the version 4 know that. There's now, when you import them, it'll, it'll just, it'll expand them. It won't try to put them in any particular order, but they won't be laying on top of each other anymore. So, they'll, it's easier to move them around. The other thing is now that we can, if you, we can go the other direction. So, if you go from, if you're doing the schematic editor and you made some changes to your, or in the board editor and you made some changes to your schematic, you can come here and say, yeah, pull it. And I'll see the exact same dialogue. It just came the other way. This time it went and queried the information in the schematic editor and said, okay, what do I need to make change in the board? What edits have I made? And that's the, so it's bi-directional, which is rather, which is convenient for users. No, no, it doesn't go backwards yet. No, that's going to be the net. Yeah, we'll talk about that. And that's version six baby steps, baby steps. The gal canvas is now, this was a requested feature. If you go into the view menu, this is top side looking at the board from the top side to the back side, which is normally, you know, the normal view, not, we now have a flip view so you can look at it from the backside. Because sometimes when you're bored, okay, well, sometimes when you're bored, you know, it's hard laying on a board. It's hard to look through the board and see because the back side's mirrored. So you, yes, well, now you can flip it. Now that's looking from the backside of the backside to the front side. Flip this way. Like if I just took this board and went, that's before you couldn't do that. You always had to work from the top through. So that's new. You know, I was showing you which side you're looking at. No, no. There's a check box that tells you you're in flip view, but no. This computer doesn't show that very well, but that we put, there's anti-aliasing support for the OpenGL canvas. So like when you see the net names on the traces, they're just smoother looking now. The text is rendered with, if your graphics card supports it, we now have anti-aliasing support. Gerber X2 extensions. Gerber is desperately trying to stay relevant. I don't know how familiar you are with them, but you can embed things like to stack up your layer stacks and writing your Gerber files now. We are, as far as I know, I don't know if anybody else has even done it because Jean-Pierre Chirard, the founder, the original founder of the project, he has a close working relationship with the CAMCO, and I think we're the first project to offer X2 support directly. And now the person shoved router now in the past, like when you were shoving stuff around. Sometimes you didn't get the clearance around your traces. So for some reason you couldn't route something through because you were violating your clearances. You actually see the clearance now on the push and shove router. The legacy always had that. You could see where the clearance was. So that's the new features. Okay, it's going to be slow. Come on. What's it doing? Okay, some improvements. I'm going to not go over too many of these. We've got some new bitmaps in the launcher. The schematic editor configuration is now a unified, tab-oriented dialogue. It's cleaned up. We used to have like three or four different color settings. They're on a single dialogue now. It's much cleaner. The simple editor library, that's not here. Our library editing we know is weak. Our library management tools are a little weak, so we're in a process of working on that. We changed the Python shell from PyCrust, which is just a real basic Python shell to the PyElla mode, which is a little bit nicer editor. So when you fire up the Python shell from PCB-New, you can get a little bit nicer Python shell to work with. We have object selection filtering to GalCanvas. That's not been committed yet, but that's coming. You can filter by objects. So when you're selecting a big group, you can just filter by, say, a footprint or a text or whatever, and you're only going to get the text. So just a couple of code improvements. The 3D model has a plug-in manager which brought in open OCE. That's one of the reasons we got step. The schematic plug-in is IO managers just about done and getting ready to be committed. That'll give us the ability to start importing direct import of other formats without providing a script to convert from somebody else's format, which is what a lot of users do right now, like from EGLE to EE schema. It'll just be you open up an EGLE file. The new file formats, that's still questionable yet. There's a lot of work to be done there. We're getting close to having all the editing tools from the old legacy canvas done into the open... the GAL canvases which are OpenGL and the fallback to Cairo when the rendering, when that's not done. I took all the... we don't download libraries and build them anymore. We expect... we now have pretty much full coverage for all platforms on our auto builders, so we really don't... we don't really need to do this anymore because I'm not asking users to build from source anymore since we have such good... our nightly builds, commit goes in, it's usually built within a couple hours unless there's a problem. So we don't do that anymore. We're now C++11 project. We turned the corner and just said, okay, we're going to do... we're going to quit... we're going to turn on 11 and the usual bug fixing and polishing. Probably one of the things that you don't get a lot of... people don't get a lot of credit for, but if you've been paying attention recently to the number of commits to the... our libraries, the quality of our libraries, both footprint and symbol libraries has significantly improved and there's a lot more coverage. Those guys have been doing a bang-up job. They probably don't get as much credit as they should. Documentation's coming along well too and as of right now, version 4 has been translated, fully translated in all those languages. I expect version 5 will be too because there hasn't been a huge number of changes in terms of the code internationalization. The strings haven't changed that much, so it won't be a huge problem. Okay, version 6, I'm going to scream through this as fast as I can. Version 6, the schematic editor is going to get a lot of work. We're going to get... we're going to port that over to the graphic extraction layer. That'll be OpenGL and Cairo. The new tool framework, which will give us the selection of objects similar to what we have now in PCBNU. We're going to have a shared object, a common low-level library for the schematic objects. There's also going to be highlighting. When you're working in PCBNU, you click on a net and the trace in the board editor gets highlighted. It's part of the original... The first part of that change has been done where we can just click on nets and highlight. That'll be bi-directional. If I'm in the board editor and I click on a trace or all connected traces, it's going to go back the other way and highlight that in the schematic editor. We're going to change over to system fonts. Instead, right now, I'll use our hard-coded font. The reason we have that is because if you render boards, it has to be accurate. On the schematic, it doesn't matter. People can use creative fonts and use whatever they want. That was kind of an implementation thing. This is common. We're working on this now already, but it's not going to be... I don't want to hold up the next stable version for that. I'd love to have it in my pocket right now with all fairness and all honesty, but we're working on that. That means you've got a schematic. We already have a direct import of... If you don't know, we already directly import Eagle board files and footprint libraries. We still don't have the schematic and the symbol library import. That's our killings. We're missing that part, right? You want to be able to put both pieces back together. That's common in the next version. It's just giving me fits. Once we... We're also going to swig out EE schema. That'll give us Python and any other scripting languages, Swig supports and anybody wants to attempt to build. Right now, we're just swigged out to Python, just like the board editor. Lots of things, ERC, library management usability. We're going to go... In the board editor, we're going to have support for complex pad shapes, pin and gate swapping that comes with a new file format because the current file format won't support that. That'll be bi-directional. You change something in the board and you swap pins to make your layout better. It's going to be reflected back in the schematic. Full clipboard support. We're trying... That comes with a new file format too because I don't want to have two parsers to cut and paste stuff. We're doing that. We're redoing the geometry library so we're going to have improved coverage for our design rule checks on the board. That's going to be big. That'll be... Don't worry, just give me a... Keep out zones on boards and then we're going to do the same application with the file card of the search on the footprint library search. So hatched zones right now. Our zone fills are solid. Externally linked objects and that comes with the group. So you can group a part of the board layout and duplicate it multiple times with external reference. You make the change to one and all the... I think it's called snippets in some of the other EDA packages. Board stack up in Pien's calculator. Maybe that one would be a stretch. We also like to improve the rat's nesting so that we can change colors of each line or turn them on. If you have a complex board and you have to have a look at all the entire rat's nest then you're like, ah! You can't see the forest through the trees so we're going to make some improvements there. This one, if WX widgets ever gets its act together... we might... that one may not happen again. And we'd also like to port the Gerber viewer to the... that would benefit from being OpenGL because that's pretty graphics intensive. Okay, way out. Micro-A support tool for the board editor because we'll need the geometry library we'll be needed to support that. Import ODB++, possibly export. A lot of people like to use that in the commercial world. Database management. There's been a lot of interest in that lately from commercial vendors that they want to be able to, you know, plug into their CIS system. They make a part change. They want the schematic editor to say, hey, your CIS system made a part change or is part going obsolete? Some of the CAD programs already do that. You get a warning. That's real long-term stuff because that's really a lot of work. Move to... I want to go to plugins for everything. Particularly if we can use competing technology for things like auto placers, auto routers, routing tools. We can have specialized routing tools where maybe I have a microwave routing tool specifically for routing microwaves and you don't use the normal because it wouldn't make sense to use that in a microwave application. Unit testing. We have some work to do there and integrate automatic purchasing. I've actually been... one of the things the guy at DejiKey for obvious reasons. I'm not naive. I told him as long as the code meets our standards and it will have to be abstract because I told him I was like, no, it's not going to be appropriate. It's going to be abstract. If other vendors want to build on top of that, that's my... as the project leader, I have to make those decisions and that's my decision until I'm not project leader anymore. We actually had quite a few people that liked that idea. It generates a bill of materials, goes out in order, say I want 20 sets of parts for this board and boom. Those to DejiKey or Farnell or whoever your vendor du jour is and places an order. You give them your credit card number and you have parts of the mail. Okay, I want to thank just a quick shout out. Thanks all the developers who give their time and talent. It takes a lot of work. It's a really big project. People underestimate exactly how big it is. Thank you everybody who's interested in KeyCAD and for using KeyCAD. I hope we can continue to support whatever you're doing. I know that pace of development is never as fast as anybody wants. It's not as fast as I would like. But we have manpower. We're like any other open source project. There's more to do than there is people to do it. I want to give a special shout out to Javier and CERN for their support because they make this possible. This dev room, they've contributed a lot to KeyCAD and we owe them a big great deal of thanks. Thank you everybody again for coming. Questions? How do I check that both Schematic and Board are consistent? Can I check it on the command line at the end of the day that I didn't forget? The question is how can I make sure that the Schematic and Board are up to date? Can I do it on the command line? No. It's going to be in the graphical user interface and honestly we don't have a direct way to do that right now. I suppose we could write some kind of connectivity where we say, hey, your Schematics changed, it will impact your Board and at least warn you because we do have the tool now where you can do the direct you're going to be able to directly update the Schematic or you're in the Board oh yeah, I update my Schematic go update from Schematic. It's something to think about. If it's something we have to look at, but I'm sure it's doable a lot of these things are doable it's just, you know when do we do the Schematic because we haven't scripted we haven't swigged it out yet