@ubruhin
April 3, 2024
I’m happy to announce LibrePCB 1.1.0 which was released today! Once again there are some exciting new features, check out the details below.
Highlights
Live Parts Information (#1313)
Who didn’t already finish a PCB project and then — while ordering the parts — realized that several parts in the schematic are obsolete, not in stock or unexpectedly expensive? This is annoying and wastes time for evaluating new parts and adjusting the PCB layout again.
Luckily with LibrePCB 1.1.0 you now see much earlier in the design phase which parts are good to use! When adding new parts to a schematic, you’ll immediately see their lifecycle status, availability, price and more:
In addition, the BOM export dialog gives you an overview about the status of all parts used in the project and even shows you their total price:
Since such information can change quickly, it is not stored in our libraries but requested through our online API on demand. The actual data about parts is kindly sponsored by Partstack — without their support, it would not be possible for us to provide this feature.
In case you worry about this new internet-based feature: We take privacy very seriously and absolutely no personal data (e.g. IP address) will be forwarded to any third-party (not even to Partstack). Also it is possible to disable this feature. See details here. |
EAGLE Project Import (#1318)
Still using EAGLE and looking for alternatives now since it has been abandoned? Or already using LibrePCB, but still having many old EAGLE projects?
No problem — in addition to the already existing EAGLE library import, you can now even import whole EAGLE projects, allowing you to smoothly migrate from EAGLE to LibrePCB! Well, at least within some limitations since such importers by design can’t be lossless 😉 However, we think it works very well for many EAGLE projects so you should definitively give it a try.
For more details about its limitations, check out this pull request. If you encounter a problem not mentioned there, please let us know!
Interactive Device Pinout Assignment (#1309)
The most important step of creating a new device is to define its pinout, which can be quite cumbersome and error-prone, especially for devices with many pads. This changes with LibrePCB 1.1.0:
Any pads whose name match with a component signal (e.g. a connector with pads
1..20
) can now be assigned with just a single click.
And for any remaining pads, an interactive mode helps you to do the assignment pad by pad. A filtering feature and extensive keyboard shortcuts make this mode very efficient.
Improved Support for Dark Themes
This is actually just a small change, but thanks to theme-aware toolbar icons and improved colors, LibrePCB is now much better usable (and looks better) on systems with a dark theme.
Qt6, 64-bit Windows Releases, Offline Installer
Normally I don’t consider internal technical changes as a highlight, but this time a technical change has notable impact especially for Windows users. Starting with LibrePCB 1.1.0, we now support Qt6, the successor of the C++ toolkit Qt5 which LibrePCB is based on since its very beginning. Together with Qt6 we now provide 64-bit releases for Windows.
In addition, this new 64-bit release is now built with
a new installer toolkit.
Instead of downloading LibrePCB from the internet during the installation,
this is now an offline installer not requiring internet anymore. Due to the
different CPU architecture, the new installer defaults to the location
C:\Program Files\LibrePCB
instead of C:\Program Files (x86)\LibrePCB
.
During installation it will ask you to uninstall any previous LibrePCB version.
Note that these Qt6/64-bit builds are currently considered beta. For productive use we recommend the still available Qt5 (32-bit on Windows) builds for now, as promoted on the download page. For upcoming releases we plan to drop these Qt5 builds so only the Qt6 builds will be available then. |
The move to Qt6 forced us to drop support for Windows 7, Windows 8 and any 32-bit versions — upcoming releases will require at least Windows 10 64-bit. Since Windows 7 and 8 are already end-of-life for quite some time, it is highly recommended anyway to not use these systems anymore. But for now you can still use the Qt5 builds on them. |
Changelog
Library Editor:
-
Add tools to help defining the pinout of devices (#1309)
-
Warn about invalid package pad connections (#1296)
-
Refactor "Copy to Other Library" context menu (#1343)
-
Reduce minimum window height (#1290)
-
Fix "Select All" not selecting items far away from center (#1243)
-
Fix maximum length of symbol pin name input field (#1298)
-
Fix suggested signals when duplicating component (#1311)
DRC:
-
Add checks for unused or disabled copper layers (#1339)
Import/Export:
-
Heavily improve EAGLE library import (#1287)
-
Show hint allowing to add a default set of output jobs (#1345)
-
Ask for discarding unsaved changes in output jobs dialog (#1348)
-
Add support for realistic PCB rendering in graphics output job (#1304)
-
Save & restore window size of BOM export dialog (#1282)
-
Don’t scale columns of BOM export dialog with window width (#1284)
-
Fix file extension
.gml
in Protel-style Gerber output job (#1277)
Miscellaneous:
-
Initialize new workspace with some example projects (#1307)
-
Add "Toggle 2D/3D" button to toolbars (#1334)
-
Use lighter toolbar icons if dark theme is detected (#1326)
-
Globally enable HTTP caching (#1289)
-
Improve stacking order of graphics items (#1291)
-
Visually separate colors of board layers (#1248)
-
Provide visual feedback on save & copy actions (#1349)
-
Show waiting spinner while opening external applications (#1283)
-
Limit search result auto-zoom to a certain margin (#1312)
-
Fix possibly empty device/package name in assembly options (79323b4e)
-
Fix possibly wrong colors of STEP models (#1335)
-
Fix possible flicker of PCB surface in 3D viewers (#1350)
Building/Packaging/Deployment:
-
Support building with Qt6, selectable by
QT_MAJOR_VERSION
(#1317) -
Add new Windows installer based on Inno Setup (#1340)
-
Build macOS releases on macOS 12 (#1259)
-
Add licensing data for https://reuse.software/ (#1316)
-
Update AppStream MetaInfo to conform to latest Freedesktop spec (#1314)
-
Replace
fontobene-qt5
byfontobene-qt
& update other dependencies (#1324) -
Fix linking with OCCT 7.8.x (#1329)
Credits
This release was part of the NGI0 Entrust grant we receive from NLnet, which was a huge help for us to get this work done. We are very thankful for their support.
Also a big thank you to the community helping us with translations, pull requests, donations and other contributions!
Download
The release can be downloaded for all major operating systems from our download page:
https://librepcb.org/download/
If you like LibrePCB, please consider making a small
donation to support the
ongoing development.
Thank you!
@ubruhin
December 30, 2023
I’m happy to announce that once again there will be a LibrePCB talk at the next FOSDEM, which takes place in February 2024!
After the Open Hardware devroom did not exist at the last FOSDEM in 2023, luckily this devroom will be back at FOSDEM 2024 where I’ll give a status update about the LibrePCB project. So if you’re curious about the progress of LibrePCB (also behind the scenes), feel free to join the conference — either in person or via live stream.
-
Talk: LibrePCB Status Update
-
Track: Open Hardware and CAD/CAM
-
Where: Room H.1308 (Rolin), ULB Solbosch Campus, Brussels, Belgium
-
When: 3 & 4 February 2024
I’m looking forward to meet you at FOSDEM 24!
@ubruhin
September 24, 2023
After a few weeks of testing the RC1 and bugfixing, finally the stable release of LibrePCB 1.0 is finished and available for download! Check out the awesome new features and the migration notes below.
For the reasoning behind bumping the version number to 1.0, check out the blog post LibrePCB 1.0 Roadmap. |
Highlights
Advanced PCB Features
One of the goals of this release was to get rid of several limitations which made LibrePCB 0.1.x unsuitable for many PCB projects. Therefore the following board editor features are now available:
So there should be no show stopper anymore which prevents you from using LibrePCB for more complex PCB designs! 💪
3D Viewer & STEP Export (#1156)
Finally it’s possible to review the PCB design in a realistic 3D viewer, with proper rendering of copper layers, solder resist and silkscreen! Even devices are rendered if STEP models have been assigned to their packages in the library. In addition, the whole PCB can be exported as a STEP model so it can be opened in a mechanical CAD.
For a detailed description, check out the corresponding pull request — or just watch this nice GIF! 😀
Since your existing projects do not contain any 3D models yet, initially only the plain PCB will be rendered without any devices on it. To get the devices appearing, you need to add 3D models to the corresponding packages in your libraries. Afterwards you need to trigger Project 〉Update Project Library to update the packages in your project. Our official libraries already contain some 3D models, but there are still many packages without 3D model. Just look for library updates from time to time. |
MPN Management & Assembly Variants (#1180)
It is now also possible to specify manufacturer part numbers (MPNs) in the library so that you don’t need to manually enter them every time you add a component to a schematic. These MPNs will then be exported to the BOM to get very accurate information about the parts you need to order.
But adding just one MPN is sometimes not enough. Probably most hardware engineers experienced supply chain issues in the last few years and learned how important it is to define second source parts. With LibrePCB you can now even explicitly specify alternative parts in the schematic which will get exported to the BOM too!
In addition, it is now possible to define multiple assembly variants of a project, for example to omit ("do not mount") specific parts in some of the product variants. For more details about this feature, please take a look at its full explanation.
Unified Production Data Files Generator (#1194)
With LibrePCB 1.0 you can now export production data like a pro! Thanks to so-called output jobs, this task has become very easy, fast, flexible and reproducible:
With the archiving job, there’s even no need anymore to manually create a ZIP file for sending Gerber files to your PCB manufacturer. Just specify the ZIP filename and which job outputs shall be contained, and LibrePCB creates the ZIP in a few milliseconds for you.
These jobs can not only be executed from the graphical interface, but also from the command-line. So if you like to automate the generation of output files (e.g. on a continuous integration system), now you can!
Migration Notes
Workspace & Libraries
When you open your existing workspace the first time with LibrePCB 1.x, it
needs to be upgraded to the new file format. A wizard will automatically
guide you through this (very simple) process. Generally it just recursively
copies the workspace directory v0.1
to a new directory named data
.
If you’re working with external tools (e.g. Git) on libraries, keep in mind to access them with the new path instead of the old one.
After the workspace migration it can take several minutes until your libraries are accessible because they are migrated to the new file format in background. |
Projects
Once you open a LibrePCB 0.1.x project the first time with LibrePCB 1.x, it will automatically be upgraded to the new file format. After saving it to disk, it won’t be possible anymore to open it with LibrePCB 0.1.x.
Note that although the upgrade is generally not critical, there might be small differences in your board after the upgrade. LibrePCB will show you a list of what has changed during the upgrade.
Installation / Packaging
From this release on, we do no longer provide an installer for Linux and MacOS. If you installed LibrePCB 0.1.x with the installer, we recommend to uninstall it and then install it with a different method.
For package maintainers: Note that LibrePCB now depends on Qt Quick, OpenCascade, OpenGL and GLU (at build time and runtime). See details here.
Changelog
Library Editor:
-
Make symbol pin text placement configurable (#971)
-
Add "assembly type" property to packages (#1128)
-
Add "function" property to footprint pads (#1142)
-
Support slotted holes (#1071)
-
Support slotted footprint pads (#1076)
-
Support footprint pads with custom corner radius (#1103)
-
Support custom footprint pad shapes (#1102)
-
Support custom copper clearance around footprint pads (#1143)
-
Allow adding unconnected (pure mechanical) footprint pads (#807)
-
Support configuring stop mask & solder paste on footprint pads (#1137)
-
Add configurable stop mask opening to non-plated holes (#1111)
-
Support keepout zones in footprints & boards (#1167)
-
Add new layers for top/bottom package outlines (#1198)
-
Support adding part numbers to devices (#1177)
-
Support dismissing library check messages (#1107)
-
Turn overlapping pads warning into an error (#1108)
-
Display tables with row numbers instead of UUIDs (#1138)
Schematic Editor:
-
Support adding custom texts to schematics (#806)
-
Support adding polygons to schematics (#810)
-
Support specifying part numbers & assembly variants (#1180)
-
Support mirroring alignment of net labels (#879)
-
Detach symbol texts to make them movable/editable (#1085)
-
Optionally show pin numbers in schematics (#1149)
-
Remove transparency of symbol grab areas (#1083)
-
Automatically refresh schematic thumbnails (#1131)
-
Automatically select first result when searching for components (#1190)
-
Add ERC warning for schematic wires with open end (#1185)
-
Move board related messages from ERC to DRC (#1118)
Board Editor:
-
Implement 3D viewer & STEP export (#1156)
-
Add support for blind & buried vias (#1163)
-
Implement thermal relief pads for planes (#1160)
-
Support automatic THT pad annular rings (#1097)
-
Make exposure of vias configurable (#1164)
-
Always connect vias to planes, regardless of connect style (#1100)
-
Use rounded corners for all expanded pad/via shapes (#1080)
-
Support locking placement of items (#1144)
-
Extend board setup with more PCB properties (#1154)
-
Remove support for non-circular vias (#1088)
-
Support changing width of selected objects (#1189)
-
Auto-rebuild planes asynchronously (#1159)
-
Save and restore board planes visibility (#809)
-
Render pad & via texts with Fontobene (#1206)
-
Rename board device property "mirror" to "flip" (#1157)
-
Rename plane "orphans" to "islands" (#1162)
-
Cleanup board design rules (#1090)
-
Merge all board settings into one dialog (#1113)
-
Fix context menu of selected devices (#1193)
Import/Export:
-
Implement unified output files generator (#1194)
-
Implement IPC-D-356A netlist export for boards (#1081)
-
Enable solder paste Gerber export by default (#1104)
-
Omit zero-width outlines of filled polygons in Gerber export (#1182)
-
Delete obsolete Gerber files left over from previous export (#1155)
-
Add assembly type column to pick&place CSV files (#1126)
-
Store custom BOM attributes in project files (#1135)
Miscellaneous:
-
Change transformation order of mirror and rotate (#1152)
-
Allow characters
. & ( )
in identifiers (#1161) -
Render
!
in pin-, pad- and net names as overlines (#1172, #1178) -
Rename attributes
MODIFIED_DATE/MODIFIED_TIME
toDATE/TIME
(#1151) -
Rename "Top/Bottom Placement" layers to "Top/Bottom Legend" (#1166)
-
Add a dedicated layer for board cutouts (#1168)
-
Support panning with right mouse button in all editors (#1174)
-
Support enter/delete shortcuts in table widgets (#1184)
-
Support opening
*.lppz
projects with the editor (#1202) -
Merge all project related dialogs into single dialog (#1129)
-
Auto-check outdated and recommended libraries in library manager (#1188)
-
Show deprecated library elements with red color (#1216)
-
Make graphics appearance configurable in workspace settings (#1086)
-
Rename term "Repository" to "API Endpoint" (#1158)
-
Update/extend information shown in about dialog (#1114, #1192)
-
Fix possibly unexpected center of rotate/mirror operations (#1082)
-
Fix missing numeric sort at various places (#1105)
-
Do not warn on
stderr
about empty directories in libraries (#1211) -
Suppress warning on
stderr
caused byargv[0]
(#1212)
Building/Packaging/Deployment:
-
Stop providing installers for macOS and Linux (#1147)
-
Support older macOS versions (>=10.14) (#1099)
-
Register
*.lpp
file extension on macOS (#1145) -
Support registering
*.lpp
file extension on Linux at runtime (#1146) -
Support translating Linux desktop entry comment (#1148)
-
Support using (custom)
xdg-open
command to open URLs (#1207) -
Add a QtQuick test window (#1196)
-
Remove CLI dependency to QtWidgets library (#1139)
-
Compile sources with
-Wpedantic
flag (#1110) -
Improve & rename metainfo XML file (#1221)
Internal:
-
Prepare file format for adding resources to library elements (#1181)
-
Add "generated by" property to library elements (#1195)
-
Add alternative names to packages file format (#1199)
-
Remove obsolete workspace settings after file format upgrade (#1067)
-
Upgrade all libraries file format during background scan (#1187)
-
Merge some unnecessary classes for simplification (#1066)
-
Remove support for legacy SExpression formatting (#1068)
-
Refactor loading/serializing & file format upgrade (#1070)
-
Refactor ERC by reusing library element check concept (#1119)
-
Factor out graphics code from core logic to editor logic (#1136)
Credits
This release was part of the NGI0 Entrust grant we receive from NLnet, which was a huge help for us to get this work done. We are very thankful for their support.
Also a big thank you to the community helping us with translations, pull requests, donations and other contributions!
Download
The release can be downloaded for all major operating systems from our download page:
https://librepcb.org/download/
If you like LibrePCB, please consider making a small
donation to support the
ongoing development.
Thank you!
@ubruhin
August 21, 2023
@ubruhin
May 15, 2023
@ubruhin
April 13, 2023
@ubruhin
October 3, 2022
@ubruhin
September 8, 2022
January 28, 2022
November 2, 2021
October 4, 2020
May 3, 2020
January 3, 2020
November 30, 2019
July 14, 2019
April 21, 2019
March 20, 2019
December 3, 2018
November 25, 2018
November 4, 2018
October 21, 2018
September 15, 2018
April 21, 2018
January 2, 2018
October 30, 2017
September 13, 2017