diff --git a/antora-playbook.yml b/antora-playbook.yml index 5c2f2e4f..6890d537 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -15,7 +15,7 @@ asciidoc: page-pagination: '' table-frame: 'none@' table-grid: 'rows@' - version: '1.3.0' # <-- Latest LibrePCB version. + version: '2.0.0' # <-- Latest LibrePCB version. ui: bundle: url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/HEAD/raw/build/ui-bundle.zip?job=bundle-stable diff --git a/modules/cli/nav.adoc b/modules/cli/nav.adoc index df4594a2..cd874f08 100644 --- a/modules/cli/nav.adoc +++ b/modules/cli/nav.adoc @@ -2,5 +2,7 @@ ** xref:installation.adoc[] ** xref:help.adoc[] ** xref:open-library.adoc[] +** xref:open-symbol.adoc[] +** xref:open-package.adoc[] ** xref:open-project.adoc[] ** xref:open-step.adoc[] diff --git a/modules/cli/pages/help.adoc b/modules/cli/pages/help.adoc index 1284fea0..37413f15 100644 --- a/modules/cli/pages/help.adoc +++ b/modules/cli/pages/help.adoc @@ -23,8 +23,10 @@ Arguments: Commands: open-library Open a library to execute library-related tasks. + open-package Open a package to execute package-related tasks. open-project Open a project to execute project-related tasks. open-step Open a STEP model to execute STEP-related tasks outside of a library. + open-symbol Open a symbol to execute symbol-related tasks. List command-specific options: ./librepcb-cli --help diff --git a/modules/cli/pages/open-library.adoc b/modules/cli/pages/open-library.adoc index bc322ce4..dace99e8 100644 --- a/modules/cli/pages/open-library.adoc +++ b/modules/cli/pages/open-library.adoc @@ -38,7 +38,7 @@ Arguments: == Examples [discrete] -=== Check Library Elements and Upgrade File Format +=== Check Library Elements This command is useful for Continuous Integration of LibrePCB libraries because it reports failure if you check in libraries with invalid or non-canonical diff --git a/modules/cli/pages/open-package.adoc b/modules/cli/pages/open-package.adoc new file mode 100644 index 00000000..7fc59e05 --- /dev/null +++ b/modules/cli/pages/open-package.adoc @@ -0,0 +1,31 @@ += Command "open-package" + +This command opens a LibrePCB package and lets you execute some tasks with it. + +.Command +[source,bash] +---- +./librepcb-cli open-package --help +---- + +.Output +---- +Usage: ./librepcb-cli [options] open-package [command_options] package +LibrePCB Command Line Interface + +Options: + -h, --help Print this message. + -V, --version Displays version information. + -v, --verbose Verbose output. + --check Run the package check, print all non-approved messages and + report failure (exit code = 1) if there are non-approved + messages. + --export Export the contained footprint(s) to a graphical file. + Supported file extensions: pdf, svg, bmp, cur, icns, ico, + jfif, jpeg, jpg, pbm, pgm, png, ppm, tif, tiff, wbmp, webp, + xbm, xpm + +Arguments: + open-package Open a package to execute package-related tasks. + package Path to package directory (containing *.lp). +---- diff --git a/modules/cli/pages/open-project.adoc b/modules/cli/pages/open-project.adoc index c33c8c8c..47f3bd81 100644 --- a/modules/cli/pages/open-project.adoc +++ b/modules/cli/pages/open-project.adoc @@ -38,37 +38,46 @@ Options: --outdir Override the output base directory of jobs. If not set, the standard output directory from the project is used. - --export-schematics Export schematics to given file(s). + --export-schematics [DEPRECATED, REPLACED BY: --run-jobs] + Export schematics to given file(s). Existing files will be overwritten. Supported file extensions: pdf, svg, bmp, - cur, ico, jpeg, jpg, pbm, pgm, png, ppm, - xbm, xpm - --export-bom Export generic BOM to given file(s). + cur, icns, ico, jfif, jpeg, jpg, pbm, pgm, + png, ppm, tif, tiff, wbmp, webp, xbm, xpm + --export-bom [DEPRECATED, REPLACED BY: --run-jobs] + Export generic BOM to given file(s). Existing files will be overwritten. Supported file extensions: csv - --export-board-bom Export board-specific BOM to given - file(s). Existing files will be - overwritten. Supported file extensions: csv - --bom-attributes Comma-separated list of additional + --export-board-bom [DEPRECATED, REPLACED BY: --run-jobs] + Export board-specific BOM to given file(s). + Existing files will be overwritten. + Supported file extensions: csv + --bom-attributes [DEPRECATED, REPLACED BY: --run-jobs] + Comma-separated list of additional attributes to be exported to the BOM. Example: "SUPPLIER, SKU" - --export-pcb-fabrication-data Export PCB fabrication data + --export-pcb-fabrication-data [DEPRECATED, REPLACED BY: --run-jobs] + Export PCB fabrication data (Gerber/Excellon) according the fabrication output settings of boards. Existing files will be overwritten. - --pcb-fabrication-settings Override PCB fabrication output settings - by providing a *.lp file containing custom + --pcb-fabrication-settings [DEPRECATED, REPLACED BY: --jobs] Override + PCB fabrication output settings by + providing a *.lp file containing custom settings. If not set, the settings from the boards will be used instead. - --export-pnp-top Export pick&place file for automated + --export-pnp-top [DEPRECATED, REPLACED BY: --run-jobs] + Export pick&place file for automated assembly of the top board side. Existing files will be overwritten. Supported file extensions: csv, gbr - --export-pnp-bottom Export pick&place file for automated + --export-pnp-bottom [DEPRECATED, REPLACED BY: --run-jobs] + Export pick&place file for automated assembly of the bottom board side. Existing files will be overwritten. Supported file extensions: csv, gbr - --export-netlist Export netlist file for automated PCB + --export-netlist [DEPRECATED, REPLACED BY: --run-jobs] + Export netlist file for automated PCB testing. Existing files will be overwritten. Supported file extensions: d356 diff --git a/modules/cli/pages/open-symbol.adoc b/modules/cli/pages/open-symbol.adoc new file mode 100644 index 00000000..dae119b9 --- /dev/null +++ b/modules/cli/pages/open-symbol.adoc @@ -0,0 +1,30 @@ += Command "open-symbol" + +This command opens a LibrePCB symbol and lets you execute some tasks with it. + +.Command +[source,bash] +---- +./librepcb-cli open-symbol --help +---- + +.Output +---- +Usage: ./librepcb-cli [options] open-symbol [command_options] symbol +LibrePCB Command Line Interface + +Options: + -h, --help Print this message. + -V, --version Displays version information. + -v, --verbose Verbose output. + --check Run the symbol check, print all non-approved messages and + report failure (exit code = 1) if there are non-approved + messages. + --export Export the symbol to a graphical file. Supported file + extensions: pdf, svg, bmp, cur, icns, ico, jfif, jpeg, jpg, + pbm, pgm, png, ppm, tif, tiff, wbmp, webp, xbm, xpm + +Arguments: + open-symbol Open a symbol to execute symbol-related tasks. + symbol Path to symbol directory (containing *.lp). +---- diff --git a/modules/installation/pages/build-from-sources.adoc b/modules/installation/pages/build-from-sources.adoc index 4a15876f..9c820f62 100644 --- a/modules/installation/pages/build-from-sources.adoc +++ b/modules/installation/pages/build-from-sources.adoc @@ -6,7 +6,8 @@ To compile LibrePCB, you need to install the following tools & libraries first: -* pass:[g++], MinGW or Clang (any version with pass:[C++17] support should work) +* pass:[g++], MinGW or Clang (any version with pass:[C++20] support should work) +* https://www.rust-lang.org/[Rust] >= 1.88 toolchain (GNU, not MSVC) * http://www.qt.io/download-open-source/[Qt] >= 6.2 (make sure the https://doc.qt.io/qt-6/qtimageformats-index.html[imageformats] plugin is installed too as it will be needed at runtime) @@ -14,16 +15,8 @@ To compile LibrePCB, you need to install the following tools & libraries first: highly preferred) * https://en.wikipedia.org/wiki/OpenGL_Utility_Library[OpenGL Utility Library] GLU (optional) -* http://www.zlib.net/[zlib] * https://www.openssl.org/[OpenSSL] -* https://cmake.org/[CMake] 3.16 or newer - -[IMPORTANT] -==== -Actually LibrePCB 1.2.0 still compiles with Qt5, but unfortunately contains a -serious bug at runtime. Therefore you really need to use Qt6 where the bug -doesn't exist. We'll drop support for Qt5 soon anyway. -==== +* https://cmake.org/[CMake] 3.22 or newer == Get the Sources diff --git a/modules/installation/pages/windows.adoc b/modules/installation/pages/windows.adoc index 434103ad..6643aa85 100644 --- a/modules/installation/pages/windows.adoc +++ b/modules/installation/pages/windows.adoc @@ -11,15 +11,6 @@ The recommended way to install LibrePCB is to use the installer. *Just download and run {installer-url}[{installer-filename}].* Afterwards you'll find LibrePCB in your start menu. -[IMPORTANT] -==== -Unfortunately we're not able yet to sign our Windows installer (it's quite -expensive to do it). Therefore Windows might warn that the publisher of the -installer is unknown. This is normal for binaries without paying for a -signature, therefore just click on btn:[More info] and then btn:[Run anyway] -to skip the warning. -==== - [NOTE] ==== For automated (unattended) installation, please check out the command-line diff --git a/modules/quickstart/images/board-3d.png b/modules/quickstart/images/board-3d.png index 9018698c..72b7fe0d 100644 Binary files a/modules/quickstart/images/board-3d.png and b/modules/quickstart/images/board-3d.png differ diff --git a/modules/quickstart/images/board-add-device.png b/modules/quickstart/images/board-add-device.png index 8b4ac169..1d759555 100644 Binary files a/modules/quickstart/images/board-add-device.png and b/modules/quickstart/images/board-add-device.png differ diff --git a/modules/quickstart/images/board-design-rules.png b/modules/quickstart/images/board-design-rules.png deleted file mode 100644 index d1bfcf7d..00000000 Binary files a/modules/quickstart/images/board-design-rules.png and /dev/null differ diff --git a/modules/quickstart/images/board-draw-plane.png b/modules/quickstart/images/board-draw-plane.png index b0fba2d9..578c2511 100644 Binary files a/modules/quickstart/images/board-draw-plane.png and b/modules/quickstart/images/board-draw-plane.png differ diff --git a/modules/quickstart/images/board-draw-trace.png b/modules/quickstart/images/board-draw-trace.png index 1ef7c97f..323e79b2 100644 Binary files a/modules/quickstart/images/board-draw-trace.png and b/modules/quickstart/images/board-draw-trace.png differ diff --git a/modules/quickstart/images/board-drc-dock.png b/modules/quickstart/images/board-drc-dock.png deleted file mode 100644 index 111e9b9b..00000000 Binary files a/modules/quickstart/images/board-drc-dock.png and /dev/null differ diff --git a/modules/quickstart/images/board-drc-settings.png b/modules/quickstart/images/board-drc-settings.png deleted file mode 100644 index 06d939ce..00000000 Binary files a/modules/quickstart/images/board-drc-settings.png and /dev/null differ diff --git a/modules/quickstart/images/board-drc.png b/modules/quickstart/images/board-drc.png new file mode 100644 index 00000000..691379f4 Binary files /dev/null and b/modules/quickstart/images/board-drc.png differ diff --git a/modules/quickstart/images/board-init.png b/modules/quickstart/images/board-init.png new file mode 100644 index 00000000..af1151be Binary files /dev/null and b/modules/quickstart/images/board-init.png differ diff --git a/modules/quickstart/images/board-order.png b/modules/quickstart/images/board-order.png index d5c5de6f..d4b1fe35 100644 Binary files a/modules/quickstart/images/board-order.png and b/modules/quickstart/images/board-order.png differ diff --git a/modules/quickstart/images/board-outlines.png b/modules/quickstart/images/board-outlines.png index df02259d..85995332 100644 Binary files a/modules/quickstart/images/board-outlines.png and b/modules/quickstart/images/board-outlines.png differ diff --git a/modules/quickstart/images/board-setup-dialog.png b/modules/quickstart/images/board-setup-dialog.png new file mode 100644 index 00000000..d5d11deb Binary files /dev/null and b/modules/quickstart/images/board-setup-dialog.png differ diff --git a/modules/quickstart/images/component-editor.png b/modules/quickstart/images/component-editor.png deleted file mode 100644 index 8213fd82..00000000 Binary files a/modules/quickstart/images/component-editor.png and /dev/null differ diff --git a/modules/quickstart/images/control-panel-empty.png b/modules/quickstart/images/control-panel-empty.png deleted file mode 100644 index 955ac812..00000000 Binary files a/modules/quickstart/images/control-panel-empty.png and /dev/null differ diff --git a/modules/quickstart/images/control-panel-library-manager.png b/modules/quickstart/images/control-panel-library-manager.png deleted file mode 100644 index f5209ba2..00000000 Binary files a/modules/quickstart/images/control-panel-library-manager.png and /dev/null differ diff --git a/modules/quickstart/images/control-panel-new-project.png b/modules/quickstart/images/control-panel-new-project.png deleted file mode 100644 index 79b7bad0..00000000 Binary files a/modules/quickstart/images/control-panel-new-project.png and /dev/null differ diff --git a/modules/quickstart/images/create-component-add-gate.png b/modules/quickstart/images/create-component-add-gate.png new file mode 100644 index 00000000..1979888d Binary files /dev/null and b/modules/quickstart/images/create-component-add-gate.png differ diff --git a/modules/quickstart/images/create-component-add-symbol.png b/modules/quickstart/images/create-component-add-symbol.png deleted file mode 100644 index 8e4ad0f4..00000000 Binary files a/modules/quickstart/images/create-component-add-symbol.png and /dev/null differ diff --git a/modules/quickstart/images/create-component-category-finished.png b/modules/quickstart/images/create-component-category-finished.png new file mode 100644 index 00000000..302c34e0 Binary files /dev/null and b/modules/quickstart/images/create-component-category-finished.png differ diff --git a/modules/quickstart/images/create-component-category.png b/modules/quickstart/images/create-component-category.png index b3396aed..be800c10 100644 Binary files a/modules/quickstart/images/create-component-category.png and b/modules/quickstart/images/create-component-category.png differ diff --git a/modules/quickstart/images/create-component-metadata.png b/modules/quickstart/images/create-component-metadata.png index b86e5454..31474a23 100644 Binary files a/modules/quickstart/images/create-component-metadata.png and b/modules/quickstart/images/create-component-metadata.png differ diff --git a/modules/quickstart/images/create-component-pin-map.png b/modules/quickstart/images/create-component-pin-map.png deleted file mode 100644 index 99bf50e5..00000000 Binary files a/modules/quickstart/images/create-component-pin-map.png and /dev/null differ diff --git a/modules/quickstart/images/create-component-properties.png b/modules/quickstart/images/create-component-properties.png deleted file mode 100644 index 9b5a064d..00000000 Binary files a/modules/quickstart/images/create-component-properties.png and /dev/null differ diff --git a/modules/quickstart/images/create-component-review-gate.png b/modules/quickstart/images/create-component-review-gate.png new file mode 100644 index 00000000..ca8642d1 Binary files /dev/null and b/modules/quickstart/images/create-component-review-gate.png differ diff --git a/modules/quickstart/images/create-component-review-signals.png b/modules/quickstart/images/create-component-review-signals.png new file mode 100644 index 00000000..28dfb8b9 Binary files /dev/null and b/modules/quickstart/images/create-component-review-signals.png differ diff --git a/modules/quickstart/images/create-component-review.png b/modules/quickstart/images/create-component-review.png new file mode 100644 index 00000000..c3316424 Binary files /dev/null and b/modules/quickstart/images/create-component-review.png differ diff --git a/modules/quickstart/images/create-component-signals.png b/modules/quickstart/images/create-component-signals.png deleted file mode 100644 index 3114b084..00000000 Binary files a/modules/quickstart/images/create-component-signals.png and /dev/null differ diff --git a/modules/quickstart/images/create-device-choose.png b/modules/quickstart/images/create-device-choose.png new file mode 100644 index 00000000..b75388b6 Binary files /dev/null and b/modules/quickstart/images/create-device-choose.png differ diff --git a/modules/quickstart/images/create-device-chosen.png b/modules/quickstart/images/create-device-chosen.png new file mode 100644 index 00000000..da2f3da2 Binary files /dev/null and b/modules/quickstart/images/create-device-chosen.png differ diff --git a/modules/quickstart/images/create-device-metadata.png b/modules/quickstart/images/create-device-metadata.png new file mode 100644 index 00000000..1ee6c103 Binary files /dev/null and b/modules/quickstart/images/create-device-metadata.png differ diff --git a/modules/quickstart/images/create-device-parts.png b/modules/quickstart/images/create-device-parts.png new file mode 100644 index 00000000..3f5ec389 Binary files /dev/null and b/modules/quickstart/images/create-device-parts.png differ diff --git a/modules/quickstart/images/create-device-pinout-empty.png b/modules/quickstart/images/create-device-pinout-empty.png new file mode 100644 index 00000000..b8b5705d Binary files /dev/null and b/modules/quickstart/images/create-device-pinout-empty.png differ diff --git a/modules/quickstart/images/create-device-pinout-review.png b/modules/quickstart/images/create-device-pinout-review.png new file mode 100644 index 00000000..a8431500 Binary files /dev/null and b/modules/quickstart/images/create-device-pinout-review.png differ diff --git a/modules/quickstart/images/create-device-properties.png b/modules/quickstart/images/create-device-properties.png deleted file mode 100644 index 176a1421..00000000 Binary files a/modules/quickstart/images/create-device-properties.png and /dev/null differ diff --git a/modules/quickstart/images/create-device-review.png b/modules/quickstart/images/create-device-review.png new file mode 100644 index 00000000..ba6d7585 Binary files /dev/null and b/modules/quickstart/images/create-device-review.png differ diff --git a/modules/quickstart/images/create-device.png b/modules/quickstart/images/create-device.png deleted file mode 100644 index 1d705a74..00000000 Binary files a/modules/quickstart/images/create-device.png and /dev/null differ diff --git a/modules/quickstart/images/create-package-category.png b/modules/quickstart/images/create-package-category.png index 90f6ede0..e4993695 100644 Binary files a/modules/quickstart/images/create-package-category.png and b/modules/quickstart/images/create-package-category.png differ diff --git a/modules/quickstart/images/create-package-metadata.png b/modules/quickstart/images/create-package-metadata.png index cf5b60f3..b23e0a4e 100644 Binary files a/modules/quickstart/images/create-package-metadata.png and b/modules/quickstart/images/create-package-metadata.png differ diff --git a/modules/quickstart/images/create-package-pads.png b/modules/quickstart/images/create-package-pads.png index 60fef37b..59487cff 100644 Binary files a/modules/quickstart/images/create-package-pads.png and b/modules/quickstart/images/create-package-pads.png differ diff --git a/modules/quickstart/images/create-project-editors.png b/modules/quickstart/images/create-project-editors.png index dab18230..9ed739ca 100644 Binary files a/modules/quickstart/images/create-project-editors.png and b/modules/quickstart/images/create-project-editors.png differ diff --git a/modules/quickstart/images/create-project-init.png b/modules/quickstart/images/create-project-init.png index bce23ee8..87d57cca 100644 Binary files a/modules/quickstart/images/create-project-init.png and b/modules/quickstart/images/create-project-init.png differ diff --git a/modules/quickstart/images/create-project-metadata.png b/modules/quickstart/images/create-project-metadata.png index abd586a1..419bcd8b 100644 Binary files a/modules/quickstart/images/create-project-metadata.png and b/modules/quickstart/images/create-project-metadata.png differ diff --git a/modules/quickstart/images/create-symbol.png b/modules/quickstart/images/create-symbol.png index 08d046c7..28a3b2ff 100644 Binary files a/modules/quickstart/images/create-symbol.png and b/modules/quickstart/images/create-symbol.png differ diff --git a/modules/quickstart/images/erc-messages.png b/modules/quickstart/images/erc-messages.png index d50f1d1b..950c88e1 100644 Binary files a/modules/quickstart/images/erc-messages.png and b/modules/quickstart/images/erc-messages.png differ diff --git a/modules/quickstart/images/libraries-create-empty.png b/modules/quickstart/images/libraries-create-empty.png new file mode 100644 index 00000000..0c69851e Binary files /dev/null and b/modules/quickstart/images/libraries-create-empty.png differ diff --git a/modules/quickstart/images/libraries-create-import.png b/modules/quickstart/images/libraries-create-import.png new file mode 100644 index 00000000..cbf8378b Binary files /dev/null and b/modules/quickstart/images/libraries-create-import.png differ diff --git a/modules/quickstart/images/libraries-create-metadata.png b/modules/quickstart/images/libraries-create-metadata.png new file mode 100644 index 00000000..3286040e Binary files /dev/null and b/modules/quickstart/images/libraries-create-metadata.png differ diff --git a/modules/quickstart/images/libraries-create.png b/modules/quickstart/images/libraries-create.png new file mode 100644 index 00000000..7c5da416 Binary files /dev/null and b/modules/quickstart/images/libraries-create.png differ diff --git a/modules/quickstart/images/libraries-install.png b/modules/quickstart/images/libraries-install.png new file mode 100644 index 00000000..3434ac6a Binary files /dev/null and b/modules/quickstart/images/libraries-install.png differ diff --git a/modules/quickstart/images/libraries-installed.png b/modules/quickstart/images/libraries-installed.png new file mode 100644 index 00000000..d08601fb Binary files /dev/null and b/modules/quickstart/images/libraries-installed.png differ diff --git a/modules/quickstart/images/libraries-open.png b/modules/quickstart/images/libraries-open.png new file mode 100644 index 00000000..8580d60f Binary files /dev/null and b/modules/quickstart/images/libraries-open.png differ diff --git a/modules/quickstart/images/library-editor-new-element.png b/modules/quickstart/images/library-editor-new-element.png index 88de7d12..215b772f 100644 Binary files a/modules/quickstart/images/library-editor-new-element.png and b/modules/quickstart/images/library-editor-new-element.png differ diff --git a/modules/quickstart/images/library-manager-create.png b/modules/quickstart/images/library-manager-create.png deleted file mode 100644 index 5112e6f5..00000000 Binary files a/modules/quickstart/images/library-manager-create.png and /dev/null differ diff --git a/modules/quickstart/images/library-manager-download.png b/modules/quickstart/images/library-manager-download.png deleted file mode 100644 index ea69326e..00000000 Binary files a/modules/quickstart/images/library-manager-download.png and /dev/null differ diff --git a/modules/quickstart/images/library-manager-installed.png b/modules/quickstart/images/library-manager-installed.png deleted file mode 100644 index 8a62b06a..00000000 Binary files a/modules/quickstart/images/library-manager-installed.png and /dev/null differ diff --git a/modules/quickstart/images/library-manager-open-editor.png b/modules/quickstart/images/library-manager-open-editor.png deleted file mode 100644 index 5d2cee6a..00000000 Binary files a/modules/quickstart/images/library-manager-open-editor.png and /dev/null differ diff --git a/modules/quickstart/images/main-window-empty.png b/modules/quickstart/images/main-window-empty.png new file mode 100644 index 00000000..f519517f Binary files /dev/null and b/modules/quickstart/images/main-window-empty.png differ diff --git a/modules/quickstart/images/main-window-libraries.png b/modules/quickstart/images/main-window-libraries.png new file mode 100644 index 00000000..db095240 Binary files /dev/null and b/modules/quickstart/images/main-window-libraries.png differ diff --git a/modules/quickstart/images/main-window-new-project.png b/modules/quickstart/images/main-window-new-project.png new file mode 100644 index 00000000..7d902cc6 Binary files /dev/null and b/modules/quickstart/images/main-window-new-project.png differ diff --git a/modules/quickstart/images/output-jobs-bom.png b/modules/quickstart/images/output-jobs-bom.png index 78259caa..3243686e 100644 Binary files a/modules/quickstart/images/output-jobs-bom.png and b/modules/quickstart/images/output-jobs-bom.png differ diff --git a/modules/quickstart/images/output-jobs-button.png b/modules/quickstart/images/output-jobs-button.png new file mode 100644 index 00000000..c022221c Binary files /dev/null and b/modules/quickstart/images/output-jobs-button.png differ diff --git a/modules/quickstart/images/output-jobs-gerber-excellon.png b/modules/quickstart/images/output-jobs-gerber-excellon.png index 786b8994..ffbddf97 100644 Binary files a/modules/quickstart/images/output-jobs-gerber-excellon.png and b/modules/quickstart/images/output-jobs-gerber-excellon.png differ diff --git a/modules/quickstart/images/output-jobs-pnp.png b/modules/quickstart/images/output-jobs-pnp.png index 95c9643e..594f84ff 100644 Binary files a/modules/quickstart/images/output-jobs-pnp.png and b/modules/quickstart/images/output-jobs-pnp.png differ diff --git a/modules/quickstart/images/output-jobs.png b/modules/quickstart/images/output-jobs.png index 851e1cac..68b09856 100644 Binary files a/modules/quickstart/images/output-jobs.png and b/modules/quickstart/images/output-jobs.png differ diff --git a/modules/quickstart/images/package-3d-model.png b/modules/quickstart/images/package-3d-model.png index 46f8d1cc..06ce7796 100644 Binary files a/modules/quickstart/images/package-3d-model.png and b/modules/quickstart/images/package-3d-model.png differ diff --git a/modules/quickstart/images/package-add-text.png b/modules/quickstart/images/package-add-text.png index d2961043..3be83de1 100644 Binary files a/modules/quickstart/images/package-add-text.png and b/modules/quickstart/images/package-add-text.png differ diff --git a/modules/quickstart/images/package-draw-polygon.png b/modules/quickstart/images/package-draw-polygon.png index 317ebb00..a3f9c524 100644 Binary files a/modules/quickstart/images/package-draw-polygon.png and b/modules/quickstart/images/package-draw-polygon.png differ diff --git a/modules/quickstart/images/package-place-pad.png b/modules/quickstart/images/package-place-pad.png index f506b360..70a1805f 100644 Binary files a/modules/quickstart/images/package-place-pad.png and b/modules/quickstart/images/package-place-pad.png differ diff --git a/modules/quickstart/images/schematic-add-component.png b/modules/quickstart/images/schematic-add-component.png new file mode 100644 index 00000000..3a3340d0 Binary files /dev/null and b/modules/quickstart/images/schematic-add-component.png differ diff --git a/modules/quickstart/images/schematic-add-device.png b/modules/quickstart/images/schematic-add-device.png index 30684e69..410e9283 100644 Binary files a/modules/quickstart/images/schematic-add-device.png and b/modules/quickstart/images/schematic-add-device.png differ diff --git a/modules/quickstart/images/schematic-add-frame.png b/modules/quickstart/images/schematic-add-frame.png index 22f4061c..d054644d 100644 Binary files a/modules/quickstart/images/schematic-add-frame.png and b/modules/quickstart/images/schematic-add-frame.png differ diff --git a/modules/quickstart/images/schematic-draw-wire.png b/modules/quickstart/images/schematic-draw-wire.png index 21fd6074..cabab20e 100644 Binary files a/modules/quickstart/images/schematic-draw-wire.png and b/modules/quickstart/images/schematic-draw-wire.png differ diff --git a/modules/quickstart/images/schematic-netlabels.png b/modules/quickstart/images/schematic-netlabels.png index 2029db3b..e22bd927 100644 Binary files a/modules/quickstart/images/schematic-netlabels.png and b/modules/quickstart/images/schematic-netlabels.png differ diff --git a/modules/quickstart/images/symbol-add-pin.png b/modules/quickstart/images/symbol-add-pin.png index 796c6891..2c02e7e6 100644 Binary files a/modules/quickstart/images/symbol-add-pin.png and b/modules/quickstart/images/symbol-add-pin.png differ diff --git a/modules/quickstart/images/symbol-add-text.png b/modules/quickstart/images/symbol-add-text.png index e9416e52..7440f51d 100644 Binary files a/modules/quickstart/images/symbol-add-text.png and b/modules/quickstart/images/symbol-add-text.png differ diff --git a/modules/quickstart/images/symbol-draw-polygon.png b/modules/quickstart/images/symbol-draw-polygon.png index aace4ab5..89f3295d 100644 Binary files a/modules/quickstart/images/symbol-draw-polygon.png and b/modules/quickstart/images/symbol-draw-polygon.png differ diff --git a/modules/quickstart/images/workspace-wizard-path.png b/modules/quickstart/images/workspace-wizard-path.png index eb3f8202..ea83ab6d 100644 Binary files a/modules/quickstart/images/workspace-wizard-path.png and b/modules/quickstart/images/workspace-wizard-path.png differ diff --git a/modules/quickstart/images/workspace-wizard-settings.png b/modules/quickstart/images/workspace-wizard-settings.png index e5823934..cf30c77a 100644 Binary files a/modules/quickstart/images/workspace-wizard-settings.png and b/modules/quickstart/images/workspace-wizard-settings.png differ diff --git a/modules/quickstart/pages/create-library-elements/component-category.adoc b/modules/quickstart/pages/create-library-elements/component-category.adoc index 52f5f5ad..242f5475 100644 --- a/modules/quickstart/pages/create-library-elements/component-category.adoc +++ b/modules/quickstart/pages/create-library-elements/component-category.adoc @@ -1,10 +1,9 @@ = Component Category First you should create a component category for the {example-part-name} -(if it doesn't exist already). Open -menu:New Library Element[Component Category], choose a suitable (generic!) -name and select a parent category. *You may first need to create the -required parent categories.* +(if it doesn't exist already). Click on btn:[New Component Category] in the +library editor, choose a suitable (generic!) name and select a parent category. +*You may first need to create the required parent categories.* [NOTE] ==== @@ -29,11 +28,14 @@ don't use a nesting level higher than 3 levels (usually 2 levels are enough). ==== -image::create-component-category.png[alt="Create component category"] +image::create-component-category.png[alt="Create Component Category"] -After clicking on btn:[Finish], your first component category is already +After clicking on btn:[Save], your first component category is already complete! It may just take a moment for the background library scan until -the new component category appears in the category trees. +the new component category appears in the category trees. Then you will see +the new category in your library: + +image::create-component-category-finished.png[alt="The New Component Category"] .Component categories available in the _LibrePCB Base_ library [%collapsible] diff --git a/modules/quickstart/pages/create-library-elements/component.adoc b/modules/quickstart/pages/create-library-elements/component.adoc index c7c11ff3..2fcde4ee 100644 --- a/modules/quickstart/pages/create-library-elements/component.adoc +++ b/modules/quickstart/pages/create-library-elements/component.adoc @@ -5,15 +5,14 @@ Because it is still very generic (beside the {example-part-name} there are many other OpAmps with exactly the same functionality), you should enter a generic name like _Single OpAmp_. -Open menu:New Library Element[Component], enter the name and assign the -component category we created previously: +Choose btn:[New Component], enter the name, assign the component category we +created previously, and specify its prefix and default value (see explanations +below): -image::create-component-metadata.png[alt="Create component"] +image::create-component-metadata.png[alt="Create Component"] -== Set Properties - -After clicking on btn:[Next] you're asked to specify some properties of -the component: +Of course you may also set more properties, but it's not strictly required. +The most important properties beside name and categories are: Schematic-Only:: Check this if the component must not appear on a board, but only in @@ -36,23 +35,28 @@ Default Value:: unsure, just leave it empty, the component editor will help you to assign a value later. -image::create-component-properties.png[alt="Set component properties"] +After specifying the properties, click on btn:[Next]. -[#add-symbols] -== Add Symbols (aka _Gates_) +== Add Gates Now you need to choose the symbols which represent the component in -schematics (also called _gates_). Most components have only one symbol, -but you can also add more than one, for example an OpAmp could have -separate symbols for power and amplifier. In our case, select the -_Single OpAmp_ symbol we created previously: +schematics, called _gates_ in this context. Most components have only +one gate, but you can also add more than one. For example a Quad OpAmp +could consist of a power gate and four amplifier gates. In our case, +select the _Single OpAmp_ symbol we created previously: + +image::create-component-add-gate.png[alt="Add Component Gate"] -image::create-component-add-symbol.png[alt="Add component symbol"] +After you added all the required gates (usually only one), it is possible +to rename the pins, which are called _signals_ in this context. Renaming is +required for example to ensure unique signal names if you add multiple +identical gates, or to simply choose more expressive names if the symbol +pin names are not suitable for a particular component. Often you can just +keep the symbol pin names as-is: -Don't forget to click on the btn:[*+*] button after closing the symbol -chooser dialog. Then click on btn:[Next]. +image::create-component-review-gate.png[alt="Review Component Gate"] -== Add Signals +== Define Signals The next step is to define all so-called signals of a component. Signals represent the "electrical interface" of a component. For example a @@ -61,28 +65,29 @@ For a component it's irrelevant whether the "real" transistor has multiple emitter pads, or an additional thermal pad and so on -- the component only specifies the three electrical signals. -LibrePCB automatically extracts the signals from the pins of the specified -symbols, so often you don't have to do this by hand. But sometimes you still -should adjust the names or properties of these signals. For our OpAmp, we +LibrePCB automatically extracts the signals from the gates you added in +the previous step, so usually you don't have to do this by hand. But +sometimes you still need to make some adjustments, like deleting unused +signals or changing the properties of some signals. For our OpAmp, we check the _Required_ checkbox of all signals to ensure the ERC will raise a warning if these signals are not connected to a net in the schematics: -image::create-component-signals.png[alt="Component signals"] - -== Connect Pins To Signals - -These signals now need to be assigned to the corresponding symbol pins -to create the connections. But since they were automatically generated -from the pins, you can just click on -btn:[Automatically assign all signals by name]: +image::create-component-review-signals.png[alt="Review Component Signals"] -image::create-component-pin-map.png[alt="Component pin-signal-map"] +== Review Pin-Signal-Map -== Component Editor +After clicking on btn:[Finish], the component is complete. It is highly +recommended to review the mapping from symbol pins to their component signals, +especially for more complicated cases like multi-gate components of if you +made any manual changes to the component signals in the previous step. If +there is any mistake, you can just correct the pin-signal-map with the +dropdowns: -After clicking on btn:[Finish], the component is complete: +image::create-component-review.png[alt="Component Editor"] -image::component-editor.png[alt="Component editor"] +In this component editor you can also make more changes, like hiding specific +symbol pin labels or specifying suffixes for gates, but that is not important +for now. [NOTE] ==== diff --git a/modules/quickstart/pages/create-library-elements/device.adoc b/modules/quickstart/pages/create-library-elements/device.adoc index 5664f922..da7a6af0 100644 --- a/modules/quickstart/pages/create-library-elements/device.adoc +++ b/modules/quickstart/pages/create-library-elements/device.adoc @@ -5,33 +5,62 @@ the component _Single OpAmp_ with the package _SOT23-5_. This is actually the only library element which is specifically for {example-part-name} -- all previously created elements are generic and reusable for other OpAmps! -Again, open menu:New Library Element[Device] and specify the name and -category for the new device: +Again, click btn:[New Device] in the library editor. Then you first have +to choose the package and the component of the device to create: -image::create-device.png[alt="Create device"] +image::create-device-choose.png[alt="Choose Package and Component"] -== Choose Component & Package +Choose the package and the component we just created in the previous steps. +The result should look like this: -After clicking btn:[Next], you need to choose the component and package -we created for this device: +image::create-device-chosen.png[alt="Review Package and Component"] -image::create-device-properties.png[alt="Device properties"] +== Specify Metadata -Then click on btn:[Finish]. +After clicking btn:[Next], specify the name of the new device. The category +is now already taken from the component, so usually this is fine. If you +have an URL to the datasheet, you may enter it also (optional): -== Connect Pads To Signals +image::create-device-metadata.png[alt="Device Metadata"] -Now you have to connect the package pads to component signals according -to the pinout in the datasheet of {example-part-name}: +Then click on btn:[Next]. -image::device-editor.png[alt="Device editor"] +== Define Pinout -Then *save the device* to finish it and quickly wait until the background -library scan completes before adding the new device to a project. +Now you need to define the pinout, i.e. the connection between the package +pads and the component signals. This needs to be don according to the pinout +in the datasheet of {example-part-name}. There are various ways of defining +the pinout, for example you can just use the dropdowns: + +image::create-device-pinout-empty.png[alt="Empty Device Pinout"] + +LibrePCB may also provide the options to define the pinout either +automatically or interactively (which is very handy!). Once you have done +that, the pinout should look like in the datasheet: + +image::create-device-pinout-review.png[alt="Review Device Pinout"] + +It's very important that the pinout is correct. When you are sure, click +btn:[Next]. + +== Add Parts + +In the last step, you can add the exact part numbers (MPNs) as listed on +distributors. This step is optional, but it helps to get accurate bill of +materials (BOMs) out of projects so it improves the ordering workflow. +To add so, add as many part numbers which are valid for this specific device +(often only one, but can be multiple) and also specify their manufacturer name: + +image::create-device-parts.png[alt="Add Parts"] + +Then click btn:[Finish] and *save the device*. You can now review the +created device and make any adjustments if needed: + +image::create-device-review.png[alt="Review Device"] And that's it! The {example-part-name} is now ready to be added to -schematics and boards. And because the categories, symbol, component -and package are very generic, you created not only one single device, -but the basement for many more devices in the future! For any additional -single-channel OpAmp (with an already available package), you need to -create only a device which is now a matter of a minute. +schematics and boards (after the library rescan has completed). And because +the categories, symbol, component and package are very generic, you created +not only one single device, but the basement for many more devices in the +future! For any additional single-channel OpAmp (with an already available +package), you need to create only a device which is now a matter of a minute. diff --git a/modules/quickstart/pages/create-library-elements/index.adoc b/modules/quickstart/pages/create-library-elements/index.adoc index 820ccc6c..2491a182 100644 --- a/modules/quickstart/pages/create-library-elements/index.adoc +++ b/modules/quickstart/pages/create-library-elements/index.adoc @@ -2,15 +2,16 @@ Sooner or later you'll need to create your own library elements in your local library you have created xref:create-local-library.adoc[previously]. -Open that library in the library manager: +Open that library now in the libraries panel: -image::library-manager-open-editor.png[alt="Open library editor"] +image::libraries-open.png[alt="Open Library Editor"] -The btn:[New Library Element] toolbutton (or kbd:[Ctrl+N]) in the -library editor is the entry point for every new library element. There -you can choose what kind of library element you want to create: +In the library editor, there are six buttons to create the six different kinds +of library elements which LibrePCB is based on (no worries, important are only +four of them). So every new library element you will create during this +tutorial, starts with one of those buttons: -image::library-editor-new-element.png[alt="New library element"] +image::library-editor-new-element.png[alt="New Library Element"] == Concept Overview diff --git a/modules/quickstart/pages/create-library-elements/package-category.adoc b/modules/quickstart/pages/create-library-elements/package-category.adoc index 2b4db074..306a1914 100644 --- a/modules/quickstart/pages/create-library-elements/package-category.adoc +++ b/modules/quickstart/pages/create-library-elements/package-category.adoc @@ -11,9 +11,9 @@ properties for its category: * *Name*: _Small-Outline Transistor (SOT)_ * *Parent*: _Transistor_ (let's assume this category exists already) -image::create-package-category.png[alt="Create package category"] +image::create-package-category.png[alt="Create Package Category"] -With a click on btn:[Finish] the package category is complete and +With a click on btn:[Save] the package category is complete and after a moment the new category is ready to use. .Package categories available in the _LibrePCB Base_ library diff --git a/modules/quickstart/pages/create-library-elements/package.adoc b/modules/quickstart/pages/create-library-elements/package.adoc index 3fd9c80a..79805843 100644 --- a/modules/quickstart/pages/create-library-elements/package.adoc +++ b/modules/quickstart/pages/create-library-elements/package.adoc @@ -1,16 +1,18 @@ = Package Then you need to create the package for the {example-part-name}, which is -called _SOT23-5_. As usual, open menu:New Library Element[Package] and -specify the name and category: +called _SOT23-5_. As usual, click btn:[New Package] and specify the name +and category of the new package. In addition, it's recommended to also +specify the assembly type, i.e. whether this is a through-hole (THT) or +surface-mount (SMT) device: -image::create-package-metadata.png[alt="Create package"] +image::create-package-metadata.png[alt="Create Package"] == Add Pads Now you need to specify all pads of the package. The _SOT23-5_ has 5 pads named from _1_ to _5_, so you can just enter the term _1..5_ and -click on the btn:[+] button: +click on the btn:[+] button (or press kbd:[Return]): image::create-package-pads.png[alt="Add package pads"] @@ -31,13 +33,15 @@ few ;-) After clicking on btn:[Finish], you can draw the footprint. It's recommended to start with placing the pads: -. Set a reasonable grid interval with the btn:[Grid Properties] toolbutton. +. Set a reasonable grid interval in the status bar, if desired. You can either + press kbd:[F4] and type in the new interval, or hover with the mouse on the + number and scroll up or down to change the value. . Start either the btn:[Add THT Pad] or btn:[Add SMT Pad] tool. . Choose the package pad to place and specify its properties, most notably the shape and size. . Place the pad with a click. Press kbd:[R] to rotate it while moving. -image::package-place-pad.png[alt="Place pad"] +image::package-place-pad.png[alt="Place Pad"] [NOTE] ==== @@ -51,7 +55,7 @@ the pad's context menu (right-click) afterwards to enter exact values. Then add graphical object just xref:create-library-elements/symbol.adoc#draw-polygons[as done in the symbol editor]: -image::package-draw-polygon.png[alt="Draw polygon"] +image::package-draw-polygon.png[alt="Draw Polygon"] [NOTE] ==== @@ -87,14 +91,13 @@ the background library scan picks up the new package. == Add 3D Model If you have a STEP file of the package, you can add it as a 3D model to the -package. Switch to the 3D mode with menu:View[Toggle 2D/3D Mode] or by -pressing kbd:[Ctrl+3]. Then click on the btn:[+] button to import the -STEP file (this may take a while): +package. Switch to the tab btn:[3D Models] (kbd:[Ctrl+3]) and click on the +btn:[+] button to import the STEP file (this may take a while): image::package-3d-model.png[alt="Add 3D model"] -If required, the position and rotation can be adjusted in the footprint -variants table. +If required, the position and rotation can be adjusted at the bottom right +(note that kbd:[Return] needs to be pressed to accept new values). == Recommendations diff --git a/modules/quickstart/pages/create-library-elements/symbol.adoc b/modules/quickstart/pages/create-library-elements/symbol.adoc index 9430b25f..e1224a6b 100644 --- a/modules/quickstart/pages/create-library-elements/symbol.adoc +++ b/modules/quickstart/pages/create-library-elements/symbol.adoc @@ -1,10 +1,10 @@ = Symbol -Now we need to create a symbol for the OpAmp. Open -menu:New Library Element[Symbol], choose a name and the component -category we just created and click btn:[Finish]: +Now we need to create a symbol for the OpAmp. Click on btn:[New Symbol] in the +library editor, choose a name and the component category we just created and +click btn:[Next]: -image::create-symbol.png[alt="Create symbol"] +image::create-symbol.png[alt="Create Symbol"] == Draw Polygons @@ -19,6 +19,9 @@ Now let's draw the graphical objects of the symbol: image::symbol-draw-polygon.png[alt="Draw polygon"] +_Note that to get a bigger working area, we collapsed the side panel by +clicking on the currently active panel button in the sidebar._ + == Add Texts Then you should *add at least two text objects*: diff --git a/modules/quickstart/pages/create-local-library.adoc b/modules/quickstart/pages/create-local-library.adoc index 184cf372..1bcf212a 100644 --- a/modules/quickstart/pages/create-local-library.adoc +++ b/modules/quickstart/pages/create-local-library.adoc @@ -4,21 +4,31 @@ In addition to the (read-only) remote libraries, you should create a personal, so-called _local_ library. This is the place where you'll add your own symbols, footprints etc. later. -To do so, go to the _Create local library_ tab, optionally enter some -metadata (default values are good enough) and click on btn:[Create Library]: +To do so, click on the to the btn:[Create a New Library] button, optionally +enter some metadata (default values are usually good enough) and click on +btn:[Create Library]: -image::library-manager-create.png[alt="Create Library"] +image::libraries-create.png[alt="Create Library"] -If you're curious how the library looks like, select your library on the left -and then click on btn:[Open Library Editor] (or just double-click on your -library): +Afterwards you could enter more metadata of the library, but that's usually +not required so you can just click on btn:[Next]: -image::library-manager-open-editor.png[alt="Open Library Editor"] -You'll see an empty library editor since the library doesn't contain any -elements yet. +image::libraries-create-metadata.png[alt="Library Metadata"] -*Your workspace setup is now complete and ready to start creating your -first PCB project!* You can close both the library editor and the library -manager for now. We'll come back to the library editor later when we need to +If you switched from KiCad or Eagle to LibrePCB, you could import your +existing libraries now. However, this can also be done at any time later, +so you can just choose btn:[Finish] for now: + +image::libraries-create-import.png[alt="Library Import"] + +That's it, your library is now created and is ready to get some library elements +added to it, as explained in a later chapter. At the moment you will just see +an empty library. At the moment we don't need the library editor, anymore, so +you can close it with the btn:[X] button in the _Open Documents_ panel: + +image::libraries-create-empty.png[alt="Empty New Library"] + +*Your workspace setup is now complete and ready to start creating your first +PCB project!* We'll come back to the library editor later when we need to xref:create-library-elements/index.adoc[create our own library elements]. diff --git a/modules/quickstart/pages/create-project/board.adoc b/modules/quickstart/pages/create-project/board.adoc index 84eeafb4..5da259ae 100644 --- a/modules/quickstart/pages/create-project/board.adoc +++ b/modules/quickstart/pages/create-project/board.adoc @@ -1,20 +1,30 @@ = Create Board Once the schematic is (more or less) complete, you can start designing the -PCB in the board editor. If the board editor window is not opened already, -click on the btn:[Board Editor] toolbutton to open it. +PCB in the board editor. For this, open the board in the _Open Documents_ +panel and set up some initial settings as described below: + +image::board-init.png[alt="Initialize Board"] + +== Setup Design Rules + +Different PCB manufacturers have different capabilities about what structures +they are able to produce (e.g. minimum copper trace width). LibrePCB can +verify if your board conforms to the manufacturers capabilities, but for this +you need to set up the so-called _Design Rules_. If you intend to order your +PCB at https://librepcb.org/features/fabrication-service/[LibrePCB Fab], +you can choose the corresponding rules (see screenshot above). If you +are unsure, just go with the default rules. == Set Grid Properties All board editor tools (e.g. the _Draw Trace_ tool) work on a particular grid interval, i.e. the cursor snaps on a multiple of that value. The -value might depend on the task you're working on so probably you'll need +value might depend on the task you're working on, so probably you'll need to change it several times while working on the board. -You can change it at any time with the btn:[Grid Properties] toolbutton -(or with kbd:[F4]): - -image::board-grid-properties.png[alt="Grid properties"] +You can change it at any time in the status bar, see screenshot above +(press kbd:[F4] to edit, or hover with the mouse and scroll up/down). == Draw Outlines @@ -44,7 +54,7 @@ for the milling cutter! The PCB manufacturer will automatically offset the outline polygons to calculate the actual paths for the cutter. ==== -image::board-outlines.png[alt="Draw board outlines"] +image::board-outlines.png[alt="Draw Board Outlines"] [NOTE] ==== @@ -87,14 +97,15 @@ kbd:[Ctrl+3]. For every component in the schematic, you need to place a device in the board (except schematic-only components, like the schematic frame). -. Open the _Place Devices_ dock (menu:View[Go to Dock > Place Devices]). +. Open the _Place Devices_ panel in the sidebar (kbd:[Ctrl + Alt + P]). . Select a component to place. . Select the desired device for that component (not needed if the device is already specified in the schematics). . Choose the exact footprint to place, if there are multiple. Most packages have only one footprint -- if not, the default footprint is pre-selected. -. Click btn:[Add] and place the device with the cursor on the board. Press - kbd:[R] to rotate or kbd:[F] to flip to the other board side while moving. +. Click btn:[Place Selected Device] and place the device with the cursor on + the board. Press kbd:[R] to rotate or kbd:[F] to flip to the other board + side while moving. image::board-add-device.png[alt="Add device to board"] @@ -103,7 +114,7 @@ Repeat these steps until there are no more unplaced components. [TIP] ==== If you want to use the same device and footprint for all instances of -a particular component, use the btn:[Add Similar] button to add all +a particular component, use the btn:[Place Similar] button to add all at once. ==== @@ -120,7 +131,7 @@ By the way, it's even possible to replace devices after adding them to the board. For example you can replace a 0603 resistor by a 0805 resistor using the btn:[Change Device] context menu item (right-click): -image::board-change-device.png[alt="Change device"] +image::board-change-device.png[alt="Change Device"] Exactly the same way you can switch to a different footprint, just use the btn:[Change Footprint] context menu item instead. @@ -131,7 +142,11 @@ As soon as you add devices to the board, airwires will appear to show the missing traces. Start the btn:[Draw Trace] tool and specify the trace settings in the toolbar. Then click on a pad to start a new trace: -image::board-draw-trace.png[alt="Draw trace"] +image::board-draw-trace.png[alt="Draw Trace"] + +In the _Layers_ panel (in the left sidebar) you may show or hide individual +layers to keep the working area clear of irrelevant objects during trace +drawing. [NOTE] ==== @@ -158,16 +173,16 @@ If you need planes (also known as _copper pours_, i.e. filled copper areas to create electrical connections), proceed as follows: . Start the btn:[Draw Plane] tool. -. Specify the electrical net and copper layer in the toolbar. +. Specify the copper layer and the electrical net in the toolbar. . Add vertices with mouse clicks. To fill the whole board, an approximate outline is good enough since it will be clipped automatically. -image::board-draw-plane.png[alt="Draw plane"] +image::board-draw-plane.png[alt="Draw Plane"] One the plane area is calculated, it appears with a filled area. As you can see, the area is automatically clipped to the board outline: -image::board-plane.png[alt="Filled plane"] +image::board-plane.png[alt="Filled Plane"] [IMPORTANT] ==== @@ -208,48 +223,47 @@ if needed (e.g. if not located on the grid interval). == Design Rule Check Once your design is complete, you should run the design rule check (DRC) -to ensure there are no critical mistakes. +to ensure there are no critical mistakes. The check will report missing +connections, short circuits and many more possible issues. -But first you should check or adjust the design rules which are -used to calculate via/pad restrings and cream/stop mask clearances. -For that, open menu:Board[Board Setup] or press kbd:[F7] and navigate -to the *Design Rules* tab: +But first you should review/adjust the board setup parameters, including +the design rules and DRC settings. The design rules (second tab) are +used to calculate for example the via/pad restrings and cream/stop mask +clearances, while the DRC settings (third tab) are used only for the +verification of the design. This sounds a bit complicated, but no worries, +it's often not really important so you can just keep all the default values +if you are unsure (you might have initialized some settings anyway already +by choosing a PCB manufacturer earlier). -image::board-design-rules.png[alt="Design rules"] +The board setup is available from the _Open Documents_ panel (or with kbd:[F7]): + +image::board-setup-dialog.png[alt="Board Setup Dialog"] [NOTE] ==== -Actually it's better to set the design rules _before_ drawing traces and +Actually it's better to set all these settings _before_ drawing traces and adding planes since they affect the clearances. It is only moved to the end of the boards tutorial to keep the focus on the design workflow. - -Fortunately, usually the default values are fine. So if you're unsure -about these values, just keep the defaults. +Fortunately, usually the default values are fine, so it's not critical +to derive from the standard workflow for your first PCB design. ==== -Afterwards, navigate to the next tab called *DRC Settings* and configure -the settings according the capabilities of your desired PCB manufacturer: - -image::board-drc-settings.png[alt="DRC settings"] - -If you're unsure, just skip this for now (the default values are usually fine). - -Once all settings are configured, open menu:Board[Design Rule Check] or -press kbd:[F8] to run the DRC. This can take some time. The DRC dock widget -should automatically appear to display the result: +Once all settings are configured, trigger menu:Project[Run Design Rule Check] +or press kbd:[F8] to run the DRC. This can take some time. The DRC panel should +automatically appear to display the result: -image::board-drc-dock.png[alt="DRC dock"] +image::board-drc.png[alt="DRC Panel"] Then just click on a message to highlight the issue in the board editor. -Or click on btn:[?] to get some more information about a message. If you're -sure a message is not relevant, you could approve it with btn:[✔] but -usually warnings/errors should be fixed instead of approved. +If you're sure a message is not relevant, you could approve it with the eye +symbol but usually warnings/errors should be fixed instead of approved. [TIP] ==== There's also a tool named *Quick Check* which runs only the most important -checks of the DRC. It is intended to be run regularly while working on the -layout and can be triggered with kbd:[Shift + F8]. +checks of the DRC and is therefore much faster. It is intended to be run +regularly while working on the layout and can be triggered with +kbd:[Shift + F8]. ==== == 3D Preview @@ -257,8 +271,8 @@ layout and can be triggered with kbd:[Shift + F8]. Once you fixed all ERC issues, it's highly recommended to review the PCB in the 3D viewer. If anything with the board outline, the device placement or something like that is not correct, chances are high you -will notice that in the 3D view. Click on menu:View[Toggle 2D/3D Mode] or -press kbd:[Ctrl+3] to open it (press it two times for fullscreen): +will notice that in the 3D view. Click on the board's btn:[3D] button or +press kbd:[Ctrl+3] to open it: image::board-3d.png[alt="3D viewer"] diff --git a/modules/quickstart/pages/create-project/index.adoc b/modules/quickstart/pages/create-project/index.adoc index a8955bf7..21319d38 100644 --- a/modules/quickstart/pages/create-project/index.adoc +++ b/modules/quickstart/pages/create-project/index.adoc @@ -2,9 +2,9 @@ In LibrePCB, schematics and boards are always part of a project, so before creating schematics and boards you first need to create a project for every -PCB. Click on btn:[New Project] in the control panel: +PCB. Click on btn:[New Project] in the _Home_ panel: -image::control-panel-new-project.png[alt="New project button"] +image::main-window-new-project.png[alt="New Project Button"] Then specify some project metadata: @@ -34,6 +34,7 @@ accept the default values: image::create-project-init.png[alt="New project initialization"] -After clicking on btn:[Finish], the schematic- and board editors show up: +After clicking on btn:[Finish], the project is opened in the _Open Documents_ +panel and the schematic editor shows up: -image::create-project-editors.png[alt="Project editor"] +image::create-project-editors.png[alt="Project Editors"] diff --git a/modules/quickstart/pages/create-project/order.adoc b/modules/quickstart/pages/create-project/order.adoc index f5b6e9d6..52c47d02 100644 --- a/modules/quickstart/pages/create-project/order.adoc +++ b/modules/quickstart/pages/create-project/order.adoc @@ -14,8 +14,7 @@ Just skip this section and go to <>. == LibrePCB Fab -To start the order process, click the btn:[Order PCB] toolbutton in either -the schematic- or board editor: +To start the order process, switch to the _Order PCB_ panel (kbd:[F12]): image::board-order.png[alt="Order PCB"] @@ -26,7 +25,7 @@ where you can review and continue the order. [TIP] ==== Alternatively you could also export your LibrePCB project as a `*.lppz` -archive (menu:File[Export > Export *.lppz Archive]) and then upload +archive (menu:Project[Export *.lppz Archive]) and then upload this file with the web browser on https://fab.librepcb.org. This procedure might be useful if for some reason the direct upload is not desired or doesn't work (e.g. due to a corporate firewall). @@ -36,13 +35,13 @@ desired or doesn't work (e.g. due to a corporate firewall). Instead of using <>, of course you can also generate the production data manually and forward these files to any PCB manufacturer -you like. +you like. For this, open the *Output Jobs* dialog from the sidebar (kbd:[F11]): -Currently there exist multiple ways how to generate production data, but -it's recommended to use the *Output Jobs* feature for that. Click on -menu:File[Output Jobs] or press kbd:[F11] to open the corresponding window: +image::output-jobs-button.png[alt="Output Jobs Button"] -image::output-jobs.png[alt="Output jobs"] +This opens all output jobs of the project in a new window: + +image::output-jobs.png[alt="Output Jobs"] Then for any output you like to generate, click on the btn:[+] button at the bottom left. See the following sections for details on the available jobs. @@ -75,10 +74,9 @@ If required, the settings can now be adjusted manually. [WARNING] ==== It's highly recommended to cross-check the generated files with third-party -tools like http://gerbv.geda-project.org[gerbv] or -https://gerber.ucamco.com/[the reference Gerber viewer]. LibrePCB -developers are not responsible for any implications caused by wrong -production data. +tools like https://gerber.ucamco.com/[the reference Gerber viewer] (preferred) +or http://gerbv.geda-project.org[gerbv]. LibrePCB developers are not +responsible for any implications caused by wrong production data. ==== === Pick&Place Data @@ -91,6 +89,7 @@ image::output-jobs-pnp.png[alt="Pick&place output job"] === Bill of Materials To get a bill of materials (BOM), add the output job -*Bill Of Materials (+*+.csv)*: +*Bill Of Materials (+*+.csv)*, and/or the interactive HTML BOM if you plan +to assembly your board by hand: image::output-jobs-bom.png[alt="BOM output job"] diff --git a/modules/quickstart/pages/create-project/schematics.adoc b/modules/quickstart/pages/create-project/schematics.adoc index 9dc39f77..f92e091b 100644 --- a/modules/quickstart/pages/create-project/schematics.adoc +++ b/modules/quickstart/pages/create-project/schematics.adoc @@ -1,32 +1,35 @@ = Create Schematics -Before starting with the board layout, a schematic will be needed. So -let's see how to draw a schematic. +Before starting with the board layout, a schematic will be needed. At the +moment, it is not possible to create boards without creating a schematic +first (we may change that in future, though we recommend anyway to always +create a schematic first). So let's see how to draw a schematic. -== Add Frame +== Add Drawing Frame -First, you may want to add a frame to the schematic. Click on -btn:[Add Component] in the toolbar and select a schematic frame: +First, you may want to add a drawing frame to the schematic. Click on the +btn:[Add Drawing Frame] button which is already suggested, or alternatively +use the btn:[Add Component] button from the toolbar. Then choose the +desired paper format and click btn:[OK] to add the frame to the schematic: -image::schematic-add-frame.png[alt="Add schematic frame"] +image::schematic-add-frame.png[alt="Add Drawing Frame"] -After clicking on btn:[OK], the selected component is attached to the -cursor. Click on the origin of your schematics to place the frame at -coordinate (0, 0). - -Press kbd:[Esc] to finish the placement. The _Add Component_ dialog pops -up again to choose the next component. Press kbd:[Esc] again to leave the -tool. +Note that we now collapsed the left side panel to have more space for the +drawing area. [#add-devices] == Add Components/Devices -Now add all the resistors, capacitors, ICs etc. the same way to your -schematic. However, for real parts (in contrast to the schematic frame) -the dialog lets you select a concrete device. Here an explanation about -the displayed information: +Now add all the resistors, capacitors, ICs etc. with the corresponding tool +buttons to your schematic: + +image::schematic-add-component.png[alt="Add Component Toolbar"] -image::schematic-add-device.png[alt="Add device"] +However, for real parts (in contrast to the schematic frame), the +_Add Component_ dialog lets you select a concrete device. Here an +explanation about the displayed information: + +image::schematic-add-device.png[alt="Add Device"] You can choose between adding a *component* a *device* or a *part*: @@ -44,6 +47,11 @@ However, it's your choice whether to select it _now_ or _later_ when starting with the board layout. This allows to draw the complete schematics even if various packages and devices do not exist yet in your libraries. +After clicking on btn:[OK], the selected component is attached to the +cursor. Click on a point in your schematics to place the component. Press +kbd:[Esc] to finish the placement. The _Add Component_ dialog pops up again +to choose the next component. Press kbd:[Esc] again to leave the tool. + [TIP] ==== While placing components, press kbd:[R] to rotate or kbd:[M] to mirror. With @@ -72,9 +80,10 @@ will appear in the _Add Component_ dialog and are ready to be used. == Draw Wires Once your schematic contains some components, the pins can be connected with -the btn:[Draw Wire] tool. Just click on a pin to start a new wire: +the btn:[Draw Wire] tool. In this tool, just click on a pin to start a new +wire: -image::schematic-draw-wire.png[alt="Draw wire"] +image::schematic-draw-wire.png[alt="Draw Wire"] [IMPORTANT] ==== @@ -95,7 +104,7 @@ To keep schematics clean and readable, net labels may be added. They allow to explicitly specify net names, and to create hidden connections between wires of the same net name. -. Start the btn:[Add Net Label] tool. +. Start the tool btn:[Add Label to Net or Bus]. . click on the wire where to attach the label. . Click to specify the label position. @@ -104,7 +113,7 @@ wires of the same net name. While placing labels, press kbd:[R] to rotate. ==== -image::schematic-netlabels.png[alt="Add net labels"] +image::schematic-netlabels.png[alt="Add Net Labels"] [NOTE] ==== @@ -116,7 +125,7 @@ automatically be connected, even accross schematic pages. For larger projects, you may want to split the schematics into multiple sheets for better readability. Just add more sheets with -menu:Schematic[New Sheet], then add a frame and devices the same way. +menu:Project[New Sheet], then add a frame and devices the same way. Use supply symbols and net labels to connect nets across pages. == Electrical Rule Check @@ -125,10 +134,12 @@ At latest when you're finished with the schematics, you should check if there are no critical ERC messages. The ERC does not need to be triggered since it is automatically updated. -Open the ERC dock with menu:View[Go to Dock > Electrical Rule Check (ERC)]: +Open the ERC panel with the corresponding sidebar button while a schematic +is opened: image::erc-messages.png[alt="ERC messages"] -Click on btn:[?] to get some more information about a message. If you're -sure a message is not relevant, you could approve it with btn:[✔] but +Click on a message to get more information about it and to see its +location (if available) in the schematics. If you're sure a message is not +relevant, you could approve it with the eye symbol next to them, but usually warnings/errors should be fixed instead of approved. diff --git a/modules/quickstart/pages/create-workspace.adoc b/modules/quickstart/pages/create-workspace.adoc index 4df499dc..33b841f5 100644 --- a/modules/quickstart/pages/create-workspace.adoc +++ b/modules/quickstart/pages/create-workspace.adoc @@ -9,23 +9,23 @@ LibrePCB version. You can just accept the default workspace location (you could still move it to another location afterwards, if desired): -image::workspace-wizard-path.png[alt="Choose workspace"] +image::workspace-wizard-path.png[alt="Choose Workspace"] If the selected path does not contain a workspace yet, clicking on btn:[Next] will show a page to choose the most important settings: -image::workspace-wizard-settings.png[alt="Workspace settings"] +image::workspace-wizard-settings.png[alt="Workspace Settings"] It is recommended to select at least your *preferred norm* and *length unit* since these usually depend on where you're living. [NOTE] ==== -You can change these settings at any time later in the control panel under -menu:Extras[Workspace Settings]. +You can change these settings at any time later in the main window under +menu:File[Workspace Settings]. ==== -After clicking btn:[Finish], the control panel shows up and you're ready to +After clicking btn:[Finish], the main window shows up and you're ready to start using LibrePCB! -image::control-panel-empty.png[alt="Control panel"] +image::main-window-empty.png[alt="Main Window"] diff --git a/modules/quickstart/pages/install-remote-libraries.adoc b/modules/quickstart/pages/install-remote-libraries.adoc index 7ef6d089..0053e253 100644 --- a/modules/quickstart/pages/install-remote-libraries.adoc +++ b/modules/quickstart/pages/install-remote-libraries.adoc @@ -4,24 +4,25 @@ Before you can start creating new projects, you need to add some libraries to your workspace. Libraries contain various kinds of elements which can be added to schematics and boards (e.g. symbols, footprints and devices). -Click on btn:[Library Manager] in the control panel: +Click on btn:[Libraries] in the side bar: -image::control-panel-library-manager.png[alt="Library manager button"] +image::main-window-libraries.png[alt="Libraries Button"] -The library manager immediately fetches the list of available libraries from +LibrePCB then immediately fetches the list of available libraries from the Internet. Most of these libraries are hosted at https://github.com/LibrePCB-Libraries. -The most important library is _LibrePCB Base_ because it contains commonly -used library elements like resistors or diodes. It is highly recommended to -install at least this library. However, you can even simply install all the -available libraries at once: +Then you can select the libraries you like to install. The most important +library is _LibrePCB Base_ because it contains commonly used library elements +like resistors or diodes. It is highly recommended to install at least this +library. However, you can even simply install all the available libraries at +once by clicking on btn:[Toggle All]: -image::library-manager-download.png[alt="Download Libraries"] +image::libraries-install.png[alt="Install Libraries"] -Later you can keep the installed libraries up to date exactly the same way. -Just open the library manager from time to time to see which libraries can -be updated to a new version. +Later you can keep the installed libraries up to date the same way -- once +you open the libraries panel, all outdated libraries will automatically be +marked for update and you only need to click on the btn:[Apply] button. [NOTE] ==== @@ -47,13 +48,13 @@ them to manage your libraries (instead of the library manager), just clone the libraries into the subdirectory `data/libraries/local/` in your workspace. ==== -After the selected libraries have been downloaded, they will appear in the -list of installed libraries on the left side of the library manager: +After the selected libraries have been installed, they will have a green check +mark to indicate that they are up to date: -image::library-manager-installed.png[alt="Installed Libraries"] +image::libraries-installed.png[alt="Installed Libraries"] Note that after the libraries were installed, it takes a moment to create an index of all the contained elements. This process automatically runs in background and is indicated with a progress bar at the bottom right of all -main windows. The installed libraries are ready to use once the progress bar +main window. The installed libraries are ready to use once the progress bar disappears. diff --git a/modules/user-manual/pages/layers.adoc b/modules/user-manual/pages/layers.adoc index 4c4f9839..cf98cfc6 100644 --- a/modules/user-manual/pages/layers.adoc +++ b/modules/user-manual/pages/layers.adoc @@ -106,11 +106,12 @@ coupled with the _Board Outlines_ layer. ==== Plated Board Cutouts:: -+ -[CAUTION] -==== -Not supported yet (ignored in the Gerber export)! -==== + Any plated board cut-outs (millings) more complex than slotted pads + must be drawn on this layer as polygons or circles. The line represents + the board edge after manufacturing. It's highly recommended to set its + width to zero since it has no meaning. + This layer will be exported to Gerber files (into the same file as the + _Board Outlines_ layer) and is usually contained when printing the board. Measures:: General purpose layer for graphics and texts, e.g. to add manual @@ -230,11 +231,10 @@ Not supported yet (ignored in the Gerber export)! ==== Top/Bottom Glue:: -+ -[CAUTION] -==== -Not supported yet (ignored in the Gerber export)! -==== + Used to draw areas as polygons or circles where glue should be applied on + the board to hold components during overhead soldering. This requires to + add a dedicated output job for exporting, i.e. by default the glue mask + is not exported. But in almost every case, glue masks are not needed anyway. Top/Inner/Bottom Copper:: Should be pretty clear 🙂 Inner layers are numbered from top to bottom, diff --git a/modules/user-manual/pages/project-editor/output-jobs.adoc b/modules/user-manual/pages/project-editor/output-jobs.adoc index 223b54f6..33bb1940 100644 --- a/modules/user-manual/pages/project-editor/output-jobs.adoc +++ b/modules/user-manual/pages/project-editor/output-jobs.adoc @@ -6,7 +6,7 @@ documentation purposes. LibrePCB provides a unified interface to generate any kind of production data for a project. It is called _Output Jobs_. From either the schematic- or board editor, open the _Output Jobs_ dialog -with the menu item menu:File[Output Jobs...] or by pressing kbd:[F11]: +with the menu item menu:Project[Output Jobs...] or by pressing kbd:[F11]: image::quickstart:output-jobs.png[alt="Output jobs"] diff --git a/tools/process_image.sh b/tools/process_image.sh index 05787c3b..21685e1c 100755 --- a/tools/process_image.sh +++ b/tools/process_image.sh @@ -1,31 +1,45 @@ #!/bin/sh -TOPLEFT_COLOR=`magick $@ -format "%[hex:u.p{0,0}]\n" info:` -if [ "$TOPLEFT_COLOR" = "00000000" ] -then - echo "Has top corners" - TOP_CORNERS="( mpr:arc ) -gravity northwest -composite ( mpr:arc -flop ) -gravity northeast -composite" +flag=$(identify -format '%[processed]' $@) +if [ "$flag" = "true" ]; then + echo "Skipping $@ (already processed)" else - echo "Does not have top corners" - TOP_CORNERS="" -fi + echo "Process $@..." -BORDER_COLOR=`magick $@ -format "%[hex:u.p{0,20}]\n" info:` -if [ "$BORDER_COLOR" = "D3D3D3FF" ] -then - echo "Border already added, skipping." -else - convert $@ \ - \( +clone -alpha extract \ - \( -size 15x15 xc:black -draw 'fill white circle 15,15 15,0' -write mpr:arc +delete \) \ - $TOP_CORNERS \ - \) \ - -alpha off -compose CopyOpacity -composite -compose over \ - \( -clone 0 -fill "#D3D3D3FF" -colorize 100% \) \ - \( -clone 0 -alpha extract -virtual-pixel black -morphology edgein octagon:1 \) \ - -compose over -composite \ - \( +clone -background black \) \ - +swap -background none -layers merge +repage $@ + # Remove drop shadows (if any) + #convert $@ -channel A -threshold 75% +channel -trim $@ + + # If it's a window, make rounded corners and add a window border. + TOPLEFT_COLOR=`magick $@ -format "%[hex:u.p{0,0}]\n" info:` + if [ "$TOPLEFT_COLOR" = "00000000" ]; then + + # Extract left/right/bottom borders and convert light colors to border color + convert $@ -alpha set -channel RGBA -fx 'i==0 || i==w-1 || j==h-1 ? u : transparent' \ + -colorspace HSL -channel lightness -separate +channel \ + -threshold 50% -transparent black -fill "#343434" -colorize 100% \ + "${@/.png/~1.png}" + + # Overlay manual border colors with input image + convert $@ "${@/.png/~1.png}" -composite $@ + # Make nice round corners at top left and right + convert $@ \ + \( +clone -alpha extract \ + \( -size 17x17 xc:black -draw 'fill white circle 17,17 17,0' -write mpr:arc +delete \) \ + \( mpr:arc \) -gravity northwest -composite \ + \( mpr:arc -flop \) -gravity northeast -composite \ + \) \ + -alpha off -compose CopyOpacity -composite -compose over \ + \( -clone 0 -fill "black" -colorize 100% \) \ + +swap -background none -layers merge +repage $@ + fi + + # Remove temporary images + rm "${@/.png/~1.png}" + + # Reduce file size pngcrush -rem allb -brute -reduce -ow $@ -fi \ No newline at end of file + + # Set flag that this file has been processed + convert $@ -set "processed" "true" $@ +fi