LibrePCB 0.1.6 Released

Blog Subscribe

@ubruhin
November 2, 2021

After a whole year of development, we are very happy to finally announce LibrePCB 0.1.6, which contains a lot of useful improvements!

Highlights

LibrePCB Fab (#927)

One major goal of the LibrePCB project is to make creating PCBs easier and faster by removing unnecessary complexity of the PCB design workflow. However, orderding PCBs with Gerber/Excellon files is still a hurdle, especially for users not familiar yet with the traditional PCB production data workflow.

To remove this hurdle, we integrated a new service, called LibrePCB Fab, into the schematic- and board editors. It allows to order PCBs in a very simple, fast way – without worrying about Gerber or Excellon files at all!

Order PCB

Although this service is intended mainly for beginners, it is actually even useful for experienced users since it saves quite some time when ordering PCBs, at least if you don’t need the higher flexibility of the traditional Gerber/Excellon export.

DXF Import (#917)

This release finally adds an import for DXF files, the industry standard for 2D mechanical drawings. Instead of drawing polygons like package dimensions or board outlines manually, you can now simply import them from a DXF file right into the package- symbol- or board editor. Circles can optionally be converted to holes, which is useful to import mounting holes together with the board outlines.

For example, creating an Arduino Shield is now much easier once you got its outline as a DXF:

DXF Import

Migration to CMake (#798)

Although this change is not directly relevant for LibrePCB users, it is still noteworthy because of its impact for LibrePCB developers and package maintainers.

Until LibrePCB 0.1.5, we used qmake as build system since it is the official build system of Qt 5. But unfortunately, we had several issues with it, especially regarding the integration and optional unbundling of third party libraries.

Since CMake is the de facto standard for C++ projects, we have now migrated LibrePCB to CMake as well. This allowed us to highly improve the way how third party libraries can now be unbundled, which is very useful for package maintainers. Note that even Qt 6 switched to CMake, one more good reason for this step ;-)

Special thanks to @dbrgn for the huge effort spent for this migration!


Changelog

Library Editor:

  • Allow copying elements to other library (#911)
  • Provide “Snap To Grid” context menu item (#867)
  • Stop rejecting overlapping package pads, just warn about them (#876)
  • Remove checkbox text “required/optional” in component signals editor (#875)
  • Make GUI of remote libraries completely read-only (#918)
  • Ignore delete command if no items selected (#899)

Schematic Editor:

  • Snap wires to pins/junctions off the grid (#877)

Board Editor:

  • Improve “Place Devices” dock and add new features to it (#892)
  • Hide tabs if there are less than two boards (#898)
  • Do not reject placing vias on top of other items (#878)
  • Fix staying in the device placement tool (#794)
  • Fix crash after adding a device to a board failed (#855)
  • Fix some strange trace layer change behavior (#926)

ERC/DRC:

  • Hide empty categories in ERC dock (#897)
  • Support partial DRC checks & quick re-run from dock widget (#907)
  • Fix loading maximum stopmask drill diameter from DRC rules (#786)

Import/Export:

  • Add DXF import to package-, symbol- and board editors (#917)
  • Improve Gerber files compatibility with manufacturers (#881)
  • In BOM export, show whether devices are in sync with schematic (#888)
  • Do not include output/ directory in *.lppz export (#929)

CLI:

  • Log fatal error messages to stderr (#816)

Miscellaneous:

  • Add dialog to start ordering a PCB (#927)
  • Allow overriding workspace path by environment variable (#817)
  • Allow opening locked workspace/project/library in some cases (#871)
  • Ask for new workspace path if workspace failed to open (#906)
  • Only autosave project if there were changes (#912)
  • Improve error messages when project library update fails (#824)
  • Don’t provide “Hidden Grab Areas” layer when not reasonable (#831)
  • Set library-/board editor tab bars on MacOS to document mode (#930)
  • Fix missing holes in footprint previews (#796)
  • Fix wrong schematic editor colors when OpenGL is enabled (#921)

Packaging/Deployment:

  • Add support for OpenBSD (#804)
  • Drop support for Qt < 5.5 (#885)
  • Allow overriding default workspace path by environment variable (#905)
  • Display TLS library version in about dialog (#923)
  • Update official binary releases to Qt 5.15.2 and OpenSSL 1.1.1 (#925)

Internal:

  • Migrate from qmake to CMake (#798)
  • Use built-in markdown support when using Qt >=5.14 (#779)
  • Replace sexpresso library with own implementation (#802)

Download

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

https://librepcb.org/download/

Thanks to all contributors for making this awesome release possible!