LibrePCB Blog

LibrePCB 0.1.6 Released

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!

LibrePCB 0.1.5 Released

October 4, 2020

We are happy to announce LibrePCB 0.1.5 with several long awaited new features in the library-, schematic- and board editors!

Highlights

Copy&Paste in Schematic- and Board Editors

Finally the clipboard functionality cut, copy and paste are available in the schematic- and board editors (#724, #754)! Just use the keyboard shortcuts Ctrl+X to cut, Ctrl+C to copy and Ctrl+V to paste schematic- or board items. In the board editor, it’s even possible to paste polygons copied from a footprint in the library editor.

Usability Improvements In All Editors

This release contains a lot of usability improvements, which makes creating library elements, schematics and boards much easier. Especially drawing traces and placing vias was one of the weaknesses of LibrePCB – until now! The tools to draw traces and place vias have been heavily improved, for example:

  • Traces snap to pads and vias even if they are off the grid
  • The layer can be switched while drawing a trace, vias are inserted automatically
  • Vias automatically take the closest net while placing
  • Inserted vias are automatically connected to the traces underneath
  • Trace and via properties can be changed with keyboard shortcuts while drawing a trace

Draw Trace

Another inconvenience was that the outline of planes and polygons could only be modified by specifying the exact vertex coordinates. Now this is much easier since vertices can be moved, inserted and removed graphically right in the editors.

Changelog

Library Manager:

  • Fix error when downloading a library after an aborted download (#775)

Library Editor:

  • Implement “Select All” (Ctrl+A) (#723)
  • Support cycling selection through items under cursor by pressing Shift (#757)
  • Support rotate/mirror/flip while moving items (#769)
  • Support modifying polygons graphically (#773)
  • Copy all categories when duplicating a library element (#765)
  • Fix “Could not move X to Y” error when moving library element (#715)
  • Fix crash when going back in “New Component” wizard (#719)

Schematic Editor:

  • Implement clipboard cut/copy/paste (#724)
  • Implement “Select All” (Ctrl+A) (#723)
  • Support cycling selection through items under cursor by pressing Shift (#757)
  • Support cycling through results of the search toolbar (#756)
  • Make component toolbar norm-aware by using preferred symbol variant (#768)
  • Fix leaving tool with when pressing right mouse click while moving (#761)

Board Editor:

  • Implement clipboard cut/copy/paste (#754)
  • Implement “Select All” (Ctrl+A) (#723)
  • Heavily improve the “Draw Trace” tool (#733, #751, #753, #749)
  • Heavily improve the “Add Via” tool (#736)
  • Support cycling selection through items under cursor by pressing Shift (#748)
  • Support cycling through results of the search toolbar (#756)
  • Support modifying polygons graphically (#773)
  • Support modifying plane outlines graphically (#774)
  • Don’t remove complete trace when changing a device (#746)
  • Fix possibly outdated displayed texts of devices (#770)
  • Fix possibly outdated displayed net names (#771)

ERC:

  • Disregard schematic-only components in net pin count (#745)

Miscellaneous:

  • Add support for Solaris based systems (#713)
  • Allow unbundling of some vendored libraries (#698, #742)
  • Fix too restrictive format version check of FontoBene files (fontobene-qt5#673)
  • Various internal code refactorings & improvements (#720, #760, #767, …)

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!

LibrePCB 0.1.4 Released

May 3, 2020

This minor release is one more important step to make LibrePCB more powerful and to improve usability of the user interface.

Highlights

Usability Improvements

The user interface got many usability improvements to make creating libraries and projects more efficient. For example the schematic- and board editors now allow searching for symbols resp. devices (#671):

Search Symbol

Furthermore, all input fields for length values (line width, drill diameter, coordinate etc.) are now displayed in the unit configured in the workspace settings (#684). The unit of each input field can even be changed individually and gets saved and restored automatically. And you can now enter mathematical expressions and optionally append a unit (e.g. “mm”) which will then be evaluated:

Search Symbol

Pick&Place and SVG Export

This release adds a pick&place CSV file export (#639) so LibrePCB is now also suitable to design PCBs which will be assembled by pick&place machines:

Pick&Place Export

In addition, an SVG export has been implemented for both, schematics and boards (#656). This allows to postprocess them in a vector graphics tool for various purposes.

À propos file export: The BOM CSV export is now comma-separated instead of semicolon-separated (#678). This improves compatibility with CSV readers.

Compatibility Note

LibrePCB 0.1.4 uses exactly the same file format for projects as all previous 0.1.x releases and are thus fully compatible.

However, previous versions had a bug which allowed to have linebreaks in net names (#603). This has been fixed in 0.1.4, and since we expect (or hope…) no projects to be affected by this bug, no automatic upgrade mechanism has been implemented. If you still run into the issue that a project cannot be opened with LibrePCB 0.1.4, the affected net names need to be fixed manually. Please don’t hesitate to contact us to get help with the migration.

Changelog

Library Editor:

  • Add “filter” toolbar to filter element lists (#673)
  • Support moving elements to other library (#638)
  • Show warning in device editor if no pads are connected (#680)

Schematic Editor:

  • Add SVG export for sheets (#656)
  • Add “search” toolbar to find symbols in sheets (#671)
  • Add possibility to rename sheets (#640)
  • Fix possibly wrapping of items in schematic pages dock (#685)

Board Editor:

  • Add pick&place file export (#639)
  • Add SVG export for boards (#656)
  • Add “search” toolbar to find devices in boards (#671)
  • Sort items in “Change Device” context menu (#677)
  • Fix duplicate vertices when drawing polygons (#672)
  • Fix possibly disappearing airwires in some situations (#687)

BOM Export:

  • Use comma instead of semicolon as separator (#678)

Miscellaneous:

  • Deny newlines in net names and other identifiers (#637)
  • Speed up UUID validation and thus the library scan (#651)
  • Respect configured workspace length unit in editors (#684)
  • Respect configured grid unit in statusbar of editors (#689)
  • Improve keyboard navigation in dialogs (#690)
  • Use wizard to create and switch workspace from ControlPanel (#688)
  • Split workspace chooser and workspace initialization wizard (#652)
  • Fix falling back to system language for untranslated strings (#645)
  • Various internal code improvements and refactoring
  • Many translation improvements and fixes

Installer:

  • Change default installation directory on macOS to /Applications (#644)

New languages:

Download

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

https://librepcb.org/download/

LibrePCB Talk at FOSDEM 2020

January 3, 2020

It’s two years ago since I gave the introduction to LibrePCB talk at FOSDEM 18. This was a milestone in the history of LibrePCB since it was the first time LibrePCB was actively presented to a large audience.

FOSDEM

Since that talk, there was a huge progress regarding LibrePCB. Therefore I decided to submit a status update talk at FOSDEM 2020. The talk takes place on Saturday, February 1, 10:55 in room H.2213 at the ULB Solbosch Campus in Brussels, Belgium. As always, there are also live streams available.

See you in Brussels! :-)

LibrePCB 0.1.3 Released

November 30, 2019

This release adds a lot of (long-awaited) new features and important bugfixes to LibrePCB.

Highlights

Design Rule Check for Boards (#581)

Finally the board editor got a design rule check! It checks a PCB for common mistakes like missing connections, too small clearances (or shorts), or too thin copper elements. A new dock widget shows the reported messages and clicking on a message displays the issue in the board view.

DRC

Please note that the new design rule options are not yet saved to files, so you have to re-enter them after opening the project the next time. This will be implemented in the next major release of LibrePCB.

BOM Export (#499)

Now it’s also possible to export the bill of materials (BOM) of a LibrePCB project to a CSV file. In addition to some predefined columns, you can add arbitrary component attributes as additional columns to the CSV:

DRC

Boards can now be printed and exported to PDF, with respecting the currently visible layers. This allows for example to create assembly plans like this:

DRC

Changelog

Library Editor:

  • Add mirror functionality to symbol/package editors (#569)
  • Show footprint pad names in package editor (#570)
  • Add more widgets to package text drawing command toolbar (#521)
  • Adjust default values of symbol and package elements (#523)
  • Remove underscore from predefined text placeholders (#555)
  • Fix possibly missing message box when closing tab (#563)

Schematic Editor:

  • Add BOM export dialog (#499)
  • Allow changing pre-selected device of components (#565)
  • Provide more options when renaming net segments (#532)
  • Initialize *.lppz export filename with default value (#524)
  • Fix missing device when adding component multiple times (#561)

Board Editor:

  • Add design rule check (#581)
  • Add PDF export and print support (#567)
  • Add tool to measure wire length (#564)
  • Allow to hide copper planes (#531)
  • Allow rotating while moving items (#533)
  • Add device context menu item “snap to grid” (#525)
  • Fix missing plane cut-out for board outlines in footprints (#501)
  • Fix invisible zero-width circles/polygons (#502)
  • Fix wrong rotation of mirrored pads in plane cut-outs (#509)

Gerber Export:

  • Add support for non-square octagon pads (#507)
  • Always use multi-quadrant mode for arcs (#504)
  • Fix possibly wrong position of circles in footprints (#508)

CLI:

  • Add --strict option (#583)

Miscellaneous:

  • Implement pinch to zoom in all graphics views (#477)
  • Add menu items to toggle visibility of dock widgets (#487)
  • Support copying and moving rows in polygon editor dialogs (#489)
  • Auto-select attribute unit when entering unit in value field (#491)
  • Replace spinboxes/comboboxes with unit-aware edit widgets (#520)
  • Provide *.tar.gz archive with pre-built binaries for deployment on Linux (#571)
  • Fix broken settings when closing windows with OpenGL enabled (#503)
  • Fix possible crash when re-opening symlinked projects (#573)
  • Fix possibly wrong grab area of various graphics items (#582)

New languages:

Download

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

https://librepcb.org/download/

LibrePCB 0.1.2 Released

July 14, 2019

LibrePCB 0.1.1 Released

April 21, 2019

LibrePCB 0.1.0 Released

November 25, 2018

LibrePCB 0.1.0 RC2 Released

November 4, 2018

LibrePCB 0.1.0 RC1 Released

October 21, 2018

Status Update 2018-09-15

September 15, 2018

LibrePCB Meets FontoBene

April 21, 2018

LibrePCB Has a Blog! :-)

September 13, 2017