horizon EDA what’s new Lukas Kramer 03.02.2019 FOSDEM 2019 Lukas K., FOSDEM 2019 1 / 20
Motivation Why write an EDA package from scratch in 2016? Lukas K., FOSDEM 2019 2 / 20
Motivation Why write an EDA package from scratch in 2016? • Convenient and collaborative management of symbols, etc. avoiding redundancy • Proper support for parts • Unified editor • Schematic editor that knows about nets • Rule-driven design • Explicit references (i.e. not by name / location) • Make use of OpenGL 3 features • Playground for experimentation Lukas K., FOSDEM 2019 2 / 20
Implementation C++14 Lukas K., FOSDEM 2019 3 / 20
Implementation ∼ 70 kLOC C++14 Lukas K., FOSDEM 2019 3 / 20
Implementation ∼ 70 kLOC C++14 Gtk3 ≥ 3.20 Lukas K., FOSDEM 2019 3 / 20
Implementation ∼ 70 kLOC C++14 Gtk3 ≥ 3.20 Builds and runs on Linux and Windows Lukas K., FOSDEM 2019 3 / 20
Implementation ∼ 70 kLOC JSON C++14 Gtk3 ≥ 3.20 Builds and runs on Linux and Windows Lukas K., FOSDEM 2019 3 / 20
Implementation ∼ 70 kLOC 499bf624-b2f1-4366-8b9a-0eeb2c8fbb3f JSON C++14 Gtk3 ≥ 3.20 Builds and runs on Linux and Windows Lukas K., FOSDEM 2019 3 / 20
Implementation UUIDs ∼ 70 kLOC JSON C++14 Gtk3 ≥ 3.20 Builds and runs on Linux and Windows Lukas K., FOSDEM 2019 3 / 20
The Pool What’s wrong with libraries • Like a file system with only one level of hierachy • Not a database Lukas K., FOSDEM 2019 4 / 20
The Pool What’s wrong with libraries The Pool • Each item is an individual JSON file • Like a file system with only one level of • Metadata is stored in a SQLite hierachy database • Not a database • Only contains real parts / parts that can be mapped to a real part Lukas K., FOSDEM 2019 4 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity ? Symbol 1 Unit 1 • Gate A ? • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package ? Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Bomazi, Wikimedia Commons, CC-BY-SA Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity 1.55 mm 1.0mm Symbol 1 Unit 1 • Gate A get -parameter [ solder_mask_expansion ] • Gate B 2 * +xy Symbol 2 • Gate P Unit 2 set -shape [ mask -ob obround ] • Gate ... Part 1.15 mm • Entity get -parameter [ solder_mask_expansion ] + • Package 1.55 mm Package get -parameter [ solder_mask_expansion ] Padstack A • Pad 1 2 * + set -shape [ mask -rect rectangle ] • Pad 2 Padstack B • Pad n ... Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
The Pool Entity Symbol 1 Unit 1 • Gate A • Gate B Symbol 2 • Gate P Unit 2 • Gate ... Part • Entity • Package Package Padstack A • Pad 1 • Pad 2 Padstack B • Pad n Lukas K., FOSDEM 2019 5 / 20
What’s new First real-world board Lukas K., FOSDEM 2019 6 / 20
What’s new First real-world board Lukas K., FOSDEM 2019 6 / 20
What’s new Length tuning Lukas K., FOSDEM 2019 7 / 20
What’s new BOM Export Lukas K., FOSDEM 2019 8 / 20
What’s new Parametric part search Lukas K., FOSDEM 2019 9 / 20
What’s new Smart head up display Lukas K., FOSDEM 2019 10 / 20
What’s new Smart head up display Lukas K., FOSDEM 2019 10 / 20
What’s new Smart head up display Lukas K., FOSDEM 2019 10 / 20
What’s new Copying placement and tracks – Motivation Lukas K., FOSDEM 2019 11 / 20
What’s new Copying placement and tracks – Schematic Lukas K., FOSDEM 2019 12 / 20
What’s new Copying placement and tracks – Board Lukas K., FOSDEM 2019 13 / 20
What’s new Copying placement and tracks – Board Lukas K., FOSDEM 2019 14 / 20
What’s new Copying placement and tracks – Board Lukas K., FOSDEM 2019 15 / 20
What’s new Even more • Incremental search • Smooth zooming • Title blocks • Customizable keyboard shortcuts • Customizable colors • Multithreaded DRC • Edit board from bottom side • Calculations in numerical entries • Lasso and paint selection • Keepouts Lukas K., FOSDEM 2019 16 / 20
What’s next Release 1.0 Lukas K., FOSDEM 2019 17 / 20
What’s next Release 1.0 Improve out of the box experience User docs Lukas K., FOSDEM 2019 17 / 20
Links github.com/carrotIndustries/horizon github.com/carrotIndustries/x-band-tx Lukas K., FOSDEM 2019 18 / 20
Thanks Friends & Testers People on the internet Lukas K., FOSDEM 2019 19 / 20
That’s it Lukas K., FOSDEM 2019 20 / 20
Recommend
More recommend