Top Related Projects
This is an active mirror of the KiCad development branch, which is hosted at GitLab (updated every time something is pushed). Pull requests on GitHub are not accepted or watched.
Fritzing desktop application
Horizon is a free EDA package
Quick Overview
LibrePCB is an open-source Electronic Design Automation (EDA) software for developing printed circuit boards (PCBs). It provides a comprehensive set of tools for schematic capture, PCB layout, and library management, aiming to offer a modern, cross-platform alternative to existing PCB design software.
Pros
- Cross-platform compatibility (Windows, macOS, Linux)
- User-friendly interface with a modern look and feel
- Extensive library management system
- Active development and community support
Cons
- Relatively new project, may lack some advanced features of established EDA tools
- Smaller user base compared to industry-standard software
- Limited third-party library support
Getting Started
To get started with LibrePCB:
- Download the latest version from the official website: https://librepcb.org/download/
- Install the software following the instructions for your operating system
- Launch LibrePCB and create a new project or open an existing one
- Familiarize yourself with the interface, including the library manager, schematic editor, and board editor
- Refer to the documentation and tutorials available on the LibrePCB website for detailed guidance on using the software
Note: As LibrePCB is not a code library but a standalone application, there are no code examples or quick start code snippets to provide.
Competitor Comparisons
This is an active mirror of the KiCad development branch, which is hosted at GitLab (updated every time something is pushed). Pull requests on GitHub are not accepted or watched.
Pros of kicad-source-mirror
- Larger and more established community, resulting in better support and resources
- More comprehensive feature set, including advanced PCB design capabilities
- Wider range of component libraries and footprints available
Cons of kicad-source-mirror
- Steeper learning curve due to its extensive feature set
- Older codebase, which can lead to some legacy issues and inconsistencies
- Larger project size, potentially making it more challenging to contribute or modify
Code Comparison
KiCad (C++):
void PCB_EDIT_FRAME::OnUpdateLayerPair( wxUpdateUIEvent& aEvent )
{
LSET activeLayers = GetBoard()->GetEnabledLayers();
aEvent.Enable( activeLayers.count() >= 2 );
}
LibrePCB (C++):
void Board::removeDevice(BI_Device& device) noexcept
{
Q_ASSERT(mDevices.contains(&device));
mDevices.remove(&device);
emit deviceRemoved(device);
}
Both projects use C++ for their core functionality. KiCad's codebase tends to be more complex due to its larger feature set, while LibrePCB's code appears more modern and straightforward. KiCad uses wxWidgets for its GUI, while LibrePCB uses Qt, which is reflected in their respective coding styles and patterns.
Fritzing desktop application
Pros of Fritzing
- More beginner-friendly with an intuitive drag-and-drop interface
- Extensive library of components and parts
- Supports breadboard, schematic, and PCB views
Cons of Fritzing
- Less suitable for complex professional designs
- Limited advanced features compared to LibrePCB
- Slower development pace and updates
Code Comparison
LibrePCB (C++):
void Board::addDevice(Device& device) {
mDevices.append(&device);
emit deviceAdded(device);
}
Fritzing (C++/Qt):
void SketchWidget::addItem(ModelPart * modelPart) {
QGraphicsItem * item = addItemAux(modelPart);
if (item) {
m_addedItems.append(item);
}
}
Both projects use C++ with Qt framework, but LibrePCB's codebase appears more modern and organized. Fritzing's code shows its age with older coding practices and less consistent structure.
LibrePCB offers a more professional-grade EDA tool with advanced features, while Fritzing excels as an educational tool for beginners and hobbyists. LibrePCB's development is more active, with frequent updates and improvements, whereas Fritzing's development has slowed in recent years.
Horizon is a free EDA package
Pros of Horizon
- More advanced routing capabilities, including differential pair routing
- Integrated 3D viewer for PCB visualization
- Supports scripting for automation and customization
Cons of Horizon
- Steeper learning curve due to more complex interface
- Less cross-platform compatibility (primarily Linux-focused)
- Smaller community and fewer resources for beginners
Code Comparison
Horizon (C++):
void SymbolPin::update_marker(const Coordi &c)
{
marker->set_position(c);
marker->set_angle(orientation);
}
LibrePCB (C++):
void SymbolPin::updatePosition() noexcept
{
mGraphicsItem->setPos(mPosition.toPxQPointF());
mGraphicsItem->setRotation(-mRotation.toDeg());
}
Both projects use C++ and have similar approaches to updating pin positions. Horizon's code appears to be more explicit in handling coordinates and angles, while LibrePCB's code uses more abstracted types (e.g., toPxQPointF()
).
LibrePCB offers a more user-friendly interface and better cross-platform support, making it more accessible for beginners. However, Horizon provides more advanced features for experienced users, particularly in routing and 3D visualization.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
LibrePCB
About LibrePCB
LibrePCB is a free EDA suite to develop printed circuit boards on Windows, Linux and MacOS. More information and screenshots are available at librepcb.org.
Installation & Usage
Official stable releases are provided at our download page.
Please read our user manual to see how you can install and use LibrePCB. The quickstart tutorial provides a step-by-step guide through the whole process of designing a PCB.
Contributing
Contributions are welcome! See
librepcb.org/contribute and
CONTRIBUTING.md
for details.
For internal details take a look at the developers documentation.
Development
WARNING: The master
branch always contains the latest UNSTABLE version of
LibrePCB. Everything you do with this unstable version could break your
workspace, libraries or projects, so you should not use it productively! For
productive use, please install an official release as described in the
user manual. For development, please read details
here.
Requirements
To compile and run LibrePCB, you need the following software components:
- C++ compiler: g++, MinGW or Clang (any version with C++20 support should work)
- Rust toolchain (GNU, not MSVC)
- Qt >= 6.2 (make sure the imageformats plugin is installed too as it will be needed at runtime!).
- OpenCASCADE OCCT or OCE (optional, OCCT highly preferred)
- OpenGL Utility Library GLU (optional)
- zlib
- OpenSSL
- CMake 3.22 or newer
Prepared Docker Image
Instead of installing the dependencies manually on your system (see instructions below), you can also use one of our Docker images with all dependencies pre-installed (except GUI tools like QtCreator). These images are actually used for CI, but are also useful to build LibrePCB locally.
Installation on Debian/Ubuntu/Mint
Ubuntu >= 22.04
sudo apt-get install build-essential git cmake openssl zlib1g zlib1g-dev \
qt6-base-dev qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools \
libqt6opengl6-dev libqt6svg6-dev qt6-image-formats-plugins \
libglu1-mesa-dev libtbb-dev libxi-dev occt-misc libocct-*-dev rustc cargo
sudo apt-get install qtcreator # optional
Ubuntu 20.04
sudo apt-get install build-essential git cmake openssl zlib1g zlib1g-dev \
qt5-default qttools5-dev-tools qttools5-dev libqt5opengl5-dev \
libqt5svg5-dev qt5-image-formats-plugins libglu1-mesa-dev \
liboce-*-dev rustc cargo
sudo apt-get install qt5-doc qtcreator # optional
Installation on Arch Linux
sudo pacman -S base-devel git cmake openssl zlib desktop-file-utils \
shared-mime-info qt6-base qt6-svg qt6-tools \
qt6-imageformats opencascade rust
sudo pacman -S qt6-doc qtcreator # optional
Note: Instead of installing the dependencies and building LibrePCB manually,
you could install the package
librepcb-git from the AUR.
The package clones and builds the latest version of the master
branch from
GitHub.
Installation on Mac OS X
- Install Xcode through the app store and start it at least once (for the license)
- Install homebrew (the package manager)
- Install dependencies:
brew update && brew install qt6 cmake opencascade rust
- Make the toolchain available:
brew unlink qt && brew link --force qt6
Installation on Windows
Download and run the Qt for Windows installer from here. LibrePCB does not compile with MSVC, so you must install following components with the Qt installer:
- MinGW 11.2.0 64-bit compiler
- Qt binaries for MinGW 11.2.0 64-bit (use the latest 6.x version)
- Qt Image Formats for MinGW 11.2.0 64-bit
- CMake
In addition, install the Rust toolchain with
Rustup.
Use the toolchain x86_64-pc-windows-gnu
as we don't support MSVC!
For the OpenCascade library the installation procedure is not that easy
unfortunately. Basically you have to build it by yourself, see instructions
here.
However, to avoid this effort you could instead just set the CMake option
USE_OPENCASCADE=0
(can be set in the QtCreator build config) to allow
compiling LibrePCB without OpenCascade.
Cloning
It's important to clone the repository recursively to get all submodules too:
git clone --recursive https://github.com/LibrePCB/LibrePCB.git && cd LibrePCB
Updating
When updating the repository, make sure to also update all the submodules recursively. Otherwise you may get strange compilation errors:
git submodule update --init --recursive
Building
You can either build LibrePCB using Qt Creator, or you can build on the command line using cmake. To build LibrePCB using cmake/make:
mkdir build && cd build
cmake ..
make -j8
The binary can then be found in build/apps/librepcb/
.
For more detailed instructions (including how to set up Qt Creator), see https://developers.librepcb.org/d5/d96/doc_building.html
Credits
- First of all, many thanks to all of our contributors!
- A big thank you goes to all our sponsors which help to keep this project alive!
- Special thanks also to cloudscale.ch for sponsoring our API server!
License
LibrePCB is published under the GNU GPLv3 license.
Top Related Projects
This is an active mirror of the KiCad development branch, which is hosted at GitLab (updated every time something is pushed). Pull requests on GitHub are not accepted or watched.
Fritzing desktop application
Horizon is a free EDA package
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot