Author Topic: New work-in-progress EDA package!  (Read 17368 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?
 

Online 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

Offline 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

Online 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.
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11639
  • 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.
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11639
  • 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
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #25 on: October 25, 2017, 12:31:16 am »
Getting started with horizon has become super easy: https://github.com/carrotIndustries/horizon/wiki/Getting-started There are binaries for windows as well. All features now have a (hopefully easy to use) user interface, no more shell wizardy required.
 

Offline Mr. Scram

  • Super Contributor
  • ***
  • Posts: 9810
  • Country: 00
  • Display aficionado
Re: New work-in-progress EDA package!
« Reply #26 on: October 25, 2017, 01:43:29 am »
This looks very interesting. Can you tell us a little more about your long term vision? Are you planning to open up development, possibly at the cost of control over the project and going towards a KiCad type situation? Or are you planning to stay in control more, at the risk of development dying when you lose interest?

From a usability point of view: are you planning to incorporate things like simulation or integration with CAD software like Solidworks?

 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #27 on: October 25, 2017, 08:18:46 am »
From a usability point of view: are you planning to incorporate things like simulation or integration with CAD software like Solidworks?
Simulation is an explicit non-goal for horizon right now since I'm focusing on making a great PCB tool. Altium seems to contain some sort of SPICE as well, I've never heard of anyone using that... For my part, I'm perfectly fine with LTSpice. STEP export is on my mid-term roadmap though
 

Offline ElektroQuark

  • Supporter
  • ****
  • Posts: 1244
  • Country: es
    • ElektroQuark
Re: New work-in-progress EDA package!
« Reply #28 on: October 25, 2017, 08:21:33 am »
What about the development part?
A one man band?

Offline alexanderbrevig

  • Frequent Contributor
  • **
  • Posts: 700
  • Country: no
  • Musician, developer and EE hobbyist
    • alexanderbrevig.com
Re: New work-in-progress EDA package!
« Reply #29 on: October 25, 2017, 10:20:19 am »
Just wanted to chime in and let everyone know that the windows binary and the tutorial works flawlessly.
I've been a lurker of your project Lukas, good work!

Also curious if you will open up development at some point.


EDIT: It would be great to see a complete project down the line. Something ready for manufacture export/gerber.  :-+
« Last Edit: October 25, 2017, 10:23:02 am by alexanderbrevig »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #30 on: October 25, 2017, 05:59:20 pm »
Nice to know that things actually work :)

For now horizon is a one man show, but there's no reason why it has to stay this way. If anyone's interested, I'm happy to merge pull requests. Some things that may be suitable for newcomers to implement:
 - ERC
 - Thermals in planes
 - More DRC
 - Supporting the diffpair feature of the kicad router

EDIT: It would be great to see a complete project down the line. Something ready for manufacture export/gerber.  :-+

That was my initial idea with the  demo project, but after some time I was more interested in development instead... But yeah, maybe it's best not to develop something myself, but just redo something simple like an Arduino or dave's microcurrent in horizon.
 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 99
Re: New work-in-progress EDA package!
« Reply #31 on: October 26, 2017, 01:12:01 pm »
Lukas,

I tried your recent build (horizon-2017-10-24-0150).

The program is very crashy, particularly when trying to close/cancel various dialogs. The schematic editor seems to require keyboard commands to operate. If I click on the help button it pops up a keyboard commands list in a modal dialog. Am I expected to commit the command list entirely to memory before I begin? Most commands are listed twice (with different keys) for no apparent reason.

Now I seem to have broken something. I can't create a new project or open the example project. The error provided is 'not found' in both cases.

I noticed you are using mm units on your schematic. You may regret this decision in the future. I recommend going unitless for schematics otherwise you end up with users that have different ideas about grids and component sizes making components which have poor compatibility with one another. Kicad users have these problems when sharing symbols for example.

I don't understand how to use the pool manager (horizon-pool-mgr). The part creation process looks overly complex and does not appear to be documented on your website. How do I create a schematic symbol?
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #32 on: October 26, 2017, 01:50:02 pm »
Lukas,

I tried your recent build (horizon-2017-10-24-0150).

The program is very crashy, particularly when trying to close/cancel various dialogs.
Which ones? What have you done before?

The schematic editor seems to require keyboard commands to operate. If I click on the help button it pops up a keyboard commands list in a modal dialog. Am I expected to commit the command list entirely to memory before I begin? Most commands are listed twice (with different keys) for no apparent reason. The key sequences dialog will become non-modal soon.

Yeah, horizon is mainly keyboard driven. To start tools, you may as well hit the space bar. This will bring up a searchable menu. I don't want to have a toolbar that consists of mostly meaningless icons. There are multiple key sequences to hopefully suit many users tastes.

Now I seem to have broken something. I can't create a new project or open the example project. The error provided is 'not found' in both cases.

Looks like you trashed the pool's database. Open the pool manager and click "Update pool".

I noticed you are using mm units on your schematic. You may regret this decision in the future. I recommend going unitless for schematics otherwise you end up with users that have different ideas about grids and component sizes making components which have poor compatibility with one another. Kicad users have these problems when sharing symbols for example.

Since you're eventually going to print schematics, I opted for using units. The only available grid for schematics and symbols is 1.25mm.

I don't understand how to use the pool manager (horizon-pool-mgr). The part creation process looks overly complex and does not appear to be documented on your website. How do I create a schematic symbol?

It's somehow documented on the wiki: https://github.com/carrotIndustries/horizon/wiki/Working-with-the-Pool-Manager-and-Part-Wizard For schematic symbol: Either use "Create symbol for unit" in the pool manager, or use the "Edit Symbol" button on the second page of the part wizard.
 

Offline boyddotee

  • Contributor
  • Posts: 27
  • Country: gb
Re: New work-in-progress EDA package!
« Reply #33 on: October 26, 2017, 03:07:18 pm »
New here but been lurking around for years.

I just spent the last couple hours playing with Horizon and I think its pretty good, and quite easy to pick up, though i only found the shortcut/command menu by accident (spacebar), not one of those who often reads the manuals. In my opinion its already miles ahead of Eagle which makes me personally want to pull my teeth out.
Quote
I noticed you are using mm units on your schematic. You may regret this decision in the future. I recommend going unitless.
I would echo this half the industry uses imperial mil, i instinctively tried entering a number and then mil in a dimension box but it took it as mm as many cad packages will do the conversion for you.
Quote
Yeah, horizon is mainly keyboard driven
Can/Will the keyboard shortcuts be changeable by the user?


 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 99
Re: New work-in-progress EDA package!
« Reply #34 on: October 27, 2017, 08:46:19 am »
Yeah, horizon is mainly keyboard driven. To start tools, you may as well hit the space bar. This will bring up a searchable menu. I don't want to have a toolbar that consists of mostly meaningless icons. There are multiple key sequences to hopefully suit many users tastes.

But why is the help dialog modal? It would be much more helpful if I could use the program and see the command list at the same time.

Now I seem to have broken something. I can't create a new project or open the example project. The error provided is 'not found' in both cases.

Looks like you trashed the pool's database. Open the pool manager and click "Update pool".

Here's how I corrupted the pool database.



Since you're eventually going to print schematics, I opted for using units. The only available grid for schematics and symbols is 1.25mm.

Not necessarily. I haven't printed schematics in years. Most engineers I know just send PDFs to one another.

After playing with it some more, I realised it's just like Altium schematic. The general grid is too fine and the mouse is always snapping to things. It's very off-putting.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #35 on: October 27, 2017, 09:56:07 pm »
I just spent the last couple hours playing with Horizon and I think its pretty good, and quite easy to pick up, though i only found the shortcut/command menu by accident (spacebar), not one of those who often reads the manuals. In my opinion its already miles ahead of Eagle which makes me personally want to pull my teeth out.
Nice to hear that!

Quote
I noticed you are using mm units on your schematic. You may regret this decision in the future. I recommend going unitless.
I would echo this half the industry uses imperial mil, i instinctively tried entering a number and then mil in a dimension box but it took it as mm as many cad packages will do the conversion for you.
Yeah, converting from imperial units is something missing for sure. I'm happy to accept pull requests for this :) https://github.com/carrotIndustries/horizon/blob/master/widgets/spin_button_dim.cpp#L21 is the place to start hacking.

Quote
Yeah, horizon is mainly keyboard driven
Can/Will the keyboard shortcuts be changeable by the user?

So far, they're hardcoded. Making them user-configurable will be a bit harder than simply writing a config file from the interactive manipulator since the imp isn't a single-instance application. So i'll probably have to go the route via the project manager.

Quote
After playing with it some more, I realised it's just like Altium schematic. The general grid is too fine and the mouse is always snapping to things. It's very off-putting.
Every schematic capture application I've ever used worked that way. There's a grid and pins are aligned at to it.

Quote
Here's how I corrupted the pool database.
That's somehow fixed in the latest version as well. The windows file dialog doesn't seem to be usable for creating folders (that was the first error message), so you selected the "passive" folder. To understand why things broke, we'll have to take a look at what the pool update function does for packages. Packages are folders in the pool since they consist of a package.json for the package and a "padstack" folder for custom padstacks. The pool update function recursively traverses the pool's directory looking packages. If a directory contains a package.json, it's considered a package directory and isn't traversed any further. By creating a package in the passive folder, the pool update function regarded this directory as a  package and thus forgot to add all the packages in it. This caused the function to fail when updating the parts since these were expecting the packages to be there.

The pool manager now forbids creating packages in non-empty directories.
 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 99
Re: New work-in-progress EDA package!
« Reply #36 on: October 29, 2017, 06:22:34 am »
Quote
After playing with it some more, I realised it's just like Altium schematic. The general grid is too fine and the mouse is always snapping to things. It's very off-putting.
Every schematic capture application I've ever used worked that way. There's a grid and pins are aligned at to it.

Your software does have a grid and the pins do align to it, you have got that much right. The problem is the spacing between the grid points is too fine in the schematic editor relative to the size of text and symbol pin spacing. When the grid is disproportionate to the symbols, the disadvantage is the user must work at a higher zoom level (wasting screen real estate) or with poor dexterity (wasting time trying to line up symbols and wires pixel hunt style).

The same ill fitting grid is present in the symbol editor, where it is far too course. Symbols usually have more detail than schematic sheets so why is the grid the same (and unchangeable)? The screen shot attached illustrates this. It shows a capacitor symbol from the example project open in the symbol editor. The lines are off the grid. This symbol could not have been drawn with this software in its current state!

I've been trying to create a custom schematic symbol of my own and have not succeeded. This pool manager thing is a great pile of unintuitive rubbish. It constantly pops up file save dialogs asking me to save .json files. Why do I need to save these files manually? What do I call them? Where do I put them? "Do you want to overwrite the previous file something.json ?"

I wanted to provide some constructive criticism, because I want to support new PCB design software, especially if it's open source. After a couple of hours of spent with Horizon I'm at a loss for words. My patience ran out before I even got to the board layout section...
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #37 on: October 29, 2017, 01:00:07 pm »
Yeah, it's non-obvious, but you by holding down the Alt key, the grid will get shrunk by a factor of 10. That's how the capacitor symbol was drawn. For pretty much every other symbol that users will create (box with pins on the edges) the grid works just fine. I really don't see your issue with the grid, KiCad works the same and I didn't find anything wrong with it. Which software gets it right? You mentioned it was just like Altium. Since many people in this forum seem to like Altium in general, I think that isn't a bad thing.

Quote
I've been trying to create a custom schematic symbol of my own and have not succeeded. This pool manager thing is a great pile of unintuitive rubbish. It constantly pops up file save dialogs asking me to save .json files. Why do I need to save these files manually? What do I call them? Where do I put them?
All symbols etc are individual files, so they need to be saved somewhere. See https://github.com/carrotIndustries/horizon/wiki/The-Pool On how to call them, just take a look at the existing files.

BTW, why a symbol? Symbols don't really "define" pins. They just display the pins from their unit. See the wiki page linked above.

Quote
I wanted to provide some constructive criticism, because I want to support new PCB design software, especially if it's open source. After a couple of hours of spent with Horizon I'm at a loss for words. My patience ran out before I even got to the board layout section...
The Pool manager definitely is one of the less-polished things in horizon, that's why there's "WIP" in the thread's title.

 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 99
Re: New work-in-progress EDA package!
« Reply #38 on: October 30, 2017, 02:01:26 am »
Yeah, it's non-obvious, but you by holding down the Alt key, the grid will get shrunk by a factor of 10.

Silly me, I suppose I should have read the source code to find that out.

That's how the capacitor symbol was drawn. For pretty much every other symbol that users will create (box with pins on the edges) the grid works just fine.

This is not true. Discreet components are not drawn as boxes on a grid. Also, some users will want to create all their own symbols and not use any provided.
 
 
I really don't see your issue with the grid, KiCad works the same and I didn't find anything wrong with it. Which software gets it right?

The version of Kicad that I have installed (4.01) has no less than seven choices for grid size in the options. Horizon currently has a grid size equivalent of Kicad set to a 50 mil grid. I'm saying that it's more efficient (for the user) to have the grid set the equivalent of Kicad set to a 100 mil grid. For reference, the Kicad component library policy states that all symbol pins must line up to a 100 mil grid.

My point about the grid units still stands. A multiple of 1.25 makes the coordinates difficult to use as a point of reference. Anything other than a direct relationship between coordinates and the grid is sub-optimal. For examples of (free) programs that get this right: Kicad (set to 100/10 mil grid), PCB Elegance, Bsch3v.

The grid is by no means the biggest problem with Horizon, it's actually rather minor in comparison to some of your other interface choices. The difference is that the other problems will eventually be corrected when your users complain about them, but the grid size is so fundamental that by the time users complain it will probably be too late to do anything about it. Either that or Horizon will end up with seven grid choices, just like Kicad.

Quote
I've been trying to create a custom schematic symbol of my own and have not succeeded. This pool manager thing is a great pile of unintuitive rubbish. It constantly pops up file save dialogs asking me to save .json files. Why do I need to save these files manually? What do I call them? Where do I put them?
All symbols etc are individual files, so they need to be saved somewhere. See https://github.com/carrotIndustries/horizon/wiki/The-Pool On how to call them, just take a look at the existing files.

BTW, why a symbol? Symbols don't really "define" pins. They just display the pins from their unit. See the wiki page linked above.
Quote
I wanted to provide some constructive criticism, because I want to support new PCB design software, especially if it's open source. After a couple of hours of spent with Horizon I'm at a loss for words. My patience ran out before I even got to the board layout section...
The Pool manager definitely is one of the less-polished things in horizon, that's why there's "WIP" in the thread's title.

This horrible mess of the Pool manager UI and the assortment of different(?) .json files (please learn what file extensions are for, there's more than just .bin and .xml and .json). Is it not the purpose of the manager to manage the data for the user? It feels like must have total understanding of the contents of every .json file before I can use this software.

You keep pointing to your wiki. There isn't enough information there for me to figure how this shit works in a reasonable amount of time. Now I'm fed up with it.
 

Offline Ysjoelfir

  • Frequent Contributor
  • **
  • Posts: 542
  • Country: de
Re: New work-in-progress EDA package!
« Reply #39 on: November 20, 2017, 08:43:32 pm »
There isn't enough information there for me to figure how this shit works in a reasonable amount of time. Now I'm fed up with it.

Is it just me or are you complaining (in a pretty rude way) because a "Work in Progress" software is not working the way YOU think it has to work or that you cant find an allmighty help function in a wiki for a "Work in Progress" Software? Seriously?

I for myself didn't try the software because I am aware of the WIP part and don't understand enough from github, coding and all that stuff to be particulary helpful. But I subscribed to the thread because I am interested in the software and think it has some potential. So I am always happy about any update here and hope that the project will keep going :)
Greetings, Kai \ Ysjoelfir
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #40 on: November 20, 2017, 11:17:13 pm »
There have been some usability improvements to the pool manager lately and horizon gained support for things such as diffpairs, thermals, dragging tracks, or vias without a track attached.

You don't need to be into coding in any way to use horizon at the moment. If you're using windows (7 or later, 64 bit only) you can use the windows binaries over at https://github.com/carrotIndustries/horizon/wiki/Getting-started#windows
 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 99
Re: New work-in-progress EDA package!
« Reply #41 on: November 21, 2017, 06:28:19 am »
Is it just me or are you complaining (in a pretty rude way) because a "Work in Progress" software is not working the way YOU think it has to work or that you cant find an allmighty help function in a wiki for a "Work in Progress" Software? Seriously?

The wiki says "It's far from finished, but the overall architecture is there." I took that to mean I should be able to see through a basic design (I was trying to make a two transistor LED flasher) all the way from schematic to gerber. I got stuck at the component/part creation step. I found this part of the software to be difficult to use and poorly documented. The wiki claims that part creation is easy and part management is simple. I thought I would relate my experience as it was clearly not what was intended.

I for myself didn't try the software because I am aware of the WIP part and don't understand enough from github, coding and all that stuff to be particulary helpful. But I subscribed to the thread because I am interested in the software and think it has some potential. So I am always happy about any update here and hope that the project will keep going :)

What a piss weak excuse! Never mind me, sit down and try the software if you find it interesting.
 

Offline Ysjoelfir

  • Frequent Contributor
  • **
  • Posts: 542
  • Country: de
Re: New work-in-progress EDA package!
« Reply #42 on: November 21, 2017, 08:47:57 am »
What a piss weak excuse! Never mind me, sit down and try the software if you find it interesting.
Jep, definitely rude.  :--
When I find the time I may take a look, but I will most definitely not do so just because some rude guy on the net tells me to do that. Sorry.
Greetings, Kai \ Ysjoelfir
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #43 on: November 21, 2017, 10:34:47 am »
Just for reference. At least one user over at https://www.mikrocontroller.net/topic/417908 managed to create new parts, schematic and board using horizon, go figure.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #44 on: January 22, 2018, 03:12:25 pm »
Brief update: Apart from the usual continuous improvement, the 3D preview now supports STEP models for packages.
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14475
  • Country: fr
Re: New work-in-progress EDA package!
« Reply #45 on: January 22, 2018, 06:44:35 pm »
Just got to build it on MSYS2 (mingw64). There was no issue after installing all the required dependencies (quite a few).

Played with it a little.
Just a few remarks for now:
- I like how the split parts are handled (tried with the PIC32 component);
- I like antialiased graphics in general, but I think that antialiased graphics in Horizon doesn't look too good. I tried all the MSAA options, I don't really like how it turns out;
- Many functions are only available as keypresses apparently. The help windows do help, but I think most functions should be made available through others means as well (menus, toolbars, ...);
- I like the part reference auto-placement. This is a pain in most EDA packages when you rotate parts, in Horizon it's rather well done;
- The parts management tends to remain a bit obscure;
- I didn't spend much time trying, but I found routing tracks in the layout editor not very intuitive;
- There is a rather complete DRC feature, but there doesn't seem to be any kind of connectivity check (or maybe I missed it?).

All in all, it's an impressive work and there are some good ideas in it. But I think you should now focus on usability before implementing a lot more features.
Anyway, just my 2 cents.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #46 on: January 22, 2018, 07:24:46 pm »
Just got to build it on MSYS2 (mingw64). There was no issue after installing all the required dependencies (quite a few).

You don't actually need to build it yourself anymore, there are prebuilt binaries for every commit: https://ci.appveyor.com/project/carrotIndustries/horizon/build/artifacts

- I like antialiased graphics in general, but I think that antialiased graphics in Horizon doesn't look too good. I tried all the MSAA options, I don't really like how it turns out;
That's why I made it optional :)

- Many functions are only available as keypresses apparently. The help windows do help, but I think most functions should be made available through others means as well (menus, toolbars, ...);

The tools specific to the selection are available from the context menu. All tools are available from the tool popover as well. Press space to show it.

- The parts management tends to remain a bit obscure;
Yeah, it's definitely more complex than other EDA packages that only have symbol and package, but it allows for greater flexibility and prevents duplicate symbols.

- I didn't spend much time trying, but I found routing tracks in the layout editor not very intuitive;
Try reducing the grid size. The router is the KiCad one, so there's not much I can do about it. But yeah, it takes a bit to get used to.

- There is a rather complete DRC feature, but there doesn't seem to be any kind of connectivity check (or maybe I missed it?).
In which way? In being not connected? Yeah, that's still missing. Misconnected nets will get flagged by the clearance checker.
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14475
  • Country: fr
Re: New work-in-progress EDA package!
« Reply #47 on: January 24, 2018, 02:27:38 pm »
Just got to build it on MSYS2 (mingw64). There was no issue after installing all the required dependencies (quite a few).

You don't actually need to build it yourself anymore, there are prebuilt binaries for every commit: https://ci.appveyor.com/project/carrotIndustries/horizon/build/artifacts

I know. I just tend to go all the way to the build step when I evaluate open source software.

- I like antialiased graphics in general, but I think that antialiased graphics in Horizon doesn't look too good. I tried all the MSAA options, I don't really like how it turns out;
That's why I made it optional :)

I figured that. I'm just saying that I'd like to be able to enable it and enjoy the result. ;) Do you use OpenGL for the schematics and layout rendering? I have used that before and can confirm that getting good results with antialiased 2D graphics in OpenGL is difficult. I am using the project "nanovg" for some projects of mine and it's the best result I've got so far for OpenGL 2D graphics. Still, fonts never look perfect with OpenGL, not even with nanovg, in which they look a bit better than I used to get before though.

Usually, cairo graphics look better than OpenGL-based, but whereas cairo is decently accelerated on Linux, it's pretty slow on Windows, so that would probably exclude it for a CAD program, at least if it's designed to be multi-platform. If you try KiCad with the cairo front-end, you'll know what I mean.

- Many functions are only available as keypresses apparently. The help windows do help, but I think most functions should be made available through others means as well (menus, toolbars, ...);

The tools specific to the selection are available from the context menu. All tools are available from the tool popover as well. Press space to show it.

I didn't always find all the tools. Didn't know about the "space" shortcut to make it pop up though. Yet another keypress you have to know about. ;) But yeah, once you know that trick, it's better.

- There is a rather complete DRC feature, but there doesn't seem to be any kind of connectivity check (or maybe I missed it?).
In which way? In being not connected? Yeah, that's still missing. Misconnected nets will get flagged by the clearance checker.

Exactly. As in not connected. Making sure a complex design is completely routed without this feature can lead to suicide in some cases.  ;D

Another thing I didn't figure out how to do (or don't know if it's possible) is to modify parts values directly from the schematics. For instance, changing a resistor from 10k to 20k. The value field is always grayed out. Changing the part completely when you just want to change a value is a royal pain. I understand that OTOH, it allows to always get the right manufacturer part number, but there certainly is something to work on here. Unless we can and I just missed how to do it...

 

Offline Yansi

  • Super Contributor
  • ***
  • Posts: 3893
  • Country: 00
  • STM32, STM8, AVR, 8051
Re: New work-in-progress EDA package!
« Reply #48 on: January 24, 2018, 03:00:28 pm »
What's so freaking complicated about having the grid user settable to ANY arbitrary step, including NO GRID setting?

I think in this case Eagle is only the one tool that get the grid function right, including the ALT to switch between two arbitrarily user set grid sizes.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #49 on: January 24, 2018, 08:01:51 pm »
I went with OpenGL since one of my goals for horizon is to have a single canvas/editor for everything from symbol to board. Drawing schematics with OpenGL is an overkill for sure, but it keeps overall complexity down. (And it's certainly better than KiCad's wxDC)

Quote
I didn't always find all the tools. Didn't know about the "space" shortcut to make it pop up though. Yet another keypress you have to know about. ;) But yeah, once you know that trick, it's better.
In fact, if you're lazy, space is the only shortcut you'll need to remember. Just hit space and search for the tool you want to use.

Quote
Another thing I didn't figure out how to do (or don't know if it's possible) is to modify parts values directly from the schematics. For instance, changing a resistor from 10k to 20k. The value field is always grayed out. Changing the part completely when you just want to change a value is a royal pain.
That's why I made changing parts a low-effort operation: Use the tool "assign part" to change the component's part, no need to re-add the resistor. Having a generic 12k 0603 resistor without any part number associated with it is worthless for the BOM (BOM export still missing/WIP).

What's so freaking complicated about having the grid user settable to ANY arbitrary step, including NO GRID setting?

I think in this case Eagle is only the one tool that get the grid function right, including the ALT to switch between two arbitrarily user set grid sizes.
Yeah, there's still some room for improvement on how grids are handled. I don't see your first point, you can just type in "1.234mm" and it'll work.  As a stand-in until there's more than one grid, holding down alt will divide the grid by a factor of 10.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New work-in-progress EDA package!
« Reply #50 on: January 24, 2018, 09:01:37 pm »
Quote
Another thing I didn't figure out how to do (or don't know if it's possible) is to modify parts values directly from the schematics. For instance, changing a resistor from 10k to 20k. The value field is always grayed out. Changing the part completely when you just want to change a value is a royal pain.
That's why I made changing parts a low-effort operation: Use the tool "assign part" to change the component's part, no need to re-add the resistor. Having a generic 12k 0603 resistor without any part number associated with it is worthless for the BOM (BOM export still missing/WIP).
Better keep it that way! Just changing values on parts is very bad practise because you can never create an accurate BOM without also changing the manufacturer's part number and other things like the footprint, etc. Keep in mind that a component is way more than just a value, symbol and a footprint.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: New work-in-progress EDA package!
« Reply #51 on: January 25, 2018, 11:16:23 pm »

I played around with it a bit...

First of all :

One thing that annoys the snot out of me ( or : i can't find how to do it .. ) is command retention.

schematic symbol editor : invoke command. lets say Draw Line.  I click left mouse , click left mouse somwhere else ,click right mouse somewhere else to end operation.
To draw another line i need to reinvoke DL.

That should be changed to :
click RMB : terminate current drawing operation but retain current command. Only when you click it again (rmb) or hit <esc> do you fall out of the DL command.

to draw two lines :

DL
lmb -> rmb terminates current line
lmb -> rmb terminates current line
rmb : terminates dl since no line drawing is in effect


Cosmetics : i want to adjust all colors of the UI. i am colorblind and some of the colors in use are VERY confusing. i also want a full size cursor ...

Editing. when clicking a line the line highlights but i cannot move it unless i invoke a command... that's not good. you need to strive to have a UI that needs as few possible clicks/ keyboard hits ... if i grab a line i should be able ot move it. if i  grab a line by an endpoint : i move that endpoint and attached lines rubberband. if i grab a line in the center : the line splits and a new joint is inserted. if i grab the line anywhere else : the line moves rubberbanding the endpoints.

editing seems to be not possible on 'groups'. i selected a bunch of lines and changed width : only one line changed width ... until i clicked the checkbox. there is no need for the checkbox. simple apply immediately to the selection.
there is no 'cancle for edits...' i would expect if i hit <esc> it does not apply the changes.

Undo / redo ddbuttons ? we really need a small ribbon of buttons at the top ... just having keystrokes is .. meh ...
Help : it is not immediately obvious that the key sequence list is actually scrollable.. not until you hover over the edge of that window... that is bloody annoying. don't make too fancy UI's. this is not a webpage.

Selection : there is no need for selection modifiers : select from top left to bottom right : only elements fully included. select from bottom right to top up  : select 'touching' elements.
i would also like to see a select line command : instead of drawing a box : you draw a line. anyting that is touched by that line is selected.

i would like to see a 'subtract' from selection just like holding down CTRL lets you 'add' to an existing selection i would want ALT to subtract from a selection ( or have a toggle operation. : when holding CTRL : if the item clicked is selected : deselect it from the group. )

command reentry : i really want to see command re-entry. the ability to invoke an operation while doing another. i am in the middle of drawing a line and see something is in the way : i can invoke the move operation : select an object or group : move them end when ending the move i am back in the drawing operation at the last coordinate and can continue what i was doing.

there is a rotate and mirror. i would like to see a flip around X and flip around Y operation.

selection behavior is not consistent. if i try to grab a line using a 'box drawing' operation : i need to trap at least half of the line to include it. on a pin : the moment i touch it it grabs ...

move operation : i would like ot be able to pick the 'origin' now it picks wherever the mouse is as origin. think like this : Move ( m)  from here (LMB)  to there (lmb)

i do not like the way you build parts. you need to define the pins first in one editor, then enter another editor to place them. why can't this happen on-the-fly ? 



Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: New work-in-progress EDA package!
« Reply #52 on: January 25, 2018, 11:33:39 pm »
Schematic editor : same comment as in symbol editor : retain the invoked command ! colors . cursor sizes ...

Place part : i pick a part in the browser . click in the schematic to place it. and that's it. What if i need the same one again ? .. i need to do it all over ... that is not good.
this should be :
PP -> pick part in browser -> click 'PLACE' (or hit <ENTER>)  LMB : place instance. LMB : place another instance , LMB : place another instance RMB :end of placing but retain command-> go back into part browser to pick something else. <ESC> end part placement

moving parts needs to happen without command invocation. holding down the part and moving the mouse should move the part.

part rotation : when rotating the part 90 degrees you also rotate the designator and value 90 degrees. those should stay horizontal....

part properties. can we make other parameters visible. for example in a capacitor i specify working voltage ... so i want to see C1 10uF 25V  for a resistor i may wan to see 1K 1%

hitting <space> : again it is not immediately obvious that popup is scrollable... make that scrollbar visible ! that 'autodimming' and hiding-themselves scrollbar is annoying ! UI elements should not play hide and seek.

flip around x and y axis commands are helpful

'stealing' an existing part.   assign the <INSERT> key on the keyboard to make a duplicate of whatever is under the mouse cursor.

so if i point to a capacitor and hit 'insert' it makes a duplicate of that exact part , rests the deisgnator of the copy and lets me place that part with LMB. that speeds up drawing schematics as you often need more of the same ( like adding decoupling caps or resistors as your schematic grows )


Overall comment : The basic 'manipulation' of objects is lacking functionality.
click a part to select. ok
click something else picks this part : deselect all others : ok.
hold CTRL : adds to existing selection. : ok
how do i 'subtract' from selection ? CTRL should be a 'toggle' operation : if part click is not selected : add it to selection. if it is already selected 'subtract' it from selection.

use the way many other cad programs work
drag top left to bottom right : only elements fully enclosed are selected / added to selection (<CTRL> key)
drag bottom right to top left : only elements 'touching' rectangle are selected or added <CTRL key>

moving a part or selected items needs to be commandless.: hold LMB and move. release LMB to 'drop'. if you change your mind prior to dropping : hit <ESC> to cancel operation.
« Last Edit: January 25, 2018, 11:43:03 pm by free_electron »
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14475
  • Country: fr
Re: New work-in-progress EDA package!
« Reply #53 on: January 26, 2018, 03:36:19 pm »
Quote
Another thing I didn't figure out how to do (or don't know if it's possible) is to modify parts values directly from the schematics. For instance, changing a resistor from 10k to 20k. The value field is always grayed out. Changing the part completely when you just want to change a value is a royal pain.
That's why I made changing parts a low-effort operation: Use the tool "assign part" to change the component's part, no need to re-add the resistor. Having a generic 12k 0603 resistor without any part number associated with it is worthless for the BOM (BOM export still missing/WIP).
Better keep it that way! Just changing values on parts is very bad practise because you can never create an accurate BOM without also changing the manufacturer's part number and other things like the footprint, etc. Keep in mind that a component is way more than just a value, symbol and a footprint.

That's right when you're at (or close to) the manufacturing stage, and/or when you're modifying an existing design.
When you're at the early design stage, it can get pretty annoying. Not all parts are linked to any specific manufacturer at this stage, especially passives.
You may also want to use the schematics editor just to draw some schematics for illustration purposes and not for manufacturing purposes.

Even for manufacturing, not everyone/every company will have the same way of generatings BOMs.
In many cases, the BOMs are post-processed and verified before sending orders anyway, so to be able to really make use of this feature on a large scale, it would be more interesting to be able to link your parts to some kind of ERP database, instead of maintaining your own, CAD-centric database, which is a whole other endeavour.

Trapping users in just one way of doing things just because you think it's right is rarely a good idea.

One way that I would find a lot more flexible would be to allow the user to change values/attributes at will, but automatically check them against manufacturers parts numbers when generating the BOM.
In case of a detected discrepancy (or the absence of any manufacturer's PN for a given part), the software would allow you to search your database and assign one or create a new entry if none is a match.

Additionally, for some parts (again, especially for passives), it may be more relevant to be able to attach some kind of specification sheet rather than tying it to a specific vendor. Whether you work at a company that has a buying department or you subcontract buying your components by the company doing your board assembly, you don't always decide yourself what the final PN for each part will be (unless you have extremely specific requirements such as in safety related products), and I think that short specs for this kind of parts is a lot more productive and to the point than specific part numbers. Of course, you may use the MPN field for your own spec sheet ID in this case, but that may get confusing.

Just my 2 cents.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #54 on: January 26, 2018, 07:03:08 pm »
First of all, thanks for your comments on the interaction side of things, your the first one to provide reasonable feed back in that regard.


I played around with it a bit...

First of all :

One thing that annoys the snot out of me ( or : i can't find how to do it .. ) is command retention.

schematic symbol editor : invoke command. lets say Draw Line.  I click left mouse , click left mouse somwhere else ,click right mouse somewhere else to end operation.
To draw another line i need to reinvoke DL.

That should be changed to :
click RMB : terminate current drawing operation but retain current command. Only when you click it again (rmb) or hit <esc> do you fall out of the DL command.

to draw two lines :

DL
lmb -> rmb terminates current line
lmb -> rmb terminates current line
rmb : terminates dl since no line drawing is in effect

I got your point, looks reasonably easy to implement. There are two ways this feature may come into existence:
 a) RMB resets the tool, so it's just like you started it, key presses will go to the tool.
 b) RMB puts the tool into a "floating state", LMB will make the tool active again, but pressing a key will make the tool exit and start the requested tool.

In any case, ESC will exit the tool. Is that about what you're after?

Cosmetics : i want to adjust all colors of the UI. i am colorblind and some of the colors in use are VERY confusing. i also want a full size cursor ...

May take some time, but is certainly doable. Can you elaborate what you're envisioning by a full size cursor? A crosshair that extends to the edges?

Editing. when clicking a line the line highlights but i cannot move it unless i invoke a command... that's not good. you need to strive to have a UI that needs as few possible clicks/ keyboard hits ... if i grab a line i should be able ot move it. if i  grab a line by an endpoint : i move that endpoint and attached lines rubberband. if i grab a line in the center : the line splits and a new joint is inserted. if i grab the line anywhere else : the line moves rubberbanding the endpoints.

Seems doable.

editing seems to be not possible on 'groups'. i selected a bunch of lines and changed width : only one line changed width ... until i clicked the checkbox. there is no need for the checkbox. simple apply immediately to the selection.
there is no 'cancle for edits...' i would expect if i hit <esc> it does not apply the changes.

I never liked property editors that display placeholder values when selecting multiple objects, that's why the property editor always displays a specific object with the possibility to propagate the value to the other objects. Maybe this can be turned into a setting.

Undo / redo ddbuttons ? we really need a small ribbon of buttons at the top ... just having keystrokes is .. meh ...
Help : it is not immediately obvious that the key sequence list is actually scrollable.. not until you hover over the edge of that window... that is bloody annoying. don't make too fancy UI's. this is not a webpage.
The hidden by default scrollbars are a Gtk thing. IMO it's a sane decision since it reduces visual clutter. You can get back the always-visible scroll bars by creating the environment Variable GTK_OVERLAY_SCROLLING and set it to 0.


Selection : there is no need for selection modifiers : select from top left to bottom right : only elements fully included. select from bottom right to top up  : select 'touching' elements.
i would also like to see a select line command : instead of drawing a box : you draw a line. anyting that is touched by that line is selected.
I've always found the selection behaviour based on the direction of the box to be a bit counter-intuitive, but an "auto" selection qualifier should be possible. The "paint" selection tool (available from the selection menu at the bottom left corner) does select by line.

i would like to see a 'subtract' from selection just like holding down CTRL lets you 'add' to an existing selection i would want ALT to subtract from a selection ( or have a toggle operation. : when holding CTRL : if the item clicked is selected : deselect it from the group. )

I had that on my mind for some time, but couldn't motivate myself to actually implement it. Thanks for the nudge.

command reentry : i really want to see command re-entry. the ability to invoke an operation while doing another. i am in the middle of drawing a line and see something is in the way : i can invoke the move operation : select an object or group : move them end when ending the move i am back in the drawing operation at the last coordinate and can continue what i was doing.
I kinda expected to hear that from you ;) I'm afraid, but this feature is unlikely to come to life in the near future, since tools will then have to deal with the document being modified behind their back.

there is a rotate and mirror. i would like to see a flip around X and flip around Y operation.
Suggestions for shortcuts?

selection behavior is not consistent. if i try to grab a line using a 'box drawing' operation : i need to trap at least half of the line to include it. on a pin : the moment i touch it it grabs ...
By default, an object is selected as soon as its center (the diamond) is inside the selection box.

move operation : i would like ot be able to pick the 'origin' now it picks wherever the mouse is as origin. think like this : Move ( m)  from here (LMB)  to there (lmb)

What's the difference between these two? Currently, you specify the origin first, then start the tool. Both interactions allow for the same operations.

i do not like the way you build parts. you need to define the pins first in one editor, then enter another editor to place them. why can't this happen on-the-fly ?
Symbols aren't the source of truth for pin definitions, the units are. Somehow tacking the unit editor onto the symbol editor to enable simultaneous editing should be within the realm of possibility.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #55 on: January 26, 2018, 07:21:27 pm »
Schematic editor : same comment as in symbol editor : retain the invoked command ! colors . cursor sizes ...

Easy job, both editors share large amounts of code, so some of the points you mention for symbol and schematic editor will get fixed at once.


Place part : i pick a part in the browser . click in the schematic to place it. and that's it. What if i need the same one again ? .. i need to do it all over ... that is not good.
this should be :
PP -> pick part in browser -> click 'PLACE' (or hit <ENTER>)  LMB : place instance. LMB : place another instance , LMB : place another instance RMB :end of placing but retain command-> go back into part browser to pick something else. <ESC> end part placement

Great idea!


part rotation : when rotating the part 90 degrees you also rotate the designator and value 90 degrees. those should stay horizontal....
This happens for symbols such as resistor and capacitor since these include information on how the text should be placed for all orientations. It's up to the one who draws the symbol...

part properties. can we make other parameters visible. for example in a capacitor i specify working voltage ... so i want to see C1 10uF 25V  for a resistor i may wan to see 1K 1%
Parts already include parameters such as working voltage, but displaying these on the schematic is still yet to come.

'stealing' an existing part.   assign the <INSERT> key on the keyboard to make a duplicate of whatever is under the mouse cursor.

so if i point to a capacitor and hit 'insert' it makes a duplicate of that exact part , rests the deisgnator of the copy and lets me place that part with LMB. that speeds up drawing schematics as you often need more of the same ( like adding decoupling caps or resistors as your schematic grows )

So basically, copy-paste with the addition that paste can paste more than once? Easy to implement
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New work-in-progress EDA package!
« Reply #56 on: January 26, 2018, 09:16:28 pm »
Quote
Another thing I didn't figure out how to do (or don't know if it's possible) is to modify parts values directly from the schematics. For instance, changing a resistor from 10k to 20k. The value field is always grayed out. Changing the part completely when you just want to change a value is a royal pain.
That's why I made changing parts a low-effort operation: Use the tool "assign part" to change the component's part, no need to re-add the resistor. Having a generic 12k 0603 resistor without any part number associated with it is worthless for the BOM (BOM export still missing/WIP).
Better keep it that way! Just changing values on parts is very bad practise because you can never create an accurate BOM without also changing the manufacturer's part number and other things like the footprint, etc. Keep in mind that a component is way more than just a value, symbol and a footprint.
That's right when you're at (or close to) the manufacturing stage, and/or when you're modifying an existing design.
When you're at the early design stage, it can get pretty annoying. Not all parts are linked to any specific manufacturer at this stage, especially passives.
Make the database right first! Going through all the parts and checking them (even with an automated process) is a real PITA. I used to have a colleague who changed parts values instead of the underlying parts. That caused quite a bit of grief when debugging boards because the parts didn't got updated and the wrong values end up on the assembled boards.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: New work-in-progress EDA package!
« Reply #57 on: January 29, 2018, 04:55:42 pm »
Quote
I got your point, looks reasonably easy to implement. There are two ways this feature may come into existence:
 a) RMB resets the tool, so it's just like you started it, key presses will go to the tool.
 b) RMB puts the tool into a "floating state", LMB will make the tool active again, but pressing a key will make the tool exit and start the requested tool.
Quote

The idea is that a tool stays active until it is terminated.

Activation : command invoke using keyboard, or graphical menu
De-activation : RMB when no operation is in progress, or <ESC>

So drawing a line :

follow along with the command sequence:

Activate tool : DL : the tool now waits for you to pick the first point indicated by LMB
begin a line : LMB
add a line segment : LMB
add another line segment : LMB
end line segment : RMB
At this point the tool is waiting for one of two things :
  - the user begins a new line by clicking LMB
  - the user exits the tool by clicking RMB again.

The state machine is very simple
- invoke tool : state = in_idle
- if state = in_idle
     if event =  RMB -> exit tool
     if event = <ESC> -> exit tool
     if event = LMB -> set origin , state = indraw
- if state - in_draw
   if event = lmb -> add segment
   if event = rmb -> end segment : state = in_idle
   if event =<ESC> -> abort draw (delete entire line): state = idle
   if event = <backspace> -> cancel last segment ( if not first one )



Cosmetics : i want to adjust all colors of the UI. i am colorblind and some of the colors in use are VERY confusing. i also want a full size cursor ...

full size cursor is a crosshair that extends from the edges of the viewport.

May take some time, but is certainly doable. Can you elaborate what you're envisioning by a full size cursor? A crosshair that extends to the edges?

[quito]I never liked property editors that display placeholder values when selecting multiple objects, that's why the property editor always displays a specific object with the possibility to propagate the value to the other objects. Maybe this can be turned into a setting.

so if i have a wire : how can i change the entire wire to a certain color / thickness ? that is the idea of group selecting.
Same thing if i want to change the font or size of a number of netnames. i am NOT going to do that one by one ... Select all the ones you want to affect and do the edit in one shot...

Quote
reduces visual clutter.
scrollbars are NOT visual clutter ... i hate objects that play hide and seek. There is nothing more aggravating than going to a website : click somewhere on the screen and then find out they were 'still rendering' and what is there now all of a sudden 'shifted' a bit and you end up somewhere totally different than intended. UI objects should not move themselves nor hide themselves.


Quote
I've always found the selection behaviour based on the direction of the box to be a bit counter-intuitive, but an "auto" selection qualifier should be possible. The "paint" selection tool (available from the selection menu at the bottom left corner) does select by line.
all the cad tools work like that. solidworks, autocad, fusion360 , inventor . people using cad expect that from the tools ...

Quote
there is a rotate and mirror. i would like to see a flip around X and flip around Y operation.
Suggestions for shortcuts? 
Quote
  X and Y ( flip around X and flip around y axis ... )

Quote
move operation : i would like ot be able to pick the 'origin' now it picks wherever the mouse is as origin. think like this : Move ( m)  from here (LMB)  to there (lmb)

What's the difference between these two? Currently, you specify the origin first, then start the tool. Both interactions allow for the same operations.
Quote
now i need to point first to what i want to move. what if what i want to move is a selection (multiple objects)? and i want to specify the origin to be a specific object within the selection ? and the target to be another specific object within the same selection .... exmaple: you need to extend a 16 pin footprint to a 20 pin footprint : select the right 4 pads , including silkscreen and courtyard. copy command. click on the second third last pad from the right as origin. click on last pad as target.
the part is now extended. i don't need to measure anything. all i need to do now is delete 2 floating lines. i use the inter object dimensions as pick and place points ( i assume the 'pick tool' will gravitate to center of pads, center of lines and end.


i do not like the way you build parts. you need to define the pins first in one editor, then enter another editor to place them. why can't this happen on-the-fly ?
Symbols aren't the source of truth for pin definitions, the units are. Somehow tacking the unit editor onto the symbol editor to enable simultaneous editing should be within the realm of possibility.
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #58 on: January 30, 2020, 09:22:08 pm »
Just in case someone's still following this thread: There's a new thread for the 1.0 release over at Horizon EDA Version 1.0!
« Last Edit: January 31, 2020, 12:46:26 am by Lukas »
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11639
  • Country: my
  • reassessing directives...
Re: New work-in-progress EDA package!
« Reply #59 on: January 30, 2020, 11:27:42 pm »
please correct your link... quote and copy paste this... Horizon EDA Version 1.0! btw it looks interesting, but wait until i can port it to my 64 bits machine and have time playing with it.
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 Wilksey

  • Super Contributor
  • ***
  • Posts: 1329
Re: New work-in-progress EDA package!
« Reply #60 on: May 11, 2020, 12:18:16 am »
I just downloaded the latest version (1.1.0) from the releases on GH and after installing, I created a "pool" and it promptly crashed with an OpenGL error, my OpenGL version on my dev laptop seems to be version 4.1 and below, what version of OGL does it require to run?!?

It seems it won't do anything but crash, giving the same OGL error, perhaps installing the latest NVIDIA drivers to the laptop would help but I don't really want to mess around with the graphics drivers if I can help it as last time I had to roll back to the Dell drivers as the NVIDIA ones made it run slower.

I have run the GL extensions viewer 6 test and it tests fine all the way up to OGL 4.1 then 4.2 onwards it just says unsupported for my driver.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #61 on: May 11, 2020, 10:47:30 am »
Can you post a screenshot of the error? That's the first time, I've heard of OpenGL issues on nvidia, since their drivers are usually quite good.
 

Offline Wilksey

  • Super Contributor
  • ***
  • Posts: 1329
Re: New work-in-progress EDA package!
« Reply #62 on: May 13, 2020, 08:57:38 pm »
Hi Lukas,

Yes, the first one is after selecting the base directory for the pool and clicking the "Create" button, the 2nd one is after I press the "Ignore" button, after this it just crashes with "this program is not responding" etc.

I haven't found anything else that doesn't work on this chip with OGL, unless it requires a newer version or has missing extensions that are only available on newer cards etc.

If i load it back up and create a new project, it allows me to even though the pool is empty, every button I click on afterwards (sch, pcb etc) does the same, shows that message, then crashes.

Cheers
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: New work-in-progress EDA package!
« Reply #63 on: May 14, 2020, 02:20:21 pm »
No idea what causes this, you're not using remote desktop or anything similar? Gtk is sometimes a bit picky when it gets to OpenGL on windows...

When opening the schematic/boar editor and they crash, you should get a yellow bar in the project manager window with a button "show output". What's in the output window?
 

Offline Wilksey

  • Super Contributor
  • ***
  • Posts: 1329
Re: New work-in-progress EDA package!
« Reply #64 on: May 14, 2020, 06:31:38 pm »
Hi Lukas,
I've ran other things with GTK and it seems OK, not sure if they were using OGL though, and no remote desktop / VNC etc, just straight windows desktop.

No yellow bar, just crashes the program same as already described, does it store a log externally ?
Thanks
 

Offline Wilksey

  • Super Contributor
  • ***
  • Posts: 1329
Re: New work-in-progress EDA package!
« Reply #65 on: May 14, 2020, 06:34:29 pm »
Hang on, I managed to stop it crashing completely and go back to the screen,
stdout shows nothing,
stderr shows:
Quote
(horizon-eda:12264): GLib-GIO-WARNING **: 19:29:43.859: win32 session dbus binary not found: C:\Program Files\Horizon EDA\\gdbus.exe

that is all that it says.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf