We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

LibrePCB Status Update

00:00

Formal Metadata

Title
LibrePCB Status Update
Subtitle
The progress of LibrePCB within the last two years
Title of Series
Number of Parts
490
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
An overview about what's new in LibrePCB since the last presentation at FOSDEM 2018, and a short live demonstration to see LibrePCB in action.
Exploratory data analysisSuite (music)Computing platformMultiplicationWebsiteWage labourArithmetic progressionPoint (geometry)WindowOpen setCellular automatonSuite (music)Open sourceSoftware developerFreewareComputer animation
Library (computing)State of matterComputer animation
Text editorRule of inferenceLibrary (computing)Element (mathematics)SpeichermodellElectronic mailing listLibrary (computing)Rule of inferenceRight angleWhiteboardText editorSymbol tableGreatest elementGraphics tabletWage labourElement (mathematics)Table (information)Message passingImplementation
Common Language InfrastructureLibrary (computing)Element (mathematics)Projective planeCodeContinuous integrationSoftware developerCommon Language InfrastructureFluid staticsLibrary (computing)Analytic continuationComputer animation
Common Language InfrastructureWage labourINTEGRALProjective planeRule of inferenceGroup actionLibrary (computing)Lie groupComputer animation
Common Language InfrastructureFunction (mathematics)Probability density functionComputer fileContinuous integrationCommon Language InfrastructureProjective planeRule of inferenceElectric generatorComputer animation
Projective planeOrder (biology)Common Language InfrastructureWage labourNeuroinformatikComputer animation
Binary fileAvatar (2009 film)Open setWindows InstallerFingerprintFiber bundleFreewareOpen setDemo (music)ArmGroup actionCoprocessorBinary codeWindowDistribution (mathematics)Form (programming)Labour Party (Malta)Computer animation
Demo (music)Wage labourMultiplication signLibrary (computing)Computer animation
Execution unitLibrary (computing)Maxima and minimaLibrary (computing)Server (computing)InternetworkingData managementElectronic mailing listInfinityInstallation artError messageComputer animation
Convex hull2 (number)Computer fileLibrary (computing)Port scannerSymbol tableElement (mathematics)Computer animation
Library (computing)Connectivity (graph theory)CASE <Informatik>Computer animation
Menu (computing)Category of beingDisk read-and-write headStaff (military)Sign (mathematics)1 (number)Projective planePersonal identification numberGreatest elementCASE <Informatik>Source codeLibrary (computing)Level (video gaming)Frame problemContext awarenessElement (mathematics)Open setLogic gateOnline helpGraphics tabletComputer animation
WhiteboardText editorComputer fileView (database)Tracing (software)Library (computing)Default (computer science)Directory serviceCovering spaceSet (mathematics)Different (Kate Ryan album)Computer animation
Demo (music)Data managementLibrary (computing)Text editorWhiteboardFile viewerUsabilityShape (magazine)Router (computing)Function (mathematics)MereologyEndliche ModelltheorieOpen setFreewareMereologyEndliche ModelltheorieData managementGraphics tabletLibrary (computing)HierarchyWhiteboardText editorRepository (publishing)UsabilityWebsiteShape (magazine)Projective planeOrder (biology)Computer-assisted translationComputer animation
Goodness of fitProjective planeComputer animation
Different (Kate Ryan album)Stability theoryRevision controlUsabilityMechanism designCartesian coordinate systemRevision controlLibrary (computing)Directory serviceLevel (video gaming)Repository (publishing)MathematicsProjective planeComputer fileMereologyData managementUser interfaceSoftwareInformationFirewall (computing)Stability theoryFile formatInternet service providerCASE <Informatik>Zoom lensMoment (mathematics)Human migrationLink (knot theory)Software testingGame controllerNatural numberFocus (optics)Forcing (mathematics)Computer-assisted translationPortable communications deviceSuite (music)Equaliser (mathematics)Position operatorFlow separationUsabilityComputer animation
FacebookPoint cloudOpen source
Transcript: English(auto-generated)
Hello everybody, welcome to my talk about LibrePCB. Maybe first a quick question, who knows already LibrePCB? Okay, maybe a third. So I was here two years ago with my talk, Introduction to LibrePCB.
And now I want to give a short update what's happening with LibrePCB. So for those who don't already know, LibrePCB is a free open source EDA suite.
It runs on Linux, Windows and Mac. And yeah, the 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 library editor rule check. Probably every hardware designer knows the problem. You create a package or a symbol in your library editor.
Then you add it to your design, to your PCB or whatever. And then you realize, oh no, designator label forgotten in the library editor. Or oh no, silkscreen 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 library editor?
Because a lot of issues you can already catch in the library editor actually. So in LibrePCB 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 library editor and you're happy when you add it to your board. Another thing is the LibrePCB CLI. Actually for most users not that important. But I ask myself, in software development today we use continuous integration, 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.
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 LibrePCB 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. 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 Gerber files, BOM export and so on. And actually probably the most important user of this tool is Asler. Because now you can upload your LibrePCB project directly to Asler.net if you want to order your PCB.
And Asler runs our CLI to generate the Gerber 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 LibrePCB project Asler makes a donation to LibrePCB.
So you can support LibrePCB by ordering your PCBs at Asler. How to get started with LibrePCB? We have a lot of binaries or packages available.
For example 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 LibrePCB runs pretty nice there. And of course for macOS and BSD.
So now I want to give a short demo to see LibrePCB in action. So let's start LibrePCB. When you start LibrePCB the very first time you get a 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 library manager which fetches the library list from our API server.
So this tool is also able to update your already installed library. So you can just say I want the base library, let's install that one. It downloads the library from the internet and installs the library.
You see already the warning disappeared because now you have libraries. And we can check what's inside this library. The library is scanned 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 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, whatever. It asks for choosing a component which we want to implement.
So let's say it's a MOSFET and channel. And which package we 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 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, a lot of warnings have a fix button or even a help button which gives some context what's wrong.
And many warnings have a fix button and in this case it opens the category chooser. So you can assign a category, what else. Or title is not title case because the F is lowercase 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 end channel, 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 unplaced 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 Gerber files. Yeah, fabrication data. There you can make some settings but defaults are fine.
So let's just generate it, open the directory and we have Gerber files here. Let's open it with the Gerber view. And here we are. So simple PCB made in a few minutes. And that's actually the main goal of LibrePCB.
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. 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 LibrePCB and ordered 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 parrot, vias, 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 2 is adding part management for MPNs, assembly variants, 3D models is not implemented yet, MCAD export, hierarchical sheets and so on. You see many things are still missing but at least for simpler PCBs it's pretty usable.
And if you want to contribute I would be happy. There are several ways to contribute to LibrePCB. Just check out the website or the GitHub repository.
That's it. Please. Why did you decide to make a new project that are contributing to KitKat?
Very good question. I have a slide for that. Repeat the question. Yeah, the question was why not contributing to KitKat and instead creating a new software. And basically the main reasons are I think the underlying, 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.
And 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 formats 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? Yes, applications are blocked. I mean basically the library manager 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 library manager 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.
So 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. So I'm not sure how to...
So 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. 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.
Ok, thank you.