LibrePCB A new, powerful and intuitive EDA tool for everyone Danilo - - PowerPoint PPT Presentation

librepcb
SMART_READER_LITE
LIVE PREVIEW

LibrePCB A new, powerful and intuitive EDA tool for everyone Danilo - - PowerPoint PPT Presentation

LibrePCB A new, powerful and intuitive EDA tool for everyone Danilo Bargen, Raphael Nestler June 15, 2019 CoSin 2019 Goals For Today Goals Intro to LibrePCB Library Concepts Install LibrePCB Create a LED PCB 1/23 Getting


slide-1
SLIDE 1

LibrePCB

A new, powerful and intuitive EDA tool for everyone

Danilo Bargen, Raphael Nestler June 15, 2019

CoSin 2019

slide-2
SLIDE 2

Goals For Today

Goals

  • Intro to LibrePCB
  • Library Concepts
  • Install LibrePCB
  • Create a LED PCB

1/23

slide-3
SLIDE 3

Getting Started

https://download.librepcb.org/nightly_builds/master/ Linux librepcb-nightly-linux-x86 64.AppImage macOS librepcb-nightly-mac-x86 64.dmg Windows librepcb-installer-nightly-windows-x86.exe

2/23

slide-4
SLIDE 4

About LibrePCB

Free/OpenSource EDA Suite

  • Multiplatform 
  • Written from scratch in C++11/Qt5
  • Development started in 2013, first stable release in late 2018
  • Website: https://librepcb.org/
  • GitHub: https://github.com/LibrePCB/LibrePCB

3/23

slide-5
SLIDE 5

Motivation

Frustration about existing EDA tools

  • Library system
  • File format
  • Usability

4/23

slide-6
SLIDE 6

Library Management

Problem

  • Different library types (e.g. *.lib, *.pretty, *.3dshapes)
  • Tools do not (completely) handle library management
  • No integrated tool to install and update libraries
  • No dependency management
  • Complicated project library management

5/23

slide-7
SLIDE 7

Library Management

Problem

  • Different library types (e.g. *.lib, *.pretty, *.3dshapes)
  • Tools do not (completely) handle library management
  • No integrated tool to install and update libraries
  • No dependency management
  • Complicated project library management

Result

  • It’s up to the user to manage his libraries (which is a pain)

5/23

slide-8
SLIDE 8

Library Management

5/23

slide-9
SLIDE 9

Library Management

5/23

slide-10
SLIDE 10

Library Management

5/23

slide-11
SLIDE 11

Library Management

?

5/23

slide-12
SLIDE 12

Library Management

Solution

  • Integrated library manager with dependency management
  • Libraries can contain any entity type (symbols, footprint, ...)
  • The application handles basically everything for you

5/23

slide-13
SLIDE 13

Library References

Problem

  • Everything is referenced by name
  • References across libraries not possible in some tools

6/23

slide-14
SLIDE 14

Library References

Problem

  • Everything is referenced by name
  • References across libraries not possible in some tools

Result

  • Broken references after changing names
  • Name conflicts because they are not unique
  • Many duplicates accross different libraries

6/23

slide-15
SLIDE 15

Library References

Problem

  • Everything is referenced by name
  • References across libraries not possible in some tools

Result

  • Broken references after changing names
  • Name conflicts because they are not unique
  • Many duplicates accross different libraries

Solution

  • Every entity is identified by a random UUID
  • References always by UUID, never by name
  • Entities can be referenced across different libraries

6/23

slide-16
SLIDE 16

Library References

(librepcb_symbol (uuid f0061936-5169-49c9-bfa5-4efc8108cd1c ) (name "Connector 1x4") ... (pin 169d6728-7108-4600-aa48-765711db01bc (name "1") (pos -20.32 40.64) (rot 0.0) (length 5.08) ) (pin 1c49822e-fd83-452a-a7a6-f4ae1357a0c7 (name "2") (pos 20.32 -40.64) (rot 180.0) (length 5.08) ) (pin 208bd2b9-ed07-4df5-b5ab-a89fb03378d5 (name "3") (pos 20.32 -38.1) (rot 180.0) (length 5.08) ) (pin 2684075c-566e-43fb-b025-17cf43badaf4 (name "4") (pos 20.32 -12.7) (rot 180.0) (length 5.08) ) )

7/23

slide-17
SLIDE 17

Symbol Variants

Problem

  • Impossible to have different symbols for the same component

e.g. Resistor:

8/23

slide-18
SLIDE 18

Symbol Variants

Problem

  • Impossible to have different symbols for the same component

e.g. Resistor: Result

  • Duplicate components (same functionality, different symbol)

8/23

slide-19
SLIDE 19

Symbol Variants

Device Component Symbol R-0603 R-0805 R R-1206

9/23

slide-20
SLIDE 20

Symbol Variants

Device Component Symbol R-0603 R-0805 R R-1206

9/23

slide-21
SLIDE 21

Symbol Variants

Device Component Symbol R-0603 R-0805 R-EU R-1206 R-US

9/23

slide-22
SLIDE 22

Symbol Variants

Device Component Symbol R-0603 R-0805 R-EU R-1206 R-0603 R-0805 R-US R-1206

9/23

slide-23
SLIDE 23

Symbol Variants

Device Component Symbol R-0603 R-0805 R-EU R-1206 R-0603 R-0805 R-US R-1206 R-0603 R-0805 R-small R-1206

9/23

slide-24
SLIDE 24

Symbol Variants

Device Component Variant Symbol R-0603 R-0805 R EU R-1206 US small

9/23

slide-25
SLIDE 25

Footprint Variants

Problem

  • Libraries do not provide an abstraction layer for packages

= =

10/23

slide-26
SLIDE 26

Footprint Variants

Problem

  • Libraries do not provide an abstraction layer for packages

= =

Result

  • Devices need to know every footprint variant of their package

10/23

slide-27
SLIDE 27

Footprint Variants

LM7805 (Vreg) Device Footprint 3D Model

11/23

slide-28
SLIDE 28

Footprint Variants

LM7805 (Vreg) IRLB8748 (Mosfet) Device Footprint 3D Model

11/23

slide-29
SLIDE 29

Footprint Variants

LM7805 (Vreg) IRLB8748 (Mosfet) Device Footprint 3D Model

11/23

slide-30
SLIDE 30

Footprint Variants

LM7805 (Vreg) IRLB8748 (Mosfet) Device Footprint 3D Model

11/23

slide-31
SLIDE 31

Footprint Variants

LM7805 (Vreg) IRLB8748 (Mosfet) MBR40250 (Diode) Device Footprint 3D Model

11/23

slide-32
SLIDE 32

Footprint Variants

LM7805 (Vreg) IRLB8748 (Mosfet) MBR40250 (Diode) DS1821 (Tsensor) Device Footprint 3D Model

11/23

slide-33
SLIDE 33

Footprint Variants

LM7805 (Vreg) IRLB8748 (Mosfet) MBR40250 (Diode) DS1821 (Tsensor) Device Footprint 3D Model

11/23

slide-34
SLIDE 34

Footprint Variants

LM7805 (Vreg) IRLB8748 (Mosfet) MBR40250 (Diode) DS1821 (Tsensor) Device Footprint 3D Model

11/23

slide-35
SLIDE 35

Footprint Variants

LM7805 (Vreg) IRLB8748 (Mosfet) MBR40250 (Diode) DS1821 (Tsensor) Device Footprint 3D Model Package TO-220-3 Pad 1 Pad 2 Pad 3

11/23

slide-36
SLIDE 36

Library Browser

Problem

  • Entities are organized by their containing library
  • No way to assign categories and/or keywords to library entities

12/23

slide-37
SLIDE 37

Library Browser

Problem

  • Entities are organized by their containing library
  • No way to assign categories and/or keywords to library entities

Result

  • Users need to carry about (absolutely irrelevant) library names
  • Entities are very hard to find in the library browser

12/23

slide-38
SLIDE 38

Library Browser

12/23

slide-39
SLIDE 39

Library Browser

Solution

  • Libraries can contain categories
  • Entities can be assigned to these categories
  • Entities can have keywords

13/23

slide-40
SLIDE 40

Library Browser

13/23

slide-41
SLIDE 41

Library Browser

13/23

slide-42
SLIDE 42

Library Browser

13/23

slide-43
SLIDE 43

Footprint Assignment

Problem

  • Schematics contain ”exact parts” (footprint known)

14/23

slide-44
SLIDE 44

Footprint Assignment

Problem

  • Schematics contain ”exact parts” (footprint known)

Result

  • Wasting time for choosing (irrelevant) footprints in schematics
  • Changing footprints afterwards requires to adjust schematics

14/23

slide-45
SLIDE 45

Footprint Assignment

Solution

  • Schematics contain ”components” (footprint unknown)

Schematic Symbol Pin 1 Pin 2 Pin 3 Component Signal GND Signal VCC Signal OUT

15/23

slide-46
SLIDE 46

Footprint Assignment

Solution

  • Schematics contain ”components” (footprint unknown)
  • Boards contain ”devices” (assign package to component)

Schematic Board Symbol Pin 1 Pin 2 Pin 3 Component Signal GND Signal VCC Signal OUT Device GND 2 VCC 3 OUT 1 Package Pad 1 Pad 2 Pad 3

15/23

slide-47
SLIDE 47

Footprint Assignment

Solution

  • Schematics contain ”components” (footprint unknown)
  • Boards contain ”devices” (assign package to component)

Schematic Board Symbol Pin 1 Pin 2 Pin 3 Component Signal GND Signal VCC Signal OUT Device GND 2 VCC 3 OUT 1 Package Pad 1 Pad 2 Pad 3

Schematics can be drawn without worrying about footprints

15/23

slide-48
SLIDE 48

Footprint Assignment

Solution

  • Schematics contain ”components” (footprint unknown)
  • Boards contain ”devices” (assign package to component)

Schematic Board Symbol Pin 1 Pin 2 Pin 3 Component Signal GND Signal VCC Signal OUT Device GND 2 VCC 3 OUT 1 Package Pad 1 Pad 2 Pad 3

Schematics can be drawn without worrying about footprints Footprints can easily be changed in boards

15/23

slide-49
SLIDE 49

Footprint Assignment

Solution

  • Schematics contain ”components” (footprint unknown)
  • Boards contain ”devices” (assign package to component)

Schematic Board Symbol Pin 1 Pin 2 Pin 3 Component Signal GND Signal VCC Signal OUT Device GND 2 VCC 3 OUT 1 Package Pad 1 Pad 2 Pad 3

Schematics can be drawn without worrying about footprints Footprints can easily be changed in boards Pin-to-pad mapping stored in library

15/23

slide-50
SLIDE 50

Version Control Systems

Problem

  • Important and unimportant data mixed
  • Unclear which files to version control

16/23

slide-51
SLIDE 51

Version Control Systems

Problem

  • Important and unimportant data mixed
  • Unclear which files to version control

Result

  • Local changes even if nothing modified
  • Very large and opaque diffs/commits
  • Merging is basically impossible

16/23

slide-52
SLIDE 52

Version Control Systems

Problem

  • Important and unimportant data mixed
  • Unclear which files to version control

Result

  • Local changes even if nothing modified
  • Very large and opaque diffs/commits
  • Merging is basically impossible

Solution

  • Many small files for higher granularity
  • Unimportant data strictly separated
  • Automatic creation of .gitignore

MyProject .gitignore boards default.lp core circuit.lp erc.lp settings.lp

  • utput

... schematics power.lp logic.lp user ...

16/23

slide-53
SLIDE 53

Version Control Systems

  • -- a/test.kicad_pcb

+++ b/test.kicad_pcb @@ -3,7 +3,7 @@ (general (no_connects 0)

  • (area 41.834999 87.554999 233.755001 153.745001)

+ (area 20.171999 28.969758 233.755001 157.374234) (drawings 4) @@ -21,7 +21,7 @@ (36 B.SilkS user)

  • (37 F.SilkS user)

+ (37 F.SilkS user hide) (38 B.Mask user hide) @@ -62,7 +62,7 @@ (aux_axis_origin 0 0)

  • (visible_elements FFFC4601)

+ (visible_elements FFFC4609) (pcbplotparams

KiCad 4.0.2+dfsg1-stable: zoom around, hide ”F.SilkS”, show ”Through Via” 17/23

slide-54
SLIDE 54

Version Control Systems

Problem

  • Files are not really human readable

17/23

slide-55
SLIDE 55

Version Control Systems

Problem

  • Files are not really human readable

Result

  • Diffs are very hard to understand
  • Limited use of version control systems

17/23

slide-56
SLIDE 56

Version Control Systems

Problem

  • Files are not really human readable

Result

  • Diffs are very hard to understand
  • Limited use of version control systems

Solution

  • Don’t just consider text-based file formats as human readable!
  • Control every tiny detail of the generated files
  • Consider opaque parts of files as bugs and fix them

17/23

slide-57
SLIDE 57

Project Status Library Management Library Editor Schematic Editor (except missing copy&paste) Board Editor (no DRC, some inconveniences) Export (e.g. Gerber) Available Libraries File Format Stable

18/23

slide-58
SLIDE 58

Contributing

Contributors welcome!

https://github.com/LibrePCB/LibrePCB/blob/master/CONTRIBUTING.md IRC: #librepcb on Freenode

  • Participate in issues
  • Open pull requests
  • Improve documentation
  • Donate (Patreon or Bitcoin)

19/23

slide-59
SLIDE 59

Getting Started

https://download.librepcb.org/nightly_builds/master/ Linux librepcb-nightly-linux-x86 64.AppImage macOS librepcb-nightly-mac-x86 64.dmg Windows librepcb-installer-nightly-windows-x86.exe

20/23

slide-60
SLIDE 60

Libraries

Install the following libs:

  • LibrePCB Base
  • LibrePCB Connectors

21/23

slide-61
SLIDE 61

Goals

To do:

  • Create a PCB for the LED challenge in the tent outside
  • Create missing library elements:
  • Create a PCB
  • If you want, manufacture it with the PCB mill

22/23

slide-62
SLIDE 62

Library Elements

We need the following library elements:

  • Connector for 12V wires, 1.6mm diameter holes (→ We need

a new Package and Device)

  • SMD 1206 resistor (→ From the standard lib)
  • THT LED 5mm (→ We need a new Package and Device)

https://katalog.we-online.de/led/datasheet/ 151053BS04500.pdf

  • Optional: Toggle button (no datasheet, ask Tony)

23/23

slide-63
SLIDE 63

Thank you!

http://librepcb.org