Author Topic: New work-in-progress EDA package!  (Read 17370 times)

0 Members and 1 Guest are viewing this topic.

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
New work-in-progress EDA package!
« on: January 29, 2017, 07:42:30 pm »
Hello Everyone,

as I hinted over at https://www.eevblog.com/forum/eda/creating-a-new-eda-package/msg1119148/#msg1119148, I've been working on a new EDA package for some time. Finally, it's on github: https://github.com/carrotIndustries/horizon

It's far from being usable for serious work, but the overall architecture is there. So don't yell at me if things don't work for you.

Lukas
 

Offline daveshah

  • Supporter
  • ****
  • Posts: 356
  • Country: at
    • Projects
Re: New work-in-progress EDA package!
« Reply #1 on: January 29, 2017, 07:57:21 pm »
Looks really interesting, congratulations! I'll try building it and have a play around tomorrow.
 

Offline vzoole

  • Regular Contributor
  • *
  • Posts: 125
  • Country: hu
Re: New work-in-progress EDA package!
« Reply #2 on: January 30, 2017, 04:44:41 pm »
Is there an executable file?
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11260
  • Country: us
    • Personal site
Re: New work-in-progress EDA package!
« Reply #3 on: January 30, 2017, 05:53:34 pm »
Yeah, a lot more people will try this if there were pre-built executables.
Alex
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #4 on: January 31, 2017, 04:39:27 pm »
I'm sorry, but I won't provide pre-built windows executables at this point in time. Windows users usually expect applications to be executable files they can double-click and expect something sensible to happen. horizon isn't at this point yet. Since horizon still is in its infancy crashes and other unexpected behaviour is likely to happen. When an executable stripped of its debug symbols crashed, the only thing the user sees is "horizon-imp.exe stopped working". The user is unhappy because horizon crashed and so am I because I can't get a proper bug report i.e. backtrace from that particular user.

Said that, compiling on windows isn't much different from compiling on linux. Just grab a copy of http://msys2.github.io/ install the dependencies (literally one command), clone the repository and go "make".
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: New work-in-progress EDA package!
« Reply #5 on: January 31, 2017, 04:51:10 pm »

Said that, compiling on windows isn't much different from compiling on linux. Just grab a copy of http://msys2.github.io/ install the dependencies (literally one command), clone the repository and go "make".

would you mind writing a detailed step-by-step guide on how to do this ?
i have no clue how github works , how to clone a repository or even what dependencies it needs and what that single command is ...
i am not a programmer and hvae no interes tin learning these tools. i want to help by providing feedback on the application though ...

so please : put it in laymans terms. i don;t need an EXe file but a step by step guide how to get it to run.
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 
The following users thanked this post: JPortici, neil t

Online Bud

  • Super Contributor
  • ***
  • Posts: 6911
  • Country: ca
Re: New work-in-progress EDA package!
« Reply #6 on: January 31, 2017, 05:09:26 pm »
Just grab ..... .. install .... clone .... go "make".

Lukas,

please do not be a typical arrogant Linux developer. There is no "just" for many of us here.
Facebook-free life and Rigol-free shack.
 
The following users thanked this post: Fire Doger, M0HZH

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11260
  • Country: us
    • Personal site
Re: New work-in-progress EDA package!
« Reply #7 on: January 31, 2017, 05:28:00 pm »
please do not be a typical arrogant Linux developer. There is no "just" for many of us here.
Yep. I can set up the environment and all that stuff, but why bother to check out the alpha version of some unknown software?
Alex
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #8 on: January 31, 2017, 06:09:34 pm »

Said that, compiling on windows isn't much different from compiling on linux. Just grab a copy of http://msys2.github.io/ install the dependencies (literally one command), clone the repository and go "make".

would you mind writing a detailed step-by-step guide on how to do this ?
i have no clue how github works , how to clone a repository or even what dependencies it needs and what that single command is ...
i am not a programmer and hvae no interes tin learning these tools. i want to help by providing feedback on the application though ...

so please : put it in laymans terms. i don;t need an EXe file but a step by step guide how to get it to run.

There you are: https://github.com/carrotIndustries/horizon/blob/master/build_win32.md
 

Offline blkdev2

  • Newbie
  • Posts: 6
  • Country: us
Re: New work-in-progress EDA package!
« Reply #9 on: February 03, 2017, 08:02:23 pm »
I made a run at getting this built on MacOS until I found out that there's no working GdkGLContext for gtk3/Quartz. For what it's worth Clang really doesn't like the combination of const keys and the use of the assignment operator with STL maps, which is all over the place in the code (const UUID).

Looks interesting though, keep at it man.
 

Offline Zom-B

  • Regular Contributor
  • *
  • Posts: 55
  • Country: nl
Re: New work-in-progress EDA package!
« Reply #10 on: February 03, 2017, 11:59:54 pm »
I'd really like to work together with you, however I'm a seasoned Java engineer. I can write 50 classes in Java without compiling once, and when I'm done it works. When I'm programming ant other language, I have to constantly check my bearings as I'm not even close to as fluent as I am in Java. In Java, I've done OpenGL, .dll/.so interfacing and you name it! (yes, I sinned in all the things that break portability, but I also know how to maintain it when needed so.)

Also, I dispise C/C++ because in the past at several times I tried to compile something I needed to work with, followed the the how-tos to the letter, installed all the dependencies, and still got mysterious compile errors that can't be googled. It's worse than pandora's box, so I just hate it now.
« Last Edit: February 04, 2017, 12:03:22 am by Zom-B »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #11 on: February 05, 2017, 11:06:13 pm »
I made a run at getting this built on MacOS until I found out that there's no working GdkGLContext for gtk3/Quartz. For what it's worth Clang really doesn't like the combination of const keys and the use of the assignment operator with STL maps, which is all over the place in the code (const UUID).

Looks interesting though, keep at it man.
Can you give the output of clang? I've compiled horizon with clang 3.9.1 on Linux without errors.
 

Offline blkdev2

  • Newbie
  • Posts: 6
  • Country: us
Re: New work-in-progress EDA package!
« Reply #12 on: February 06, 2017, 03:46:15 am »
Can you give the output of clang? I've compiled horizon with clang 3.9.1 on Linux without errors.
Sure. It's actually an issue of libc++ vs libstdc++. I'd try the latter but the version of libstdc++ that ships with MacOS is now outdated and doesn't support C++14 features. What you get with libc++ is endless variation on the following theme:

Code: [Select]
In file included from pool/symbol.cpp:1:
In file included from pool/symbol.hpp:2:
In file included from util/uuid.hpp:8:
...
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:627:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/utility:305:15: error: no viable overloaded '='
        first = __p.first;
        ~~~~~ ^ ~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/map:650:15: note: in instantiation of member function
      'std::__1::pair<const horizon::UUID, horizon::Text>::operator=' requested here
        {__nc = __v.__cc; return *this;}
              ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__tree:1200:35: note: in instantiation of member function 'std::__1::__value_type<const
      horizon::UUID, horizon::Text>::operator=' requested here
                __cache->__value_ = *__first;
                                  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__tree:1141:9: note: in instantiation of function template specialization
      'std::__1::__tree<std::__1::__value_type<const horizon::UUID, horizon::Text>, std::__1::__map_value_compare<const horizon::UUID, std::__1::__value_type<const horizon::UUID, horizon::Text>,
      std::__1::less<const horizon::UUID>, true>, std::__1::allocator<std::__1::__value_type<const horizon::UUID, horizon::Text> >
      >::__assign_multi<std::__1::__tree_const_iterator<std::__1::__value_type<const horizon::UUID, horizon::Text>, std::__1::__tree_node<std::__1::__value_type<const horizon::UUID, horizon::Text>,
      void *> *, long> >' requested here
        __assign_multi(__t.begin(), __t.end());
        ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/map:928:21: note: in instantiation of member function
      'std::__1::__tree<std::__1::__value_type<const horizon::UUID, horizon::Text>, std::__1::__map_value_compare<const horizon::UUID, std::__1::__value_type<const horizon::UUID, horizon::Text>,
      std::__1::less<const horizon::UUID>, true>, std::__1::allocator<std::__1::__value_type<const horizon::UUID, horizon::Text> > >::operator=' requested here
            __tree_ = __m.__tree_;
                    ^
pool/symbol.cpp:142:9: note: in instantiation of member function 'std::__1::map<const horizon::UUID, horizon::Text, std::__1::less<const horizon::UUID>, std::__1::allocator<std::__1::pair<const
      horizon::UUID, horizon::Text> > >::operator=' requested here
                texts = sym.texts;
                      ^
util/uuid.hpp:11:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const horizon::UUID', but method is not marked const
        class UUID {
              ^
util/uuid.hpp:11:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const horizon::UUID', but method is not marked const

This crops up anywhere you have something of the form std::map<const UUID, T> because the key type is not assignable. I think this is a violation of the standard, and this person's argument is sound:

http://stackoverflow.com/questions/27221221/assignement-operator-requirement-for-key-type-in-stdmap

However, note that I am not a C++ language lawyer and this is not legal advice! Mainly I can't think of any practical reason to do this, and it seems like just a gratuitous use of const. There were also similar issues that cropped up with with const UUID fields.

After liberal application of grep/sed I was able to almost compile the code, but on discovering the missing GTK implementation I threw in the towel.
 

Offline hlavac

  • Frequent Contributor
  • **
  • Posts: 536
  • Country: cz
Re: New work-in-progress EDA package!
« Reply #13 on: February 06, 2017, 07:02:14 pm »
Yep you cannot put const types into a std:: container. It is not allowed by the standard.
Good enough is the enemy of the best.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #14 on: February 18, 2017, 09:03:57 pm »
Finally, there are 64-bit windows binaries: https://github.com/carrotIndustries/horizon#quickstart-using-the-project-manager

No need for "command line magic" any more after initially setting up the pool.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New work-in-progress EDA package!
« Reply #15 on: February 18, 2017, 11:03:29 pm »
Any screendumps? I'd like to see some!  :)
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline alexanderbrevig

  • Frequent Contributor
  • **
  • Posts: 700
  • Country: no
  • Musician, developer and EE hobbyist
    • alexanderbrevig.com
 

Offline alexanderbrevig

  • Frequent Contributor
  • **
  • Posts: 700
  • Country: no
  • Musician, developer and EE hobbyist
    • alexanderbrevig.com
Re: New work-in-progress EDA package!
« Reply #17 on: February 18, 2017, 11:46:51 pm »
Got it working on MSYS2 following the instructions.

Never mind the goofy schematic, just tried out various things.


I think you've got a lot of nice ideas going here Lukas! Very nice code too :) [I've just spent some hours trying to figure out the KiCAD code base - not that it's fair to compare but at least I understand everything here.... hehe  :-+ ]

Are you trying to solve a specific niche/need? Tried to find a few sentences about your vision for this. Would probably indicate what kind of pull requests you'd be likely to approve.
F.ex: UI icon? Interactive first time tutorial? A larger pool? Script interface [i.e would be nice to store 'macro like'  commands, like for instance binding 10k to place a 10k resistor]? 3d view of PCB?

Excellent work, I like it :)
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #18 on: February 19, 2017, 12:59:14 am »
Thanks for the nice words :) And congrats for being the first one reporting getting horizon to build and run.

Well, I've been dissatisfied with KiCad and figured starting from scratch is more fun than trying to make KiCad what I want it to be. Right now, my focus is on getting things more stable and polished as well as some developer documentation to attract more of them.

Some vague list of planned near-time features in no particular order:
  • improve pool browsers, especially the "place part" one by supplying a non-modal part browser
  • UI for constraints (net classes, clearances) manually editing json and juggling with UUIDs clearly isn't the way to go...
  • DRC
  • UI for CAM jobs
Actually, there's an icon: https://github.com/carrotIndustries/horizon/blob/master/icon.svg Currently, it's only used for the project manager since this one is supposed to be the primary user-facing application.
 

Online Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11640
  • Country: my
  • reassessing directives...
Re: New work-in-progress EDA package!
« Reply #19 on: June 05, 2017, 06:30:46 pm »
well. if only we have the exe ready, we dont mind crashing exe as long as we have experienced it a little bit to tell something about it. anybody who mourn about crashing app he should make one his own... btw, is this Altium like one GUI for all interface? or KiCAD/Eagle/DipTrace like each exe for each pattern, component, schematics, pcb separately?
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline jwm_

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
    • Not A Number
Re: New work-in-progress EDA package!
« Reply #20 on: June 05, 2017, 06:57:06 pm »
My dream for an EDA suite would be the ability to edit the electrical part of the schematic in a version controlled text file in a clear and useful format with macros and modern language features and have the actually making the schematic diagram pretty be completely independent of specifying the electrical connections. (And optional if I wanted to jump straight to layout). I hate that the aesthetic design of the schematic is intermixed and jumbled with the electrical design.

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #21 on: June 06, 2017, 04:17:22 am »
well. if only we have the exe ready, we dont mind crashing exe as long as we have experienced it a little bit to tell something about it. anybody who mourn about crashing app he should make one his own... btw, is this Altium like one GUI for all interface? or KiCAD/Eagle/DipTrace like each exe for each pattern, component, schematics, pcb separately?
There are some over there: http://0x83.eu/horizon-zip/
Actually it's more like the second one, even if there's just one exe started with different parameters to become schematic/board/etc editor. All editors are mostly the same, apart from the other button or sidebar more or less.
 

Online Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11640
  • Country: my
  • reassessing directives...
Re: New work-in-progress EDA package!
« Reply #22 on: June 06, 2017, 10:16:02 am »
well. if only we have the exe ready, we dont mind crashing exe as long as we have experienced it a little bit to tell something about it. anybody who mourn about crashing app he should make one his own... btw, is this Altium like one GUI for all interface? or KiCAD/Eagle/DipTrace like each exe for each pattern, component, schematics, pcb separately?
There are some over there: http://0x83.eu/horizon-zip/
Actually it's more like the second one, even if there's just one exe started with different parameters to become schematic/board/etc editor. All editors are mostly the same, apart from the other button or sidebar more or less.
is it 64 bits version? because i tried to open horizon-prj.exe it said not a valid Win32 application. i'm using 32 bit OS...
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #23 on: June 09, 2017, 05:49:13 pm »
Yeah, the binaries I provide are 64 bit ones.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #24 on: October 20, 2017, 04:59:26 pm »
Several months later, its' time for an update on horizon:

Apart from usability improvements like UI for part and project management, horizon now has a rule-driven interactive router, DRC and much more. See for yourself: https://github.com/carrotIndustries/horizon#horizon-is-a-free-eda-package
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf