Horizon EDA Version 1.0 Lukas Kramer 2020-02-01 FOSDEM 2020 - - PowerPoint PPT Presentation

horizon eda
SMART_READER_LITE
LIVE PREVIEW

Horizon EDA Version 1.0 Lukas Kramer 2020-02-01 FOSDEM 2020 - - PowerPoint PPT Presentation

Horizon EDA Version 1.0 Lukas Kramer 2020-02-01 FOSDEM 2020 Lukas K., FOSDEM 2020 1 / 11 Lukas K., FOSDEM 2020 2 / 11 Lukas K., FOSDEM 2020 3 / 11 Design and Implementation Decisions Keep it simple Lukas K., FOSDEM 2020 4 / 11


slide-1
SLIDE 1

Horizon EDA

Version 1.0 Lukas Kramer 2020-02-01 FOSDEM 2020

Lukas K., FOSDEM 2020 1 / 11

slide-2
SLIDE 2

Lukas K., FOSDEM 2020 2 / 11

slide-3
SLIDE 3

Lukas K., FOSDEM 2020 3 / 11

slide-4
SLIDE 4

Design and Implementation Decisions

  • Keep it simple

Lukas K., FOSDEM 2020 4 / 11

slide-5
SLIDE 5

Design and Implementation Decisions

  • Keep it simple
  • No funky class hierarchies

Lukas K., FOSDEM 2020 4 / 11

slide-6
SLIDE 6

Design and Implementation Decisions

  • Keep it simple
  • No funky class hierarchies
  • Direct mapping from UI to data

Lukas K., FOSDEM 2020 4 / 11

slide-7
SLIDE 7

Design and Implementation Decisions

  • Keep it simple
  • No funky class hierarchies
  • Direct mapping from UI to data
  • Breadth first implementation

Lukas K., FOSDEM 2020 4 / 11

slide-8
SLIDE 8

Design and Implementation Decisions

  • Keep it simple
  • No funky class hierarchies
  • Direct mapping from UI to data
  • Breadth first implementation
  • Don’t be afraid to rewrite

Lukas K., FOSDEM 2020 4 / 11

slide-9
SLIDE 9

Design and Implementation Decisions

  • Keep it simple
  • No funky class hierarchies
  • Direct mapping from UI to data
  • Breadth first implementation
  • Don’t be afraid to rewrite
  • Have fun!

Lukas K., FOSDEM 2020 4 / 11

slide-10
SLIDE 10

Prehistory

Lukas K., FOSDEM 2020 5 / 11

slide-11
SLIDE 11

Prehistory

September 2016

First commit, symbol editor in Python combined with C for renderer

Lukas K., FOSDEM 2020 5 / 11

slide-12
SLIDE 12

Prehistory

September 2016

First commit, symbol editor in Python combined with C for renderer

October 2016

Rewrite everything in C

Lukas K., FOSDEM 2020 5 / 11

slide-13
SLIDE 13

Prehistory

September 2016

First commit, symbol editor in Python combined with C for renderer

October 2016

Rewrite everything in C

November 2016

Rewrite everything in C++, symbol and schematic editor

Lukas K., FOSDEM 2020 5 / 11

slide-14
SLIDE 14

Prehistory

September 2016

First commit, symbol editor in Python combined with C for renderer

October 2016

Rewrite everything in C

November 2016

Rewrite everything in C++, symbol and schematic editor

December 2016

Padstack, package and board editor. Windows support.

Lukas K., FOSDEM 2020 5 / 11

slide-15
SLIDE 15

Prehistory

September 2016

First commit, symbol editor in Python combined with C for renderer

October 2016

Rewrite everything in C

November 2016

Rewrite everything in C++, symbol and schematic editor

December 2016

Padstack, package and board editor. Windows support.

January 2017

Part editor, YAML editors for units etc. Publication.

Lukas K., FOSDEM 2020 5 / 11

slide-16
SLIDE 16

Prehistory

September 2016

First commit, symbol editor in Python combined with C for renderer

October 2016

Rewrite everything in C

November 2016

Rewrite everything in C++, symbol and schematic editor

December 2016

Padstack, package and board editor. Windows support.

January 2017

Part editor, YAML editors for units etc. Publication.

Lukas K., FOSDEM 2020 5 / 11

slide-17
SLIDE 17

Prehistory

September 2016

First commit, symbol editor in Python combined with C for renderer

October 2016

Rewrite everything in C

November 2016

Rewrite everything in C++, symbol and schematic editor

December 2016

Padstack, package and board editor. Windows support.

January 2017

Part editor, YAML editors for units etc. Publication.

Lukas K., FOSDEM 2020 5 / 11

slide-18
SLIDE 18

Early History

February 2017

Project manager, no more CLI for opening schematics!

Lukas K., FOSDEM 2020 6 / 11

slide-19
SLIDE 19

Early History

February 2017

Project manager, no more CLI for opening schematics!

May 2017

Rule framework and copper clearance rules (DRC)

Lukas K., FOSDEM 2020 6 / 11

slide-20
SLIDE 20

Early History

February 2017

Project manager, no more CLI for opening schematics!

May 2017

Rule framework and copper clearance rules (DRC)

June 2017

Parametric padstacks and packages

Lukas K., FOSDEM 2020 6 / 11

slide-21
SLIDE 21

Early History

February 2017

Project manager, no more CLI for opening schematics!

May 2017

Rule framework and copper clearance rules (DRC)

June 2017

Parametric padstacks and packages

Lukas K., FOSDEM 2020 6 / 11

Parameter program

1.55 mm 1.0mm get -parameter [ solder_mask_expansion ] 2 * +xy set -shape [ mask -ob obround ] 1.15 mm get -parameter [ solder_mask_expansion ] + 1.55 mm get -parameter [ solder_mask_expansion ] 2 * + set -shape [ mask -rect rectangle ] ...

slide-22
SLIDE 22

Early History

February 2017

Project manager, no more CLI for opening schematics!

May 2017

Rule framework and copper clearance rules (DRC)

June 2017

Parametric padstacks and packages

September 2017

Pool manager, no more CLI at all! KiCad’s router!

Lukas K., FOSDEM 2020 6 / 11

slide-23
SLIDE 23

Early History

February 2017

Project manager, no more CLI for opening schematics!

May 2017

Rule framework and copper clearance rules (DRC)

June 2017

Parametric padstacks and packages

September 2017

Pool manager, no more CLI at all! KiCad’s router!

October 2017

Copper planes, 3D view (only board, no packages)

Lukas K., FOSDEM 2020 6 / 11

slide-24
SLIDE 24

Early History

February 2017

Project manager, no more CLI for opening schematics!

May 2017

Rule framework and copper clearance rules (DRC)

June 2017

Parametric padstacks and packages

September 2017

Pool manager, no more CLI at all! KiCad’s router!

October 2017

Copper planes, 3D view (only board, no packages)

Lukas K., FOSDEM 2020 6 / 11

slide-25
SLIDE 25

History

January 2018

STEP import/export

Lukas K., FOSDEM 2020 7 / 11

slide-26
SLIDE 26

History

January 2018

STEP import/export

April 2018

Start of master thesis

Lukas K., FOSDEM 2020 7 / 11

slide-27
SLIDE 27

History

January 2018

STEP import/export

April 2018

Start of master thesis

Lukas K., FOSDEM 2020 7 / 11

slide-28
SLIDE 28

History

January 2018

STEP import/export

April 2018

Start of master thesis

May 2018

Multithreaded DRC, BOM export

Lukas K., FOSDEM 2020 7 / 11

slide-29
SLIDE 29

History

January 2018

STEP import/export

April 2018

Start of master thesis

May 2018

Multithreaded DRC, BOM export

June 2018

Unified pool and project manager

Lukas K., FOSDEM 2020 7 / 11

slide-30
SLIDE 30

History

January 2018

STEP import/export

April 2018

Start of master thesis

May 2018

Multithreaded DRC, BOM export

June 2018

Unified pool and project manager

October 2018

Configurable colors

Lukas K., FOSDEM 2020 7 / 11

slide-31
SLIDE 31

History

January 2019

Parametric search

Lukas K., FOSDEM 2020 8 / 11

slide-32
SLIDE 32

History

January 2019

Parametric search

April 2019

Proper PDF export

Lukas K., FOSDEM 2020 8 / 11

slide-33
SLIDE 33

History

January 2019

Parametric search

April 2019

Proper PDF export

July 2019

Incremental pool update

Lukas K., FOSDEM 2020 8 / 11

slide-34
SLIDE 34

History

January 2019

Parametric search

April 2019

Proper PDF export

July 2019

Incremental pool update

November 2019

Partinfo API integration

Lukas K., FOSDEM 2020 8 / 11

slide-35
SLIDE 35

History

January 2019

Parametric search

April 2019

Proper PDF export

July 2019

Incremental pool update

November 2019

Partinfo API integration

January 2020

Version 1.0

Lukas K., FOSDEM 2020 8 / 11

slide-36
SLIDE 36

Taking care of dependencies

Lukas K., FOSDEM 2020 9 / 11

slide-37
SLIDE 37

Taking care of dependencies

GTK

made GtkGLArea work for more than one window on win32

Lukas K., FOSDEM 2020 9 / 11

slide-38
SLIDE 38

Taking care of dependencies

GTK

made GtkGLArea work for more than one window on win32

libgit2

fixed segfault introduced by reordering of include paths

Lukas K., FOSDEM 2020 9 / 11

slide-39
SLIDE 39

Taking care of dependencies

GTK

made GtkGLArea work for more than one window on win32

libgit2

fixed segfault introduced by reordering of include paths

zeromq

fixed locale affecting port number formatting

Lukas K., FOSDEM 2020 9 / 11

slide-40
SLIDE 40

Taking care of dependencies

GTK

made GtkGLArea work for more than one window on win32

libgit2

fixed segfault introduced by reordering of include paths

zeromq

fixed locale affecting port number formatting

ccache

fixed broken header dependency generation (regression)

Lukas K., FOSDEM 2020 9 / 11

slide-41
SLIDE 41

What’s next?

Lukas K., FOSDEM 2020 10 / 11

slide-42
SLIDE 42

That’s it!

Lukas K., FOSDEM 2020 11 / 11