@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.

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:

  • Thermal relief pads in planes (#1160)

  • Blind & buried vias (#1163)

  • Plated and non-plated slots (#1071, #1076)

  • Keepout zones (#1167)

  • Rounded and custom footprint pad shapes (#1102, #1103)

  • Configurable automatic stop mask and solder paste on pads (#1137)

  • Fiducials and other pad types (#1142, #1143)

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)

  • Allow creating unconnected traces/vias/planes (#854, #1165)

  • 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)

DRC:

  • Add minimal, fast DRC mode "quick check" (#1117)

  • Support approving DRC messages (#1121)

  • Store DRC settings in board file (#1116)

  • Add checks for board outline validity (#1123)

  • Add checks for minimum drill distance (#1122)

  • Add checks for silkscreen width/height/clearance (#1183)

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)

CLI:

  • Implement new command open-step (#1222)

  • Support --check flag to run library element checks (#1109)

  • Support --drc flag to run the design rule check (#1133)

  • Use -v for --verbose instead of --version. (#1063)

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 to DATE/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 by argv[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)


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

I’m very excited to announce that LibrePCB 1.0 is feature-complete and that a first release candidate is available for download!

About This Release Candidate

LibrePCB 1.0 contains a huge amount of changes compared to the previous release. Even though we give our best to keep the quality high and do lots of testing, such large changes always come with the risk of bugs. Thus, we first provide a release candidate prior to the official stable release.

Note that while we do not expect that any serious problems occur with your projects when using this release candidate, it’s still a good idea to create a backup first (e.g. by using a version control system).

If you experience any issues with this release candidate, please let us know so we can fix them in the final release!

Major Changes

A full changelog and some impressions will be provided in the final release announcement. But here’s a list of the most interesting new features (check out the links to the pull requests for more details):

  • Implement 3D viewer & STEP export (#1156)

  • Implement MPN management & assembly variants (#1177, #1180)

  • Implement unified production data files generator (#1194)

  • Support thermal relief pads in planes (#1160)

  • Support blind & buried vias (#1163)

  • Support plated and non-plated slots (#1071, #1076)

  • Support keepout zones (#1167)

  • Support rounded and custom footprint pad shapes (#1102, #1103)

  • Support configurable stop mask and solder paste on pads (#1137)

  • Support fiducials and other pad types (#1142, #1143)

  • And many more!

Next Steps

We expect the final release to be available soon, probably around the beginning of September. Meanwhile, we will work on migrating our official libraries to the new file format, extending our fabrication service to support LibrePCB 1.x projects, and updating the documentation accordingly.


Download

Since this is not a stable release yet, only portable packages are available so far (in the sidebar):


@ubruhin
May 15, 2023

As mentioned in the previous blog post, I’ll give you a short update about the status of the upcoming release which is currently in development. Time for 1.0! The original plan was that the next release after LibrePCB 0.1.7 will have the version number 0.2. But thanks to the NGI0 grant I’m now able to spend much more time for LibrePCB, allowing to include more features in the next release than initially planned. Read more...

@ubruhin
April 13, 2023

I am very happy to announce that the LibrePCB project receives support from the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet programme. This helps us to ensure the development of important features planned for the upcoming releases. Especially the next major release will extend LibrePCB with many new capabilities. Some of them have already been implemented, but there is still a lot of work to be done. Read more...

@ubruhin
October 3, 2022

Finally it’s time again to announce a new release – LibrePCB 0.1.7 brings several new features and a lot of usability improvements! This might be the last release of the 0.1.x series as LibrePCB 0.2.x development is ongoing as well. But, never say never ;-) Note for macOS users: Our official binaries do not run on macOS 10 anymore. You need macOS 11 Big Sur or later (or compile LibrePCB from sources). Read more...

@ubruhin
September 8, 2022

We are happy to announce a new partnership with PCBWay, a large and popular PCB manufacturer from China! About PCBWay As a PCB designer you might already know PCBWay since it’s a very popular PCB manufacturer – for both, hobbyists and professionals. They offer a lot of capabilities (e.g. materials, colors, surface finish, panelization, assembly, …) for a competitive price. For details, please check out their capabilities sheet. LibrePCB Fab Integration The first part of the partnership is the integration into our PCB ordering service LibrePCB Fab. Read more...

@ubruhin
January 28, 2022

After the introduction to LibrePCB talk at FOSDEM 18 and the status update talk at FOSDEM 20, I’m happy to give one more update about the current project status at FOSDEM 22! The status update talk will take place on Saturday, February 5, at 12:00 CET. Due to obvious reasons, it’s an online event this year. After the talk we will have some time for a live Q&A session. The details, including the links to join the livestream or the chat, are available here. Read more...

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