LibrePCB Blog

LibrePCB 0.1.1 Released

There was a lot of progress the last months, and now it’s time to provide a new release containing all the improvements. In this release, especially the library editor was heavily improved to make it more powerful and easier to use. See the highlights and the detailed changelog below.

Thanks a lot to all contributors and sponsors for pushing LibrePCB one step further!

Highlights

Design Rule Check for Library Elements (#381)

In virtually every EDA tool it’s easy to make mistakes when creating library elements like symbols or packages. Usually you notice such mistakes later in the schematic or board editors because of the ERC or DRC, so you have to go back to the library editor which costs time and nerves. Many projects try to solve this problem using documentation and design guidelines. But humans are generally lazy and don’t like to read those guidelines.

LibrePCB 0.1.1 goes a different way: It shows potential problems with library elements right in the library editor, so you can fix them immediately, i.e. before they are used in any schematic or board. And even better, for many of the warnings, the library editor provides the corresponding fix with just one click! Let’s see how it works:

Library Element Checks

More Powerful Symbol Variants (#430)

LibrePCB uses component symbol variants to support different graphical representations for the same component, for example to distinguish between American and European norms. See this talk at FOSDEM (slides here) for details.

Although this was already implemented in LibrePCB 0.1.0, it was not very powerful yet because in the “Add Component” dialog you had to select the desired symbol variant manually every time. As typically the European symbol variants were selected by default, it was especially annoying for Americans.

Now with the 0.1.1 release you can specify your preferred norm in the project settings, which will make the “Add Component” dialog pre-select the symbol variant which matches your preferred norm automatically! If you like to use American symbols, just add the norm “IEEE 315” to your project settings:

Project Settings Dialog

Transactional File System (#422)

This change is not directly visible to users, but it’s still noteworthy because it’s a very fundamental refactoring of the file system access of libraries and projects. The file system access is now transaction-based, which has several advantages:

  • More reliable save/autosave mechanism, making libraries and projects even more robust against file access issues or application crashes.
  • Cleaner software architecture, leading to less error-prone code.
  • Much more future-proof as it allows to implement features which were not possible until now.

Critical Bugfixes

Obround pads which are higher than wide (i.e. height > width) were rendered wrong in the package and board editors of LibrePCB 0.1.0. In particular, their orientation on screen was wrong by 90 degrees, while the Gerber output was correct. This release fixes the wrong orientation, so if you have any pad affected by this bug, it will now appear 90° rotated compared to the 0.1.0 release. See issue #424 for details.

Changelog

Library Manager:

  • Add “select all” checkbox to install/update all libraries at once (#415)
  • Various small layout improvements / memorize window geometry (#402)

Library Editor:

  • Add rule check for library elements (#381)
  • Add clipboard functionality (cut/copy/paste) to symbol and package editors (#442)
  • Add search field to symbol/package/component chooser dialogs (#443)
  • Support undo/redo also for library element metadata (#375)
  • Make tabs closable with middle mouse button (#388)
  • Add context menus to overview tab (#380, #425)
  • Display element name in “save” action (#419)
  • Disable menu items if not needed for the opened element
  • Change default package line width to 0.2mm (#413)
  • Sort component signal dropdown in device editor by name (#427)
  • Fix possibly outdated information in component signal editor (#398)
  • Fix layout issues of symbol-, package-, and component chooser dialogs (#439)
  • Start library rescan if library modified

Schematic Editor:

  • Add project settings dialog (#430)
  • Pre-select symbol variant in “Add Component” dialog by norm (#430)
  • Improve search in “Add Component” dialog (#444)
  • Fix unreadable text in ERC dock widget with Qt 5.12 (#437)

Board Editor:

  • Fix empty view after removing a board (#431)

CLI:

  • Add support for opening *.lppz project files (#433)
  • Allow to specify custom fabrication output settings (#434)
  • Add open-library command (#435)

Miscellaneous:

  • Make runnable on FreeBSD (#417)
  • Remove backward compatibility to pre-0.1 file format (#420)
  • Refactor file access with a transactional file system (#422)
  • Refactor/improve workspace libraries handling (#400)
  • Use separate *.sqlite files for each database version (#401)
  • Load category trees from database instead of file system (#421)
  • Filter all category trees to show only relevant entries (#426)
  • Fix possible wrong orientation of obround pads (#428)
  • Fix cell height issues of several tables on high DPI displays (#429)
  • Add support for exporting projects to *.lppz archives (#433)
  • Update default layer colors (#440)
  • Update Fontobene stroke fonts (#438)

New languages:

Download

The release can be downloaded for all major operating systems on our download page:

https://librepcb.org/download/

Merchandise Products Available

You like LibrePCB and need some new clothes or a coffee mug? Then you might be interested in the merchandise shop which got online today!

Merchandise Shop

The Initial Idea

Actually I just wanted to order some LibrePCB T-shirts for myself and thus was looking for a shop which allows to print custom designs on T-shirts. Then I found spreadshop which even allows to create whole shops with custom designs, so other people can order the same products too!

I liked that idea as it allows everyone to easily order some LibrePCB T-shirts, hoodies or other products too. And even better, LibrePCB receives a commission on every order made in that shop, so we get an additional way to contribute to the LibrePCB project.

For details about the concept, take a look at spreadshop, the provider of this service.

15% off for 14 days

Finally I decided that’s worth a try and thus opened the shop today. You will get 15% off the first 14 days, so let’s order quickly :-)

Thanks for everyone contributing to LibrePCB, either via the new merchandise shop or any other method!

AISLER Supports LibrePCB Projects

We are very happy to announce that AISLER now supports LibrePCB projects, so you can upload and review LibrePCB projects directly on their website and order PCBs and stencils just with a few clicks! :-)

LibrePCB Project at AISLER

Why AISLER?

AISLER, based in Netherlands, is a smart prototyping service for electronics. They provide PCBs, stencils and parts for electronic projects for an affordable price, and everything is made in Germany.

I met Felix and Patrick, the founders of AISLER, at FOSDEM 2018. Patrick held the talk Proposal for an open and democratic Design Rule format and I gave an Introduction to LibrePCB. It turned out that we all have very similar opinions how development and manufacturing of electronics could (and should) be improved. We all are trying to bring EDA to a next level, for that reason they founded AISLER and I started the LibrePCB project.

At FOSDEM Felix and Patrick offered me to integrate support for LibrePCB project files into their website, to allow ordering PCBs by uploading LibrePCB projects. And even more: For every order of an uploaded LibrePCB project they make a donation to support the LibrePCB development!

Implementation

To make this happen, I created the LibrePCB CLI which allows to automate the processing of LibrePCB projects. AISLER now uses that CLI to automatically generate Gerber files of an uploaded LibrePCB project. These Gerber files are then used to create the preview of the PCB, and to manufacture it in their fab.

Analyzing LibrePCB Project

In order to adjust the fabrication output settings (e.g. filenames) according their needs, they patch the board file boards/<BOARDNAME>/board.lp with their own settings. So you don’t have to make any fabrication output settings by yourself, they will be overwritten anyway.

Limitations

As you may know already, LibrePCB allows to have multiple boards in one project. Currently it’s not possible to select the specific board you want to order, so you will get an error when uploading a project with multiple boards. We will try to fix this limitation, but in the meantime you could manually adjust the project’s file boards/boards.lp to remove all boards except the one you want to order ;)

In addition, currently you have to manually create a ZIP archive containing the project directory, and upload that ZIP afterwards. I started to work on a solution to make this much easier.

Also it’s not yet possible for AISLER to export the BOM directly from the uploaded project because BOM export is still missing in LibrePCB. But you can still order parts at AISLER by uploading a CSV file with all parts.

Try it!

Just ZIP and upload your LibrePCB project to aisler.net to see the beautiful preview and to order the PCB :) It would be awesome if you order PCBs at AISLER as this way you directly support the development of LibrePCB!

Many thanks to Felix and Patrick from AISLER to make this happen, and for supporting LibrePCB and other open source projects!

LibrePCB 0.1.0 Released

The stable release 0.1.0 is out!

Since the release candidate 0.1.0 RC2 three weeks ago, no critical bugs were reported, so we decided to finally publish the stable release 0.1.0. The changelog compared to 0.1.0 RC2 is very short:

Changelog

Library Editor:

  • Fix saving of library URL
  • Fix saving of component property “schematic-only”

File Format Stability

As this is an official stable release, the file format is also considered as stable and you can expect that any project created with that release will be loadable with future releases of LibrePCB. So now you can really start using LibrePCB productively :)

Attention: This is not the case for the development version (e.g. the master branch of our Git repository), so you should really use this official release for productive work instead of the development version!

Download

The release can be downloaded for all major operating systems at our download page:

https://librepcb.org/download/

LibrePCB 0.1.0 RC2 Released

After two weeks of testing, we have a new release candidate ready with some bugfixes and usability improvements:

Changelog

Control Panel:

  • Hide non-existent recent and favorite projects
  • Hide debug tools in workspace settings dialog

Library Manager:

  • Don’t show 100% progress while extracting ZIP

Library Editor:

  • Fix saving of component symbol position/rotation (#356)

Schematic Editor:

  • Fix resizing of “Add Component” dialog caused by long device names

Board Editor:

  • Fix crash when trying to connect trace to pad without net
  • Fix too high default width of the dock widget at the right
  • Fix possibly hidden layers in footprint preview of the “Place Devices” dock
  • Show warning in the “Place Devices” dock if no matching device found in library
  • Set default board size to 100x80mm
  • Set default grid interval to 0.635mm

Miscellaneous:

  • Allow deselecting items while keeping other items selected (#361)
  • Add attribute units “current” and “power”

New languages:

  • Esperanto (8% translated)
  • Italian (20% translated)

Download

The release candidate can be downloaded for all major operating systems at our download page:

https://librepcb.org/download/