 So, hello everybody. Welcome to my talk about Libre PCB. Maybe first a quick question, who knows already Libre PCB? Okay, maybe a third. So, I was here two years ago with my talk Introduction to Libre PCB, and now I want to give a short update what's happening with Libre PCB. So, for those who don't already know, Libre PCB is a free open-source EDI suite. It runs on Linux, Windows and Mac, and yet development started already in 2013 and there is slow but continuous progress. And what happened since my last talk in 2018? In November 2018, there was our first official stable release, 0.1.0, and after that, every few months a new release was published. And I don't like to mention every feature implemented in this time, but just want to focus on some specific features. And one of these features is the Libre Editor rule check. Probably every hardware designer knows the problem. You create a package or a symbol in your Libre Editor, then you add it to your design, to your PCB or whatever, and then you realize, oh no, designator label forgotten in the Libre Editor, or oh no, silk screen is overlapping with the pad. Or something like that. And then I ask myself, why do we have a design rule check in the board editor, but no rule check in the Libre Editor, because a lot of issues you can already catch in the Libre Editor actually. So in Libre PCB, we implemented a pretty simple actually check with a few rules defined. And if you violate some of these rules, you get, for example, the big scary yellow warning, there is something really wrong with your item you have created. And in the right bottom corner, you have a list of messages, what's wrong with this element. So you can already fix it in the Libre Editor and you're happy when you add it to your board. Another thing is the Libre PCB CLI, actually for most users not that important, but I ask myself in software development, today we use continuous integrations, static code analysis, pull requests for code reviews and so on. But for PCB tools, for libraries or projects, probably almost nobody uses such tools. For example, on GitHub, continuous integration. So, but what's needed to make this possible, we need a CLI so you can run checks automatically on continuous integration. And for example, we have a CLI which is able to check libraries if they are valid and more checks will be added in future. And for the base libraries of Libre PCB, those are hosted on GitHub. We use GitHub Actions to run these checks. So if a pull request adds an issue to the library, the CI will fail. The same we have for projects and so you can use the CLI or continuous integration to run the CLI to check your project if there are, for example, electrical rule check issues and if you want, you can also automate the generation of Garber files, BOMB export and so on. And actually, probably the most important user of this tool is Asler because now you can upload your Libre PCB project directly to asler.net if you want to order your PCB and Asler runs our CLI to generate the Garber files so you don't have to generate them locally on your computer. And the best thing is, of course, for every order of a Libre PCB project, Asler makes a donation to Libre PCB so you can support Libre PCB by ordering your PCBs at Asler. How to get started with Libre PCB? We have a lot of binaries or packages available for Windows, for various Linux distributions, for Arch Linux, for NixOS, even for Open Pandora, if someone knows this thing, it's an ARM processor inside and Libre PCB runs pretty nice there and of course for Mac OS and BSD. So now I want to give a short demo to see Libre PCB in action. And so let's start Libre PCB. If you, when you start Libre PCB the very first time and you get the short wizard, which just asks for a path where to store your libraries and so on, just click through and you're ready. Then the control panel says you don't have any library installed so it's not very useful yet, the tool, so you can just open the Libre Manager which fetches the library list from our API server. And so this tool is also able to update your already installed library. So you can just say, oh, I want the base library, let's install that one. It downloads the library from the internet and installs the library. You see already that the warning disappeared because now you have libraries and yeah, we can check what's inside this library. The libraries can in the background because there are many files so it takes a few seconds to create the index. And now we have the library elements download, we just downloaded symbols, packages, whatever. Okay, so now what's a typical use case? You also need your own local library, so let's create one, for example, because some transistor is missing in the other libraries. Then you just need a device, for example, so let's add a device and whatever. And it asks for choosing a component which we want to implement, so let's say it's MOSFET and general and which package you want to use, maybe TO220. These library elements, the package and the component is contained in the base library, we just downloaded. Okay, so now you have the device and you only need to create the pin map, basically. Open the datasheet, assign package pad one to drain two to gate and source maybe and the pad is unconnected maybe. Okay, so now we have a warning because we didn't assign this device to a category and the cool thing is this warning has a lot of warnings, have a fixed button so you can or even a help button which gives some context what's wrong and many warnings have a fixed button and in this case it opens the category chooser and so you can assign a category, what else? And or title is not the title case because the F is lower case so it can just fix the upper case, finished, no warnings. Okay, so now we have our library elements ready so let's create a new project. Okay, and we start with the schematic with, for example, the schematic frame and of course we want to add our MOSFET. I added it to the, I don't know where I added it but we can find it. Ah, here it is under discrete transistors MOSFET and shell. Here it is. Okay, so let's add this one. Maybe a resistor, what else? Let's just connect them. Something very useful. That's our schematic. So let's switch to the board editor and the board editor says we have two on-placed devices so let's place them and you can choose your exact device here so maybe SMD whatever and our MOSFET we just created in the library and the cool thing is we didn't create the package because someone else already created it for our MOSFET and this package contains multiple footprint so we can just switch to a different mounting variant for example. Yeah, so let's create some traces maybe. Something very simple. Okay, now we want to create Garber files. Communication data. There you can make some settings but defaults are fine so let's just generate it, open the directory and we have Garber files here. Let's open it with the Garview and here we are. So simple PCB made in a few minutes and that's actually the main goal of Libre PCB. It should be easy to create PCBs. You don't have to spend hours and hours and hours just to know the tool. It's that easy, yeah. What's the current status of the project? Basically everything is working nice so far so you can create your PCBs. There are already a lot of PCBs created with Libre PCB and order it. The main issue currently is the board editor which needs a lot of usability improvements and a lot of features are still missing and so the priority for the next steps highest priorities add the missing features like custom pad shape, blind, buried, wires, slotted holes, pads and so on and improve the board editor to be much more powerful. Also clipboard, cut copy paste is not available yet in the schematic and board editors and of course extending the part libraries requires quite some effort. And priority two is adding part management for MPNs, assembly variants, 3D models is not implemented yet. MCAT, export, hierarchical sheets and so on. You see many things are still missing but at least for simpler PCBs it's pretty usable. And yeah, if you want to contribute, I will be happy. There are several ways to contribute to Libre PCB. Just check out the website or the GitHub repository. Yeah, that's it. Thank you. Please, why did you decide to make a new project that are contributing to PCA? Very good question. I have a slide for that. Keep the questions up for them. Yeah, the question was why not contributing to KitKat and instead creating a new software? And basically the main reasons are, I think a lot of the underlying concepts are pretty different so I think I have different opinions how an EDA tool should work and should be designed. And usually, as a contributor, you can't completely change the mindset or the opinions of a different project. The other thing is changing, if you make it happen to change fundamental things, it's very hard to keep the backwards compatibility to older KitKat or whatever projects and so on. Users wouldn't be happy if they can't migrate to the new software version. And it's much easier to create a new tool than you don't have legacy things. You don't have to provide migration paths to crappy file format or whatever. And the other thing is the target audience and the priorities is quite different, I think. KitKat is very feature-rich. It's professional grade. It's very flexible. You can basically do everything with that tool. And that's not the primary goal of LibrePCB. LibrePCB focuses on usability and intuitive user interface so you can get started with LibrePCB very quickly and also portability, stability. And the files, I would like to put files, projects and so on under version control. And this is also a goal of LibrePCB to make it possible much better than with other tools. The question is, when working behind corporate firewalls, is it possible to get the libraries through the browser? Because applications are blocked. I mean, basically the LibreManager of LibrePCB just downloads a zip file in the background and extracts it to a directory. You can get the zip file directly on GitHub. You can clone it with Git. It's no problem. You just can't use the LibreManager in that case. The question was, can we import KitKat files? No, at the moment there is no KitKat import at all. There is a very simple Eagle library import but it's a standalone application not integrated into LibrePCB yet. Or is it mainly to you? The question was, how many active contributors we have? I think if you watch on GitHub, I think it's 20 or 30 contributors or something like that. But the main part of LibrePCB is actually implemented by myself. So the contributions are rather small usually. I'm not sure how to... Let me summarize the question. How do you focus on version control? Can you repeat that for the microphone? How we focus on version control of LibrePCB projects and libraries? So basically the most important thing I think is that files should not contain any crap for example which changes everything. You open the project, close it and files are changed. That's horrible for version control. And thus in LibrePCB we strictly separate information which needs to be checked in because it is important for the project or for the libraries and information which is not that important. For example, which layer is visible or hidden or what zoom level you have and so on. That's not part of the repository in the end. That's stored only locally. So you don't have changes you don't want in the Git log. Okay, thank you.