LibrePCB Blog

LibrePCB 0.1.5 Released

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

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

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

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

This is mainly a bugfix release which fixes some usability, compatibility and functional issues of the 0.1.1 release.

Highlights

Support latest build environments

The dependencies quazip, googletest, optional and type_safe were updated (#476) and some deprecation warnings were fixed (#478). Now LibrePCB also compiles with GCC 9.x and Qt 5.13 without any warnings.

Since we migrated from Travis-CI to Azure Pipelines (#458), CI is now able to build on Ubuntu 19.04 with GCC 9.x to ensure compatibility with recent build environments.

Improved table widgets

The table widgets – especially in the library editor – behaved a bit strange and sometimes even buggy. After refactoring the implementation of the observer pattern in low-level classes (#449), we were able to replace most QTableWidget tables by QTableView using Qt’s model/view framework (#456). This heavily improves the usability and stability of our table widgets, see details in the changelog below.

Changelog

Library Editor:

  • Rename library overview context menu item “copy” to “duplicate” (#447)
  • Preselect pin name when opening symbol pin properties dialog (#453)

Schematic Editor:

  • Fix net label offset after mirroring (#451)

Board Editor:

  • Fix unintended tool change after double click on footprint (#464)
  • Fix inconsistent appearance of polygons between editor and Gerber export (#479)

Miscellaneous:

  • Change predefined norms to “IEC 60617” + “IEEE 315” (#455)
  • Enable scrolling with both axis when pressing Ctrl (#467)
  • Refactor all table widgets using Qt’s model/view framework (#456):
    • Fix application crashes with newer Qt versions when editing table content
    • Fix possibly outdated table content when underlying data changes (e.g. on undo/redo)
    • Sort tables where reasonable (some tables even allow the user to sort by specific column)
    • Slightly improved error handling when entering invalid data into table cells
    • In some tables, allow inserting multiple rows at once (e.g. the term “1..5” creates 5 rows, from “1” to “5”)
    • Various other small improvements

New languages:

Download

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

https://librepcb.org/download/