Author Topic: Horizon EDA Version 1.0!  (Read 30461 times)

0 Members and 1 Guest are viewing this topic.

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Horizon EDA Version 1.0!
« on: January 29, 2020, 09:18:20 pm »
Hello everyone,

After 3 years of off-and-on development, what began as https://www.eevblog.com/forum/eda/new-work-in-progress-eda-package!/ can finally be recommended for general usage. See https://horizon-eda.readthedocs.io/en/latest/feature-overview.html for a list of features and https://horizon-eda.readthedocs.io/en/latest/installation.html#stable-release for installation instructions.

Have fun!
 
The following users thanked this post: dufflespank

Offline bandgap

  • Contributor
  • Posts: 47
  • Country: us
  • .: no electrons here :.
    • Bandgap.net
Re: Horizon EDA Version 1.0!
« Reply #1 on: January 30, 2020, 03:10:01 am »
 :-+ Just installed on Manjaro and runs great. I wasn't expecting as much functionality as what you have now. I'm very impressed and may actually give this go on an actual project - mainly because I love how you've structured the library management!

-Clayton
 

Offline alexanderbrevig

  • Frequent Contributor
  • **
  • Posts: 700
  • Country: no
  • Musician, developer and EE hobbyist
    • alexanderbrevig.com
Re: Horizon EDA Version 1.0!
« Reply #2 on: February 02, 2020, 08:11:36 pm »
Congrats!
I hope to get some time soon to test it out again and maybe contribute :)
 

Offline magtux

  • Newbie
  • Posts: 9
  • Country: in
Re: Horizon EDA Version 1.0!
« Reply #3 on: February 10, 2020, 11:04:56 am »
Checked it out. It's very good. I'd pay to use something like this. Amazing work man.  :-+
 

Offline BigBoss

  • Regular Contributor
  • *
  • Posts: 115
  • Country: fr
Re: Horizon EDA Version 1.0!
« Reply #4 on: February 10, 2020, 10:20:56 pm »
Its' Schematic Features look more estethique than some commercial ones..I've liked it..
Layout looks quite promising and if you continue to improve, it may be alternative.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #5 on: February 11, 2020, 12:17:09 am »
Thanks for the nice words everyone :)

Its' Schematic Features look more estethique than some commercial ones..I've liked it..
Layout looks quite promising and if you continue to improve, it may be alternative.

Yeah, it's pretty embarrassing what some big dollar EDA vendors try to sell as a schematic editor...
What's the thing you're missing in the board editor?
 

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #6 on: February 12, 2020, 11:30:23 am »
Thanks for the nice words everyone :)

Its' Schematic Features look more estethique than some commercial ones..I've liked it..
Layout looks quite promising and if you continue to improve, it may be alternative.
Will you implement comments from the other thread? On placing, shortucs etc. ?
I am looking forward to test it. Nevertheless, I am quite settled on KiCad now.

Yeah, it's pretty embarrassing what some big dollar EDA vendors try to sell as a schematic editor...
What's the thing you're missing in the board editor?

Offline dr.diesel

  • Super Contributor
  • ***
  • Posts: 2214
  • Country: us
  • Cramming the magic smoke back in...
Re: Horizon EDA Version 1.0!
« Reply #7 on: February 12, 2020, 03:04:14 pm »
Wow great job!

What are the long term plans?

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #8 on: February 12, 2020, 08:53:10 pm »
Wow great job!

What are the long term plans?

I'm afraid nothing too exciting. Just going on fixing bugs and implementing features as I see fit based on what's on my mind and suggestions from users.

Quote
Will you implement comments from the other thread? On placing, shortucs etc. ?

I haven't read through each and every line in the old thread, but most issues brought up should be fixed in one way or another. Keyboard shortcuts and colors are fully customizable.

 
The following users thanked this post: dr.diesel

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #9 on: March 04, 2020, 11:37:28 pm »
A lot has happened since the 1.0 release at the end of January, so I wrote a blog post summarizing the changes: https://blog.horizon-eda.org/progress/2020/03/04/progress-2020-02.html
 
The following users thanked this post: Warhawk

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #10 on: March 06, 2020, 08:30:16 pm »
Lukas, this is great.

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #11 on: March 21, 2020, 09:16:00 pm »
Hello Lukas,
I've gave it a go and so far I really like it  :-+. For one man project it's mighty impressive. Few library questions:
Is there a way how to customize parametric data? Add new fields, add new classes? I have extensive system of classes and parameters that I'd like to use.
Is there a way how to edit/create multiple components at once? Imagine you have CSV/xls with all parameters you'd need for all capacitors/resistors from one series.

Since you already have database running for parametric search, why do you keep parts as individual json files?
If parts were stored in database, mass edit/creation would be a breeze. And then you could connect it to outside databases, share across the teams etc.
You'd be first open source eda with enterprise library management.

Also your web page is missing donate button :)
 
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #12 on: March 21, 2020, 11:19:23 pm »
Hello Lukas,
I've gave it a go and so far I really like it  :-+. For one man project it's mighty impressive. Few library questions:
Is there a way how to customize parametric data? Add new fields, add new classes? I have extensive system of classes and parameters that I'd like to use.
There's the tables.json in the pool directory that contains the definition for the various parametric tables. The exact format isn't documented anywhere, but should be more or less obvious from existing tables.

Is there a way how to edit/create multiple components at once? Imagine you have CSV/xls with all parameters you'd need for all capacitors/resistors from one series.
There's a set of ad-hoc scripts such as https://github.com/horizon-eda/horizon-pool/blob/master/scripts/panasonic-erj/gen.py that should be fairly easy to adapt to your needs.

Since you already have database running for parametric search, why do you keep parts as individual json files?
If parts were stored in database, mass edit/creation would be a breeze. And then you could connect it to outside databases, share across the teams etc.
You'd be first open source eda with enterprise library management.
The thing is that SQLite database files don't mix particularly well with version control/git. Having each item in one file keeps diffs nice and tidy and avoids merge conflicts. Locally, all metadata gets loaded into SQLite database for easy and fast querying.

Also your web page is missing donate button :).

Unfortunately, we haven't yet invented a way to donate time...
 

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #13 on: March 22, 2020, 09:54:53 am »
Thanks,
for the pointers, I'll look into it!
 

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #14 on: March 23, 2020, 07:05:52 am »
Lukas, you mentioned some updates and changes. Will you release a new version any soon?

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #15 on: March 23, 2020, 09:18:43 am »
Lukas, you mentioned some updates and changes. Will you release a new version any soon?
I've pondered on this as well, and came to the conclusion that a once-a-quarter release cycle seems to be a good compromise between providing new features and stability and downstream churn. By this, the next release (1.1.0) should happen on 2020-04-29.
 
The following users thanked this post: Warhawk

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #16 on: March 23, 2020, 08:56:21 pm »
Feature suggestions:
Pool editor/unit editor
  • import pin list from CSV or from clipboard
  • ability to copy pins - I can select lines and delete them, but I can not copy. In lot of case you have a multiple pins of same name
  • pin selection stays in places after delete. you select line 1,3,5 and delete them. pins will disappear, list will reorder, lines 1,3,5 will be still selected(containing new pins). First time I pressed del. one more time. I would expect the selection to disappear after del.
  • if you add a new line via + button, it fills in the name based on previous name(it does auto increment, which is nice). would be nice if there was option to fill the pin name with content from clipboard.
Part editor
  • swap pads and pin pane/area, so pad numbers are on left. In all datasheets that I have seen you have pad numbers in first column, and name in second. Here it is the other way around. It does not feel right/makes my brain hurt.
  • ability to import csv map file(from datasheet)

Schematic editor
  • standard shortcut ctrl + x is not implemented
  • ability to change sheet while placing a part, so I can place part b directly on other sheet
  • warning(and offering update pool cahe) when user is placing component which cached symbol is out of sync with pool. You place part which you have edited(and is already presnt on schematic), in place part window you will see current(updated version) of schematics symbol. Yet if you place it, you will get old version on the schematics. updating the cache pools will fix this, but the issue is that You are not getting what you are seeing in part browser. 

I haven't spent much time with it yet, the above observations are based on my notion "how it is supposed to work", yours might differ. It's possible that some of the stuff is already there, and I just did not discovered it yet.

But so far in general it behaves as I'd expect, I find what I need at places that I expect. It's consistent, with good help. I actually smiled when I was creating my first part, because the stuff I needed was already there and I was able to find it very quickly. It did what i needed to do in a way I expected.

You did a great job Lukas.

 

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #17 on: March 23, 2020, 09:27:03 pm »
One more - create  linked unit, symbol and entity from kicad schematic component. It seems that kicad gained a critical mass to be noted. You can get schematic symbols for kicad from parts vendor (through ultra librarian export).
 

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #18 on: March 23, 2020, 09:32:57 pm »
How can the title block be filled? I've created a key in schematics properties with a same name ($author), both for the particular sheet and global, but title block stays the same.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #19 on: March 24, 2020, 12:07:41 am »
How can the title block be filled? I've created a key in schematics properties with a same name ($author), both for the particular sheet and global, but title block stays the same.

Try the latest build, from https://ci.appveyor.com/project/carrotIndustries/horizon (Aritfacts). There have been some quite significant improvements to titleblocks lately. In the old, one they key has to be author (without the dollar sign).

One more - create  linked unit, symbol and entity from kicad schematic component. It seems that kicad gained a critical mass to be noted. You can get schematic symbols for kicad from parts vendor (through ultra librarian export).

That's been on my list of things I might to at some point for quite while. Their current symbol format is quite messy, but definitely doable.



> import pin list from CSV or from clipboard
> ability to import csv map file(from datasheet)
> swap pads and pin pane/area, so pad numbers are on left. In all datasheets that I have seen you have pad numbers in first column, and name in second. Here it is the other way around. It does not feel right/makes my brain hurt.
Try the part wizard (in the package tab).

> ability to copy pins - I can select lines and delete them, but I can not copy. In lot of case you have a multiple pins of same name
Adding a new pin will copy everything from the currently selected pin.

> I would expect the selection to disappear after del.
The selection staying in place makes it easier to delete a sequence of pins.

> would be nice if there was option to fill the pin name with content from clipboard.
After adding a new pin, the pin's name is focused, so you can press Ctrl-v right away.

> standard shortcut ctrl + x is not implemented
You're the actually first one to bring this up. I haven't implemented it yet as it'll do the same as Ctrl-c followed by delete. If you want to move symbols and everything attached to them to another sheet, "Move to other sheet" is thing you want to use.

> ability to change sheet while placing a part, so I can place part b directly on other sheet
That'll require some in-depth changes, I'll have to see if it's worth the added complexity.

> warning(and offering update pool cahe) when user is placing component which cached symbol is out of sync with pool.
The situation is even a bit worse than this: The schematic editor itself keeps its own cache that only gets refreshed once it is reopened, so we have three places that could be out of sync. Someone else brought up a similar issue to me. I think the easiest way out of this would be to show a message in the part browser if the user selected a part that hasn't been updated in the cache yet.
 

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #20 on: March 24, 2020, 09:09:01 am »
Lukas, you mentioned some updates and changes. Will you release a new version any soon?
I've pondered on this as well, and came to the conclusion that a once-a-quarter release cycle seems to be a good compromise between providing new features and stability and downstream churn. By this, the next release (1.1.0) should happen on 2020-04-29.
Lukas, thank you. This is a model I like.
VG, Jiri

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #21 on: March 27, 2020, 08:47:45 pm »
Try the latest build, from https://ci.appveyor.com/project/carrotIndustries/horizon (Aritfacts). There have been some quite significant improvements to titleblocks lately. In the old, one they key has to be author (without the dollar sign).
Thanks! Title blocks works nicely

Try the part wizard (in the package tab).

I will try next time I create a new unique part. The thing is I've decided to use the fully functionality of your library system. So I have units and symbols for functional blocks. I2C with address line, I2S input etc. And those would get glued together with part specific units/symbols. I'll try the wizard and post feedback.


> ability to copy pins - I can select lines and delete them, but I can not copy. In lot of case you have a multiple pins of same name
> Adding a new pin will copy everything from the currently selected pin.
>

Possible workaround, thanks! Still Ctrl+c/v is a standard shortcut, one that you expect to work everywhere


> would be nice if there was option to fill the pin name with content from clipboard.
> After adding a new pin, the pin's name is focused, so you can press Ctrl-v right away.
>
  Aha
>
> standard shortcut ctrl + x is not implemented
> You're the actually first one to bring this up. I haven't implemented it yet as it'll do the same as Ctrl-c followed by delete. If you want to move symbols and everything attached to them to another sheet, "Move to other sheet" is thing you want to use.
>
  That's exactly what I needed


> ability to change sheet while placing a part, so I can place part b directly on other sheet
> That'll require some in-depth changes, I'll have to see if it's worth the added complexity.
>
  Probably not worth the effort. It's just something that I wanted to do and could not. It belongs to "perhaps, someday,maybe" list when all the more important stuff is implemented.


> warning(and offering update pool cahe) when user is placing component which cached symbol is out of sync with pool.
> The situation is even a bit worse than this: The schematic editor itself keeps its own cache that only gets refreshed once it is reopened, so we have three places that could be out of sync. Someone else brought up a similar issue to me. I think the easiest way out of this would be to show a message in the part browser if the user selected a part that hasn't been updated in the cache yet.
>
Warning window is all that's needed.

In pool editor when you create unit you are offered a "save as" when you save it, save as option disappear and you can only save. If you are making similar components, you have to close it, duplicate and open. Having permanent option to save as would save some work.


Few more questions for you:
How can I move part of schematic without connections. ie. move versus drag?
What does red net line means? I sometime get them when I copy. I don't get the menu on right with the parameters. I'm using default appearance, ie nets are green.
Is it possible to move designator/parts value?
I was not able to find sheet symbols and ports, how far in future is schematics hierarchy?
Is the folder structure used somewhere, or it is only for user to reasonably navigate through the jsons? Ie if I change it(rename folders, move jsons around) will  horizon just pick it up on rebuild/update, or do I need to update something manually?

I have few bugs report as well, I put them on github.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #22 on: March 29, 2020, 12:19:18 am »
> Warning window is all that's needed.
Done

> How can I move part of schematic without connections. ie. move versus drag?
Disconnect the symbol (see context menu)

> What does red net line means? I sometime get them when I copy. I don't get the menu on right with the parameters. I'm using default appearance, ie nets are green.
Red net lines are net lines that haven't got assigned a net since they aren't connected to anything.

> Is it possible to move designator/parts value?
Smash the symbol. (same as in eagle)

> I was not able to find sheet symbols and ports, how far in future is schematics hierarchy?
Dunno, not very high on my priority list yet.

> Is the folder structure used somewhere, or it is only for user to reasonably navigate through the jsons? Ie if I change it(rename folders, move jsons around) will  horizon just pick it up on rebuild/update, or do I need to update something manually?
When moving files around, you'll need to update the pool for horizon to pick up the new location. The only requirement is that the files end in .json and everything is in its proper subdirectory of the pool (symbols in symbols/ etc).
 
The following users thanked this post: Warhawk, Pitrsek

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #23 on: April 18, 2020, 08:46:23 am »
Hi,
how is the center of rotation defined if I want to rotate a group of components?
It seems that it is not rotating about the "move anchor" point.
 

Offline luzotug

  • Newbie
  • Posts: 9
  • Country: fr
Re: Horizon EDA Version 1.0!
« Reply #24 on: April 18, 2020, 09:23:55 am »
I'm a KiCad fanboy so my opinion would probably sound like a mixed review  :-\

I've just played a little bit and it feels a lot (too much ?) like KiCad : how you use the shortcuts and mouse, the interactive router (it's the same). There are of course some changes and less "eye candy" (no toolbars) but not as disruptive as I thought.
You're probably right on this, why reinvent the wheel when you can reuse and improve on existing software and already established concept. This would help people to migrate and keep the learning curve low.

On the other hand, I found the same usability "tricks" that bugs me. I'll give only one example : when you've selected multiple items, put your mouse on the other side of the screen and press M, your selection follow the mouse with this big distance between them.
It happens to me a lot in KiCad when I forgot to deselect before trying to do a hover move. In horizon at least you have big visual clue when you are in hover mode.

I also judge a software by its documentation (it's often a pain point), there's a reasonable amount of documentation and it only take a few hours to read the docs. Some sections are clear and well explained, others are only superficial.
Of course you can't compare with the huge amount of KiCad documentation, it takes time to write documentation and horizon is in infancy but it's a good start.

I haven't played enough with it, but clearly you've done a huge job in only a few years time, well done. So far horizon-eda have passed my first step : you've got me interested.
I'm still married with KiCad but horizon deserve some consideration, so I'll be making some donation (meaning ... time) soon to help.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #25 on: April 20, 2020, 07:47:19 pm »
Hi,
how is the center of rotation defined if I want to rotate a group of components?
It seems that it is not rotating about the "move anchor" point.
It's rotating about the average of all centers. In the latest version, there's rotate/mirror around cursor.

Quote
There are of course some changes and less "eye candy" (no toolbars) but not as disruptive as I thought.
You're probably right on this, why reinvent the wheel when you can reuse and improve on existing software and already established concept.

There are only so many ways to build a 2D editor in a way that people will be able to use. I tried to keep it simple and straightforward.

Quote
On the other hand, I found the same usability "tricks" that bugs me. I'll give only one example : when you've selected multiple items, put your mouse on the other side of the screen and press M, your selection follow the mouse with this big distance between them.

I guess that's a matter of taste. Would you expect the selected items to snap to the cursor?
 

Offline Frddy

  • Newbie
  • Posts: 6
  • Country: nl
Re: Horizon EDA Version 1.0!
« Reply #26 on: April 27, 2020, 12:10:54 pm »
Hey dude. I was looking for a new EDA for another project of mine.. I don't draw a lot so I start by looking around for EDAs.. Last time I used KiCad but it has some peculiarities that make it unusable for me. Then I found LibrePCB which has some really nice features, but isn't quite ready for use yet imo.. Development doesn't seem as good as the next one I found; Horizon EDA. So I thought I would share my thoughts about it, do with it what you want of course. These are just the things I found in the first half hour of fiddling around.

First of all, UI is quite nice and clean.. Does take a bit getting used to as a windows user, kinda missing a FILE menu on the topleft.. Instead, its options are is buried inside the hamburger menu on the right, feels weird. I'm guessing the look and feel comes from the GNOME background of the UI lib. It feels fast and snappy; doesn't seem to take up a huge amount of memory either. (KiCAD takes like 1 GB of memory and re-loads the entire footprint/symbol library every time you open up one of those menus, terrible UX).

Let's start in the schematic editor:
Starting to place a few parts and stuff, few things stand out.. Where are all the toolbars ? Ok there is a place part button, so I placed some parts. Then I want a net, do I do that by placing a part ? No - a lookup of the documentation shows that I have to declare some nets and can then place the symbols.. Ok that's a bit different, but quite alright.

Still in the schematic editor: Selection, moving parts is all pretty intuitive. (KiCAD devs seem to think the right thing is to open up a menu every time you LEFT CLICK the mouse, disgusting.. Ok enough about KiCAD). I see you do have that implemented when what to select isnt clear; a net close to a part opens up a small menu, thats okish. Took me a bit to figure out where the grid settings are.. Ok you only allow a square grid ? That's interesting. I would like to say that sometimes a non-square grid can be helpful when placing parts though. Drawing wires by click-dragging is very pleasant.

Moving on to first impressions of the board editor:
Inserting parts one by one is nice and what you do is kinda similar to LibrePCB; it has a permanent UI thing that shows the to-be-inserted parts close to other errors, like a TODO kind of UI area. When placing a part, I like how the next part automatically comes under the cursor for placement. (KiCad just throwns everything in a grid at once when updating the netlist, in some weird order) Placing my parts, they are not annotated (numbered), I don't understand exactly why but whatever.

The context menu on the right is also nice to use (both in schematic and board editor), and the fact that it works for a selection of multiple parts is super nice. The 'All' button is usefull but does feel a bit large in the UI, ah well.

Generally, I would expect a right click context menu to open up when I have something selected; but in this UI it only opens if you right click directly on a part or part of the selection. Would be nice to add that.

On selections; it seems many EDAs are missing the double-click-to-select-entire-wire thing (or I'm an idiot).. I see you do have that.. Dude thats such a pleasant feature.

The "all"-tool is nice, but personally it can also be really handy to have some more distributive controls. KiCAD for example has:
Align-top, Align-bottom, align-left, align-right, align-middle, align-center and super handy; distribute horizontal, distribute vertical.
Especially the latter can be a time saver, I'll just explain what it does: in a selection it distributes the selected parts evenly between the leftmost and rightmost part.


Overall it looks very promising. I haven't really played with routing or truly tried to design a board. There is one thing though.. The lack of toolbars, why ? It makes everything especially unfriendly for new users. A toolbar with a hover menu containing the tool-name + keybinding is generally how I learn to use new programs.. I think it should be added. Looking more widely at that, I think there should be some more customizability in the UI, such as hiding the left sidebar (or dragging it to the right side).

Who knows maybe I'll look at the code one day.. But I tried modifying something in KiCAD a bit ago and I had no chance there  :-DD
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #27 on: April 27, 2020, 06:46:55 pm »
Quote
I see you do have that implemented when what to select isnt clear; a net close to a part opens up a small menu, thats okish
Don't know if you discovered it yet, but there are two selection modes:

 1. Hover select: Selection follows mouse cursor, no need to click. automatically selects the smallest object under the cursor if there's more than one. You can get to it by pressing escape. Want to delete something? Hover over it and press delete.
 2. Click select: Activated by clicking on something. Brings up the menu for clarifying the selection and allows selecting more than one object.


Quote
I would like to say that sometimes a non-square grid can be helpful when placing parts though
Why would anyone want this in the schematic? I'm not aware of any other schematic entry tools supporting a non-square grid.

Quote
Generally, I would expect a right click context menu to open up when I have something selected; but in this UI it only opens if you right click directly on a part or part of the selection. Would be nice to add that.

Other applications such as inkscape handle this exactly that way, so I assume it's a matter of preference.

Quote
The lack of toolbars, why ? It makes everything especially unfriendly for new users. A toolbar with a hover menu containing the tool-name + keybinding is generally how I learn to use new programs.. I think it should be added. Looking more widely at that, I think there should be some more customizability in the UI, such as hiding the left sidebar (or dragging it to the right side).

Frankly, I quite dislike toolbars for many reasons: See
for an example how toolbars usually end up looking after a few iterations of added features.
 - Apart from a few universally recognized icons, most icons are abstract blobs of color and could be replaced by hieroglyphics without much loss of usefulness.
 - Creating high-quality icons recognizable at small sizes is quite some art
 - The GNOME HIG eschews colored icons in favor of monochrome ones for use in applications: https://developer.gnome.org/hig/stable/icons-and-artwork.html.en With only one color it's next-to-impossible to make distinctive 16×16px icons.

Rather than a toolbar, the primary way of invoking tools is the spacebar menu (activated by pressing space) that provides a searchable list of all actions that apply globally and to the current selection. Rather than having to remember funny toolbar icons, just search for the desired action.

I agree that the discoverability of that menu is rather low, perhaps showing a tip if the spacebar menu hasn't been opened within 15 seconds after opening the editor could improve things...

Quote
Who knows maybe I'll look at the code one day.. But I tried modifying something in KiCAD a bit ago and I had no chance there  :-DD

Support for unplaced components has been added with not all that much involvement from my side, so it can't be that bad: https://github.com/horizon-eda/horizon/pulls?q=is%3Apr+is%3Amerged
 

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #28 on: April 27, 2020, 07:23:52 pm »
Lukas, I can't wait for the end of the month. Will we see 1.1.0?  :D

Offline Frddy

  • Newbie
  • Posts: 6
  • Country: nl
Re: Horizon EDA Version 1.0!
« Reply #29 on: April 28, 2020, 10:03:33 am »
Quote
Why would anyone want this in the schematic? I'm not aware of any other schematic entry tools supporting a non-square grid.
Sorry, this was referring to the board editor.

Quote
Frankly, I quite dislike toolbars for many reasons: See
for an example how toolbars usually end up looking after a few iterations of added features.
 - Apart from a few universally recognized icons, most icons are abstract blobs of color and could be replaced by hieroglyphics without much loss of usefulness.
 - Creating high-quality icons recognizable at small sizes is quite some art
 - The GNOME HIG eschews colored icons in favor of monochrome ones for use in applications: https://developer.gnome.org/hig/stable/icons-and-artwork.html.en With only one color it's next-to-impossible to make distinctive 16×16px icons.

Rather than a toolbar, the primary way of invoking tools is the spacebar menu (activated by pressing space) that provides a searchable list of all actions that apply globally and to the current selection. Rather than having to remember funny toolbar icons, just search for the desired action.

I agree that the discoverability of that menu is rather low, perhaps showing a tip if the spacebar menu hasn't been opened within 15 seconds after opening the editor could improve things...
Yeah I thought you might not like them, otherwise it would probably have been one of the first things you would do. Anyway, for me the spacebar menu (at least at first glance) seems like a very unpleasant way to work. There are many options and I don't wanna move my right hand off of my mouse, to type what I want. Also, should the user really have to double-click to activate the action ?
Personally, I think the lack of toolbar(s) will be one of the main hurdles for new users, and an obstacle for wider adoption.

I also understand that you wanna keep it clean, so that's why I think it should be included with the option to disable/hide it (and other UI elements).
I definitely agree that that screenshot is not what anyone wants. As such, there should not be a toolbar thing for every possible action.. Zooming, really ? Who uses a zoom-in button nowaways..

I would say the tools for the most basic things should be there, like, drawing a net, line, bus, label, inserting a power symbol etc.. And some other way for more advanced options, like a dropdown.

Actually, have you seen how the latest version of Fusion 360 does it ? Pretty clean too imo, and large (I'm guessing 64x64) icons. They're tabbed; each tab has a bunch of categories with the most common tools directly clickable, and other options in a drop-down menu with text. That could work.

Quote
Support for unplaced components has been added with not all that much involvement from my side, so it can't be that bad: https://github.com/horizon-eda/horizon/pulls?q=is%3Apr+is%3Amerged
Well I wasn't referring to that specifically; the first think I would hack in myself is a simple toolbar for the most common tasks like I mentioned.

Ah, I just noticed that you don't support OSX.. Thats a bummer.. I understand its because of the underlying GUI lib, hope it gets fixed over time.

Trying to fix the broken image into a link... aw, does this forum really try to draw imgs in url tags when it recognizes an image extension ? Lame.
« Last Edit: April 29, 2020, 12:00:21 pm by Frddy »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #30 on: April 29, 2020, 10:47:44 pm »
Lukas, I can't wait for the end of the month. Will we see 1.1.0?  :D
There you go: https://github.com/horizon-eda/horizon/releases/tag/v1.1.0

For some background on the new features, have look at the progress report blog posts at http://blog.horizon-eda.org/
 
The following users thanked this post: Pitrsek

Offline Muny

  • Contributor
  • Posts: 36
Re: Horizon EDA Version 1.0!
« Reply #31 on: April 30, 2020, 02:33:58 am »
Excellent work, Lukas.  :-+

One feature suggestion I have is: when drawing lines/other graphics, the ability to hold Shift to constrain the lines to be at even 45-degree increments based on where the mouse is would be very nice. This seems to be a common feature among 2D graphical editors, and I enjoy it.
« Last Edit: April 30, 2020, 02:39:31 am by Muny »
 

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #32 on: May 01, 2020, 04:45:03 pm »
Lukas, I can't wait for the end of the month. Will we see 1.1.0?  :D
There you go: https://github.com/horizon-eda/horizon/releases/tag/v1.1.0

For some background on the new features, have look at the progress report blog posts at http://blog.horizon-eda.org/

You're a man of your word! Going to try it. It's rainy in Bayern

Offline Davor

  • Contributor
  • Posts: 13
  • Country: hr
Re: Horizon EDA Version 1.0!
« Reply #33 on: May 03, 2020, 11:34:00 am »
If anybody wants to try horizon-eda on 32-bit Windows this is what worked for me:

https://horizon-eda.readthedocs.io/en/latest/build-win32.html

Follow these instructions, but use 32-bit versions of everything.

32-bit dependencies:

pacman -S mingw-w64-i686-gtkmm3 git base-devel \
mingw-w64-i686-yaml-cpp mingw-w64-i686-boost \
mingw-w64-i686-sqlite3  mingw-w64-i686-toolchain  \
mingw-w64-i686-zeromq mingw-w64-i686-glm zip \
mingw-w64-i686-libgit2 mingw-w64-i686-oce \
mingw-w64-i686-podofo mingw-w64-i686-libzip --needed

After cloning horizon edit makefile: search for mingw64 and replace with mingw32.

If you have old dual core CPU like me use "make -j 2" for building insted of "make -j 4".

Add "C:\msys32\mingw32\bin" variable to your system path.

Install "Win32OpenSSL-1_1_1g.exe" from https://slproweb.com/products/Win32OpenSSL.html

Copy C:\msys32\mingw32\ssl\certs\ca-bundle.crt to the directory the directory horizon-eda.exe resides in.
In my case it is C:\msys32\home\USER\horizon\build\horizon-eda.exe.

Too many loops to hop for average Windows user, but that is what you get for using niche OS like 32-bit Windows 10 :)
 

Offline mark03

  • Frequent Contributor
  • **
  • Posts: 706
  • Country: us
Re: Horizon EDA Version 1.0!
« Reply #34 on: May 14, 2020, 04:34:55 pm »
Hi Lukas,

I haven't tried this yet but based on a reading of your design philosophy and comments here, I'd like to test it on an upcoming project.

Probably my biggest annoyance with Kicad, apart from the library system, is that the PCB editor is still rather crude in the way it connects traces to pads.  For example, if I am routing with a big fat trace, and I connect to a small pad, it does not automatically "neck down"---the only option is to manually change the trace width as you approach the pad.  This invariably ends up looking ugly.  I don't know if this is what other EDA users call "tear drops" but I guess it is all connected feature-wise.  Basically the PCB editor needs to be smart about how it terminates traces onto different types of pads.  Is Horizon different from Kicad in this regard?

Does Horizon support arbitrarily shaped footprints, e.g., with a shape imported from an SVG file?  Sometimes it is necessary to have a particular and complex copper shape for some RF design, or other "physics" tasks.  (Most recently I needed this for a field mill electrostatic sensor.)  It can be achieved in Kicad with some effort, but there are still restrictions on what you can do in a copper layer, while non-copper layers are much more flexible.  This always seemed like an unfortunate distinction to me.

Thanks for pushing open-source EDA forward!
« Last Edit: May 14, 2020, 04:52:58 pm by mark03 »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #35 on: May 14, 2020, 05:52:34 pm »
Pad entry is as stupid as kicad or other tools, nothing special here.

Arbitrary pad shapes have been there since day 1 and are one of Horizon's core features. You can't import DXF directly into padstacks since padstacks don't support lines, so you'll have to import the DXF into a package/board, convert it to a polygon and copy/paste it into the padstack.
 

Offline jbay

  • Newbie
  • Posts: 7
  • Country: ca
Re: Horizon EDA Version 1.0!
« Reply #36 on: June 27, 2020, 03:11:37 am »
Hi Lukas,

First of all I just wanted to say a big thank you for developing this tool. It's fantastic and it's clear to me that you've put a lot of time, skill, and heart into it. I'm just learning to use it right now, so I have a chance to provide some "fresh user" feedback.

- I really like the approach you've taken with library management. It feels very modern, fast, and flexible.

- You've taken some pretty unconventional choices in your UI approach, but I think they work well.

- I appreciate the extensive documentation you've written. I think more is still needed, but you've done an excellent job with it.

- What's your long-term plan for this tool? Do you plan to keep supporting it? Do you develop it in addition to having a separate full-time job?

- Do you accept donations, and will you consider paid feature requests?



OK, that said, here are some thoughts I have about things that could be improved...

1) Grid origin offset. Let's say that I am drawing some features that need to have vertices at locations 1.05 mm, 2.05 mm, 3.05 mm... this is a pattern that frequently occurs. I won't be able to place those vertices with a grid density of 1 mm, so I have to use 0.05 mm grid density, which is actually much finer than the work that I'm trying to do. If I could have a 1 mm grid, but offset it by 0.05 mm, that would be very nice!

2) Exact numeric input for coordinates. Sometimes, even with grid assistance, it's just too frustrating to use the mouse, and I want to put something exactly at some (x,y) location. Especially if I'm reading coordinates off of a device datasheet to draw a pad for some heatsink or something. You have something very much like this for your "Move Exact" tool. The same popup could be used when you're placing a vertex (or something) in the first place, using absolute coordinates. Speaking of which,

3) Move exact absolute. The move exact tool supports relative motion, but it would be nice if I could move something to an absolute coordinate, rather than only shifting. This would let me just throw down a polygon roughly and then move each vertex into the correct position afterward; right now, I need to know exactly where the vertex started in order to move it the correct amount. Of course, I can read that off the UI at the bottom corner and do the math using your handy math-parsing feature, so this is just a nice-to-have since it would save time.

4) (+/-) zoom UI buttons or hotkeys. Sometimes I don't have a mouse or scrollwheel available.

5) Searchable Preferences window. Your brilliant space bar menu has a search box; why not the (much-more-extensive) Preferences window where such a feature is needed more? IDEs such as Eclipse have this and it's quite handy. Once you can search preferences, that also allows you (the developer) the freedom to make much more things adjustable via preferences, without worrying about cluttering the UI. Then you can have less hard-coded constants... such as...

6) Adjustable snap radius. Right now I just find the default distance at which the UI will try to "correct" my cursor by snapping to an existing object location to be much too wide, and I don't think I can configure it anywhere.

7) Speaking of which, sometimes I notice that the (x,y) readout at the bottom of the screen will read something (eg. X:000.000, Y:000.000) but then when I actually click, the vertex will end up at Y:0.005 or something. This isn't because I jiggled the mouse when clicking -- it even happens when I use touchpad entry. I think the coordinate readout doesn't always give a trustworthy picture of where something will go when I click.

8) I really like your layer system but I think there's a couple of minor UI bugs. For example, try clicking on the display type once to change it. It won't change right away -- not until you move the cursor away from the layer selection, when suddenly at that point it changes. This can be quite confusing.

9) A fillet tool would be awesome -- eg. press a key, then click on the corner of a polygon, and it gets replaced by a tangent arc of a certain dimension.

10) Inclusive/Exclusive group select. This is a neat feature that Solidworks has -- if you click-and-drag your mouse to create a selection box, it will behave differently if you drag the box leftward than if you drag it rightward. If I recall correctly, dragging to the left will select "inclusively" -- any object that has even a tiny corner inside your box will get selected. Dragging to the right selects "exclusively" -- an object must be fully enclosed within the selection box to be selected. This is surprisingly useful.

11) Lock layers. Right now, if I drag a selection box, I'll end up capturing things from other layers even if those layers aren't visible. It would be nice to have an extra column in the layer table UI, perhaps displaying a padlock symbol, that lets you lock layers to prevent selecting or disturbing anything on those layers.

Anyway, thanks again for all the work you've done on this. It looks like a fantastic and very powerful tool.
 
The following users thanked this post: Warhawk

Offline jbay

  • Newbie
  • Posts: 7
  • Country: ca
Re: Horizon EDA Version 1.0!
« Reply #37 on: June 27, 2020, 09:08:15 pm »
Another observation...

Right now, the pads named "SMD" (for example -- "SMD rectangular with rounded corners") actually appear to be NSMD pads (Non-Solder-Mask-Defined). SMD pads (Solder-Mask-Defined) should have the solder mask opening smaller than the copper layer; NSMD pads have the solder mask opening be larger than the copper layer. For example: https://www.nexlogic.com/2016/05/31/not-nsmd-smd-question/.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #38 on: June 28, 2020, 09:56:51 pm »
> - You've taken some pretty unconventional choices in your UI approach, but I think they work well.

Well, there has to be something else than windows 95 with a different shade of grey and ribbons.

> - What's your long-term plan for this tool? Do you plan to keep supporting it? Do you develop it in addition to having a separate full-time job?

Nothing definitive, I'll do whatever's fun and makes sense.

> - Do you accept donations, and will you consider paid feature requests?

Nope

> 1) Grid origin offset. Let's say that I am drawing some features that need to have vertices at locations 1.05 mm, 2.05 mm, 3.05 mm... this is a pattern that frequently occurs. I won't be able to place those vertices with a grid density of 1 mm, so I have to use 0.05 mm grid density, which is actually much finer than the work that I'm trying to do. If I could have a 1 mm grid, but offset it by 0.05 mm, that would be very nice!

I'm glad you asked, we have that since two weeks: https://github.com/horizon-eda/horizon/commit/9d96d2114c290a8dd9f6e00596b57265837f3c37

> 2) Exact numeric input for coordinates.
> 3) Move exact absolute

Pads and packages have entries for x/y position in the property editor on the right. That should do the job. Numerical input of polygon vertices similar to https://techdocs.altium.com/display/ADOH/Outline+Vertices+Editor+for+Polygonal+Pours+and+Regions definitely is something that's doable.

> 4) (+/-) zoom UI buttons or hotkeys. Sometimes I don't have a mouse or scrollwheel available.

That seems rather clunky. Touchpads and trackpoints have gotten good enough to support smooth zooming. Apart from that, Pinch-to-zoom is supported on touchscreens (and touchpads apparently). Although I don't know how well all of this works on windows.

> 5) Searchable Preferences window.

I try to keep the number of preferences to a minium, so that'd be more of an anti-feature. Aside from that, developing that is time I could better spend on other things as the preferences window is a rather low-traffic area of the application.

> 6) Adjustable snap radius.

Once i decide where to put the setting in the preferences window, that's easy to implement.

> 7) Speaking of which, sometimes I notice that the (x,y) readout at the bottom of the screen will read something (eg. X:000.000, Y:000.000) but then when I actually click, the vertex will end up at Y:0.005 or something.

Can't reproduce that. You need to provide more detail on how to reproduce it.

> -- not until you move the cursor away from the layer selection, when suddenly at that point it changes.

Seems like a GPU driver issue to. You happen to be using an intel GPU on windows?

> 9) A fillet tool would be awesome -

We have that since about two months. I'ts called 'round off vertex'.

> 10) Inclusive/Exclusive group select.

Click on the selection thing in the bottom left corner and select box, auto.

> 11) Lock layers. Right now, if I drag a selection box, I'll end up capturing things from other layers even if those layers aren't visible.

That shouldn't happen. In which situation did you encounter this? To further narrow down what can be selected, have a look at the selection filter.

> Right now, the pads named "SMD" (for example -- "SMD rectangular with rounded corners") actually appear to be NSMD pads (Non-Solder-Mask-Defined). SMD pads

In that case, SMD refers to surface mount (as opposed to through hole)
 

Offline jbay

  • Newbie
  • Posts: 7
  • Country: ca
Re: Horizon EDA Version 1.0!
« Reply #39 on: July 17, 2020, 10:12:54 pm »
Hi! Sorry for the late reply!

Quote
I'm glad you asked, we have that since two weeks: https://github.com/horizon-eda/horizon/commit/9d96d2114c290a8dd9f6e00596b57265837f3c37

Ooh, awesome! I'm just trying out the new version now. It's a huge improvement! The offsets and rectangular grid option makes it so much easier to do what I want! Thank you!

Quote
Numerical input of polygon vertices similar to https://techdocs.altium.com/display/ADOH/Outline+Vertices+Editor+for+Polygonal+Pours+and+Regions definitely is something that's doable.

A feature like that would be fantastic, but I was thinking something much simpler -- just a "relative / absolute" toggle in your existing Move Exact dialog box, which would go a long way. (The context of this is drawing fancy heatsink outlines and such).

Quote
Can't reproduce that. You need to provide more detail on how to reproduce it.
(...)
Seems like a GPU driver issue to. You happen to be using an intel GPU on windows?

Yes, exactly -- an Intel GPU on Windows. How did you know? Anyway the coordinate offset issue is probably just the same GPU driver issue, then. If it's a problem specific to my system then don't worry about it. If you do know a fix then I'd be happy to hear it, otherwise I'll just find some way to fix it myself or deal with it.

Quote
That shouldn't happen. In which situation did you encounter this?

You might be right -- I might just be misinterpreting what's going on. In the package editor, if I place a bunch of pads and then 'invisible' the copper / mask / solder layers, and go to the silkscreen layer, then do a drag select, I'll select a bunch of (invisible) pads. If I click delete, the pads will disappear. Perhaps that's because the pads have silkscreen layers, even though they're empty? At any rate it's a bit surprising that such a selection on the silkscreen layer picks up the pads, even though they don't have any visible silkscreens.

Quote
In that case, SMD refers to surface mount (as opposed to through hole)

That makes sense, but it's an important acronym for padstacks too. If I want to name a solder-mask-defined rectangular pad I end up having to call it "SMD SMD rectangular pad" or something, as opposed to the existing "SMD rectangular pad" which is actually an NSMD pad design. Would it be possible to instead use the SMT acronym (Surface Mount Technology) to contrast with through-hole, instead of SMD (Surface Mount Device)?

By the way, the more I use Horizon EDA the more I love it. I never found KiCAD any fun, but I'm actually having fun using Horizon. And the way that combining and configuring padstacks, packages, elements, and parts -- it makes so much sense. I still don't have the hang of parameter programs yet, but I'm sure I'll get there. Thank you for making this.
« Last Edit: July 18, 2020, 04:36:37 am by jbay »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #40 on: July 18, 2020, 11:35:41 pm »
Quote
A feature like that would be fantastic, but I was thinking something much simpler -- just a "relative / absolute" toggle in your existing Move Exact dialog box, which would go a long way. (The context of this is drawing fancy heatsink outlines and such).

It just came to my mind that there's already something that may fit your use case: Select a polygon vertex and press enter. This will invoke the "enter datum" tool that can be used to numerically set the position of polygon vertices, among other things. Since you're talking about fancy outlines, the dimensions also support numerically setting their length (select the point you want to move and press enter). The dxf import combined with the line loop to polygon to might also do the job. For complex outlines for parts with a STEP model available, I usually do a 2D projection of the 3D model in freecad, import the DXF and use it as a reference to retrace a simplified outline.

Quote
Yes, exactly -- an Intel GPU on Windows. How did you know?

There has been another bug similar to this where a redraw didn't happen when it should have: https://github.com/horizon-eda/horizon/commit/db61b4542b8f8abc51e29b50c0a9dac80f0b7e3d


Quote
At any rate it's a bit surprising that such a selection on the silkscreen layer picks up the pads, even though they don't have any visible silkscreens.

I see. The thing is, from the application's point of view, pads aren't on any particular layer as they can span multiple layers. That's why they're always selectable. To prevent them from being selected, you can enable the work layer only mode in the selection filter or exclude pads specifically.

Quote
Would it be possible to instead use the SMT acronym (Surface Mount Technology) to contrast with through-hole, instead of SMD (Surface Mount Device)?
Definitely something to consider.
 

Offline Bob Sava

  • Regular Contributor
  • *
  • Posts: 98
  • Country: us
Re: Horizon EDA Version 1.0!
« Reply #41 on: July 25, 2020, 03:33:42 am »
I like Horizon EDA a lot.  While rough around the edges (in places) it's actually quite complete.  One issue I have with the software is new nomenclature and use of words that have different or multiple meanings outside of this EDA.  If you fall into this category, it helped me to rename part creation tabs to highlight their hierarchy and function.  Here's what works for me:



Also, I think it's a bit confusing at first, that Units tab preview is in a format of Symbol.  I think it should be just a table.
« Last Edit: July 25, 2020, 03:56:55 am by Bob Sava »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #42 on: July 26, 2020, 07:48:08 pm »
First-time users will now see the info bar with a link to the docs to make things more clear (see attachment)
1033686-0

Quote
Also, I think it's a bit confusing at first, that Units tab preview is in a format of Symbol.  I think it should be just a table.

The table is available in the info page. Symbols are shown by default as they're quicker to parse visually.
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 11265
  • Country: ch
Re: Horizon EDA Version 1.0!
« Reply #43 on: July 30, 2020, 04:15:24 pm »
Any updates on getting it to run on macOS?
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #44 on: July 30, 2020, 09:33:59 pm »
Quote
Any updates on getting it to run on macOS?
Unfortunately no. If anything will happen it'll most likely be captured there https://github.com/horizon-eda/horizon/issues/271#

Long story short: I don't have a mac os machine at hand and don't have any personal interest in getting it to run on mac os.

For everyone else: There's a new release, version 1.2: https://github.com/horizon-eda/horizon/releases/tag/v1.2.0
 
The following users thanked this post: Warhawk, Pitrsek

Offline Bob Sava

  • Regular Contributor
  • *
  • Posts: 98
  • Country: us
Re: Horizon EDA Version 1.0!
« Reply #45 on: July 31, 2020, 02:44:37 pm »
Congratulations on v1.2 release.  I like addition of colored nets and traces in this release.  As far as I know only (of free software) EasyEDA has something similar and KiCad may have it in v6.
 

Offline gord

  • Newbie
  • Posts: 7
  • Country: scotland
Re: Horizon EDA Version 1.0!
« Reply #46 on: August 09, 2020, 03:19:27 am »
Hello Lukas,
I have begun using your software and I too would like to congratulate you on the effort you have placed in it, it is superb software.
Here is some feedback. I have listed priorities, just to show my personal subjective ranking of the requests, for what it is worth (could be worthless). Please consider this all as just some ideas for ruling in or out, none are showstoppers. Most of these items are low priority ranked:
1. Is there a way to route tracks at any angle, instead of 45 deg? If any angle is not possible, then 22.5 deg or 12.5 deg step modes could be useful and meet most requirements where 45 degree is not sufficient. If I had a choice this would be a high priority for me. Eventually curved tracks may also be good but this may be a major feature?
2. A button to override the rules during routing could be useful, because sometimes it is helpful to lay down tracks for layer refinement. This is useful when quickly testing to see if traces and positioning may be fine. For me this is a medium priority.
3. Unfortunately I also agree zoom buttons could be useful. I have pinch-to-zoom and mouse zoom capability, but when working it can be easier and quicker to key-press (say PageUp and PageDown). With mouse or pinch-to-zoom it takes longer to trim if the scroll is overshot accidentally, and it is a very frequent action so it adds up. I think this is low priority though.
4. Route track mode enabled by context. When the pointer is positioned on a pad, clicking the mouse does nothing if track mode is not enabled. I think it is better if Horizon automatically switches to track mode (x) if the user does this, because the intent would be to lay a track if the user was on a pad. If this is easy to implement then it could be a medium priority ranking.
5. Escape is too aggressive. Pressing Escape makes the selected tool or mode to be disabled. When drawing a line for instance, pressing Escape both terminates the line and disables the line mode. Would it make more sense to just terminate the line on Escape (like with right mouse click), and second Escape click would terminate the line mode? It is easy to get into the habit to quickly double or triple-press ESC to fully exit out of a mode. This is a low priority.
6. For schematics, a switch in the rules or elsewhere so that the red label absent warnings are not visible or present. I think it is common to name nets and not require all the labels to be visible on the schematic.
7. Lines to default to the current trace width instead of 0mm, if they are drawn on a copper layer. This is because any line drawn on a copper layer is deliberately intended to be in the gerber for the copper layer, so the user intent will be to have it thicker than the default 0mm. The current behaviour means that each time the line mode is exited and re-entered, it again defaults to 0mm. Again low priority.
9. A low priority request to add your release version number on the Horizon EDA window, if it is quick to do.
Thank you for reading this and your tremendous effort again.
10. How are new parts created? The user instructions refer to a parts wizard, but don't mention how to invoke it. I cannot see from the Horizon EDA window, nor the part viewer or pool cache button, how to invoke part creation. The spacebar menu may also be a possible option to request the part creation window, but I couldn't see it.
11. How are via sizes modified? I can see the rule setting, but clicking on a via does not allow overriding (for instance a larger via).
12. When no item is selected, the cursor keys should allow for pan operation of the display, because it is quicker after zooming, to just pan around the board rather than repeated zoom out/zoom in operations. Currently the cursor keys have no effect if nothing is selected in board or schematic view. This is low priority too, but some of the low priority things can have a great usability or productivity impact.



« Last Edit: August 09, 2020, 03:48:22 pm by gord »
 
The following users thanked this post: Warhawk

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #47 on: August 10, 2020, 11:02:02 pm »
Quote
1. Is there a way to route tracks at any angle, instead of 45 deg? If any angle is not possible, then 22.5 deg or 12.5 deg step modes could be useful and meet most requirements where 45 degree is not sufficient. If I had a choice this would be a high priority for me. Eventually curved tracks may also be good but this may be a major feature?

2. A button to override the rules during routing could be useful, because sometimes it is helpful to lay down tracks for layer refinement. This is useful when quickly testing to see if traces and positioning may be fine. For me this is a medium priority.
There's the draw track tool, but it's fairly basic. IIRC the kicad router used in Horizon EDA supports routing arbitrary angles without DRC and disabling DRC, so it's just a matter of adding the glue logic.


Quote
3. Unfortunately I also agree zoom buttons could be useful.
Ok, adding shortcuts doesn't hurt that much. Should they zoom in/out relative to the screen center or where the cursor is?

Quote
Route track mode enabled by context.

Dragging away from a pad starts the router.

Quote
5. Escape is too aggressive.
Dunno, probably boils down to personal preference.

Quote
it is common to name nets and not require all the labels to be visible on the schematic.

As this can lead to unintended connectivity and I got bitten by exactly this in another schematic entry tool, that's not going to happen.

Quote
again defaults to 0mm. Again low priority.
That's not supposed to happen. The draw line tool remembers the last-used line width (press w to set).

Quote
How are new parts created?

Open the pool manger from the start window.

Quote
11. How are via sizes modified? I can see the rule setting, but clicking on a via does not allow overriding (for instance a larger via).

Uncheck "from rules" and you can edit the parameters for just the selected via.

Quote
if nothing is selected in board or schematic view

This doesn't mesh well with hover select.

Quote
just pan around the board rather than repeated zoom out/zoom in operations

Use the middle mouse button or shift-left click to pan.

 

Offline gord

  • Newbie
  • Posts: 7
  • Country: scotland
Re: Horizon EDA Version 1.0!
« Reply #48 on: August 13, 2020, 04:00:46 am »
Hi Lukas,

Thanks for the response.
The Route Track feature is good, I have added a 'd t' shortcut for that. It will work for now until curves or other features can be supported. Right-clicking fully exits the feature, I think it should only terminate the current Route Track and re-allow it to begin again with a left click? Currently I have to type 'd t' again (not a big issue).
For your zoom question, I think the buttons should zoom relative to where the cursor is.
For the width defaulting to zero, I understand now how it works, and it applies to the other tools too, such as the text tool:
If the 'w' key is pressed then it allows changing the width and then when the line tool is used later, it retains the setting.
However, if an existing line is selected, and then the width is changed in the properties, then that setting is not used when the line tool is used next. That's unfortunate, because the big benefit in changing the width (or text size or any other parameter) using the right-side properties pane, is that the change is instantly visible, so it can be trimmed to the desired value. That's not possible when the tool is selected and the width key is pressed, because the change doesn't take effect until the OK button is pressed. If the change doesn't look correct then the width key needs pressing again, another width needs guessing, and then the OK button has to be pressed to see the effect. This is a minor usability issue.
Regarding the Pool Manager, thank you, I've found it now. I had not realized it was not visible until the board and schematic are closed and then top-left click to go back out of project view (so that the window title is "Horizon EDA"), and then click on the pool name under Recent pools. I will try it out and leave feedback.

I quickly tried the symbol editor and had this question: What is the box shown (I marked it with a blue line) for, it moves into this position when I add pins, and how do I move it out of the way, because it is intersecting with the symbol outline. I couldn't find a menu item (in the spacebar menu) that seemed relevant to it. Closing and reopening the symbol didn't change it, and clicking on the line doesn't select it either.






« Last Edit: August 13, 2020, 02:22:56 pm by gord »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #49 on: August 13, 2020, 10:01:42 pm »
Quote
I had not realized it was not visible until the board and schematic are closed and then top-left click to go back out of project view (so that the window title is "Horizon EDA"), and then click on the pool name under Recent pools. I will try it out and leave feedback.


You can as well either launch it a second time or click on "new window" in the hamburger menu on the top right.
 

Offline b_force

  • Super Contributor
  • ***
  • Posts: 1381
  • Country: 00
    • One World Concepts
Re: Horizon EDA Version 1.0!
« Reply #50 on: August 18, 2020, 04:58:22 pm »
I have tried it as well for a couple of days and i would like to give my two cents as well.
Unfortunately, I am a little bit worried to actually share my thoughts, since most of the time feedback and criticism seems to be totally burned down.



But I am just not seeing it with this one, I am very sorry.
A lot of work needs to be done to the user interface ans user experience.
It's very unclear what exactly is going on, what is happening and how and what to do, where to find things.
Yes, those things can be found in manuals and such, but these things just need to be intuitive, without the user spending so much extra time to search and read.
In other words, the interface is just way to different that what is usual as well as very inconsistent.

If that i your goal and taste, it's fine I guess.
I just don't really see a lot of people enjoying it this way.

Just giving my professional thoughts about it, nothing more.

Offline Bassman59

  • Super Contributor
  • ***
  • Posts: 2501
  • Country: us
  • Yes, I do this for a living
Re: Horizon EDA Version 1.0!
« Reply #51 on: August 18, 2020, 05:27:24 pm »
Quote
Any updates on getting it to run on macOS?
Unfortunately no. If anything will happen it'll most likely be captured there https://github.com/horizon-eda/horizon/issues/271#

Long story short: I don't have a mac os machine at hand and don't have any personal interest in getting it to run on mac os.

well, I guess I don't have any personal interest in using your software.
 
The following users thanked this post: tooki

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #52 on: August 18, 2020, 06:07:31 pm »
I have tried it as well for a couple of days and i would like to give my two cents as well.
Unfortunately, I am a little bit worried to actually share my thoughts, since most of the time feedback and criticism seems to be totally burned down.



But I am just not seeing it with this one, I am very sorry.
A lot of work needs to be done to the user interface ans user experience.
It's very unclear what exactly is going on, what is happening and how and what to do, where to find things.
Yes, those things can be found in manuals and such, but these things just need to be intuitive, without the user spending so much extra time to search and read.
In other words, the interface is just way to different that what is usual as well as very inconsistent.

If that i your goal and taste, it's fine I guess.
I just don't really see a lot of people enjoying it this way.

Just giving my professional thoughts about it, nothing more.

Can you be more specific? Feedback like this isn't really actionable and doesn't do any good. Anyhow, I've heard exactly the opposite from some people.
 
The following users thanked this post: Warhawk

Offline b_force

  • Super Contributor
  • ***
  • Posts: 1381
  • Country: 00
    • One World Concepts
Re: Horizon EDA Version 1.0!
« Reply #53 on: August 18, 2020, 06:21:12 pm »
I have tried it as well for a couple of days and i would like to give my two cents as well.
Unfortunately, I am a little bit worried to actually share my thoughts, since most of the time feedback and criticism seems to be totally burned down.



But I am just not seeing it with this one, I am very sorry.
A lot of work needs to be done to the user interface ans user experience.
It's very unclear what exactly is going on, what is happening and how and what to do, where to find things.
Yes, those things can be found in manuals and such, but these things just need to be intuitive, without the user spending so much extra time to search and read.
In other words, the interface is just way to different that what is usual as well as very inconsistent.

If that i your goal and taste, it's fine I guess.
I just don't really see a lot of people enjoying it this way.

Just giving my professional thoughts about it, nothing more.

Can you be more specific? Feedback like this isn't really actionable and doesn't do any good. Anyhow, I've heard exactly the opposite from some people.
Be more specific?
Install Altium, diptrace, Proteus, Ultiboard or even ave a look at EasyEDA, hack even the old PADS and have a look how the user interface is and works.
My apologies, but I don't see how this is not obvious and this feedback is actually VERY actionable.

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #54 on: August 18, 2020, 09:07:57 pm »
Quote
I quickly tried the symbol editor and had this question: What is the box shown (I marked it with a blue line) for, it moves into this position when I add pins, and how do I move it out of the way, because it is intersecting with the symbol outline. I couldn't find a menu item (in the spacebar menu) that seemed relevant to it. Closing and reopening the symbol didn't change it, and clicking on the line doesn't select it either.

The box indicates the pin bounding box to aid consistent pin placement. All pins should be on this line, the pins at the bottom aren't.

Quote
Ok, adding shortcuts doesn't hurt that much. Should they zoom in/out relative to the screen center or where the cursor is?

Done: https://github.com/horizon-eda/horizon/issues/479#issuecomment-675710884

Quote
Install Altium, diptrace, Proteus, Ultiboard or even ave a look at EasyEDA, hack even the old PADS and have a look how the user interface is and works.

I guess that you're missing the Windows 95-style File/Edit menu bar. The omission of such menu bar is deliberate and is here to stay. Instead, we have

  • Spacebar menu that's searchable (has everything)
  • Action buttons on the left
  • Hamburger menu at at the top left

There have been some ideas on making the spacebar menu more obvious: https://github.com/horizon-eda/horizon/pull/396
 

Offline b_force

  • Super Contributor
  • ***
  • Posts: 1381
  • Country: 00
    • One World Concepts
Re: Horizon EDA Version 1.0!
« Reply #55 on: August 18, 2020, 09:27:19 pm »
Quote
I quickly tried the symbol editor and had this question: What is the box shown (I marked it with a blue line) for, it moves into this position when I add pins, and how do I move it out of the way, because it is intersecting with the symbol outline. I couldn't find a menu item (in the spacebar menu) that seemed relevant to it. Closing and reopening the symbol didn't change it, and clicking on the line doesn't select it either.

The box indicates the pin bounding box to aid consistent pin placement. All pins should be on this line, the pins at the bottom aren't.

Quote
Ok, adding shortcuts doesn't hurt that much. Should they zoom in/out relative to the screen center or where the cursor is?

Done: https://github.com/horizon-eda/horizon/issues/479#issuecomment-675710884

Quote
Install Altium, diptrace, Proteus, Ultiboard or even ave a look at EasyEDA, hack even the old PADS and have a look how the user interface is and works.

I guess that you're missing the Windows 95-style File/Edit menu bar. The omission of such menu bar is deliberate and is here to stay. Instead, we have

  • Spacebar menu that's searchable (has everything)
  • Action buttons on the left
  • Hamburger menu at at the top left

There have been some ideas on making the spacebar menu more obvious: https://github.com/horizon-eda/horizon/pull/396
No, I am missing the part that the user can choice whatever he likes

But my point mostly is, that is very different from any professional EDA out there.

Offline gord

  • Newbie
  • Posts: 7
  • Country: scotland
Re: Horizon EDA Version 1.0!
« Reply #56 on: August 18, 2020, 09:53:07 pm »
Hello,

I think the software is quite promising, but some usability adjustments could help further.
For instance, I understand the hover mode is interesting for touch control, but if an item is not selected (such as intending to touch a component in a schematic but instead accidentally touching on the component reference or component value text), the mode exits from Hover mode into Click to select mode. It's very irritating that the mode swaps like this. Personally I would prefer to see a configurable option to disable the existing behaviour and enable a hybrid mode which could optionally just faintly highlight components and wires as the mouse moves over it, and then clicking to select, or holding down to select and drag. In other words, a hybrid mode that doesn't care if the user clicks to select, or holds down and drags. Just to make it more intuitive, it would also be nice that if the mouse is hovered over component text, then the component is still automatically highlighted as if the user was hovering over the component, and the entire component can be moved. The smashed text mode is fine.

Another issue is that it is hard to tidy schematics. Here is an example, where it was desired to move C2. Once it is moved, the right side wire becomes angled. After that, it is impossible to straighten the wire without deleting the top and right side wire and then redrawing them. No move operation resolves it. If I try to move the right wire, it introduces a new wire segment. If I try to move the top wire, it just makes the left side become angled. Moving components tends to make the wires angled in almost all circumstances unless the component is moved in the same direction as the wire, and usually needs two wires to be deleted and re-added.
This is probably a low priority, and difficult to solve in all circumstances maybe. A solution would really improve usability.

Another thing concerns scrollbars. They are absent from the schematic and PCB view, but they would not take up a lot of space. It is worse in the pool manager because the scroll bar is very thin, and hard to click on, because just a millimetre of mouse movement will miss it. Can they be normal scrollbar width, because I don't see the benefit of the thin bar in this view. I know some people will just use a scroll wheel but there could be hundreds of items in the list and it takes a long time.
I don't want you to think I am nit-picking, I am just trying to speed up commonly used tasks and reduce the behaviour from getting in the way of the user enjoying your software.

I tried creating a package, I have not got far yet, but I had this comment regarding pads:
When in hover mode, clicking on the pad won't bring up the pad parameter window on the right. I have to move the pad to bring up the parameter window, or I have to click elsewhere first to go into click select mode. This is quite unintuitive. Clicking on an item should bring up the parameter window always surely. I think this is another example of where a hybrid mode would be better. Another issue is that the parameter window does not allow the pad size to be modified. It can be modified by pressing i and then typing a value and then pressing OK. But there is plenty of space in the right side parameter window, and would provide easy discovery of the pad adjustment, whereas pressing i needs to be learned.
 
One final thing for now, I looked at the symbol and package files, and there are long strings like "7dac098e-afb4-4074-80d2-d5a5983a45dc". For using code to create symbols and packages, can these be random references, or can be any length names like "pad-00001" where 00001 is a locally unique number in that file? It would be easy to increment a locally unique number. The ability to have the padstack within the same file as the package file would also help here, to save having to generate two files.







« Last Edit: August 18, 2020, 10:11:49 pm by gord »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #57 on: August 18, 2020, 10:41:18 pm »
Quote
This is probably a low priority, and difficult to solve in all circumstances maybe. A solution would really improve usability.
Since https://github.com/horizon-eda/horizon/commit/e0eb9e3fbce1c1a8f9177d9f86935149ccd1627d you can just drag the non-straight net line and it'll add another junction. There's also the "bend net line tool".

Quote
I don't want you to think I am nit-picking, I am just trying to speed up commonly used tasks and reduce the behaviour from getting in the way of the user enjoying your software.
This is Gtk thing that I don't have much control over. You could use a different theme, but I have no idea how this works on windows. You might try setting then GTK_OVERLAY_SCROLLING=0 environment variable to have the scrollbars always visible.

Quote
. They are absent from the schematic and PCB view, but they would not take up a lot of space.
Scroll bars imply that there's some sort of page that can't be exceeded without any hacks. I had go at this a while back but couldn't come up with a satisfactory solution fast enough. Why would one need the scrollbars though? I don't recall having used the scrollbars on any 2D graphics application.

Quote
Clicking on an item should bring up the parameter window always surely.

That's how it works. No idea why you're seeing different behaviour.

Quote
Another issue is that the parameter window does not allow the pad size to be modified.

You can also just double-click on a pad to bring up the pad parameters window. That one can't easily be moved into the properties panel on the right due to implementation aspects.

Quote
are long strings like "7dac098e-afb4-4074-80d2-d5a5983a45dc".

These are UUIDs and have to be in that particular format.

Quote
The ability to have the padstack within the same file as the package file would also help here, to save having to generate two files.
Most packages won't need specific padstacks so that's mostly a non issue. Also, having both documents in one file has it's own share of implementation issues.


Quote
It's very irritating that the mode swaps like this. Personally I would prefer to see a configurable option to disable the existing behaviour and enable a hybrid mode which could optionally just faintly highlight components and wires as the mouse moves over it, and then clicking to select,

So your primary issue is that clicking nowhere activates click select mode?

EDIT: One reason for the hover select mode is being able to hover over something and just press delete to delete it as it's possible in kicad.
EDIT2: You can try out the alternate behaviour with https://ci.appveyor.com/project/carrotIndustries/horizon/builds/34728877 once the build has finished.
« Last Edit: August 18, 2020, 11:01:06 pm by Lukas »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #58 on: August 18, 2020, 11:23:44 pm »

No, I am missing the part that the user can choice whatever he likes

But my point mostly is, that is very different from any professional EDA out there.

Yes, that's intentional. Most of the applications you mentioned have a moderately (diptrace) to really long (altium) history. It shouldn't come surprising that a project started in 2016 would make different design choices than a project started in the 90s.

Since the project is mostly a one man show, I don't have the bandwidth to support everybody's favourite UI style.
 
The following users thanked this post: Warhawk, tooki

Offline b_force

  • Super Contributor
  • ***
  • Posts: 1381
  • Country: 00
    • One World Concepts
Re: Horizon EDA Version 1.0!
« Reply #59 on: August 18, 2020, 11:42:01 pm »

No, I am missing the part that the user can choice whatever he likes

But my point mostly is, that is very different from any professional EDA out there.

Yes, that's intentional. Most of the applications you mentioned have a moderately (diptrace) to really long (altium) history. It shouldn't come surprising that a project started in 2016 would make different design choices than a project started in the 90s.

Since the project is mostly a one man show, I don't have the bandwidth to support everybody's favourite UI style.
I understand that, especially the last part, so my approach would be making something that people are already familiar with or even improve it.
In a sense of priorities, much more important than something like an auto router or even like fancy 3D graphics.
Once I again, I absolutely do NOT to be all grumpy and negative about it.
It's in fact the opposite, one of the main reasons I just see new projects with potentials failing.

User experience,interface as well as compatibility (Mac, Windows and Linux) is key, the rest will come later (unless you heavily fail on it)
These are also things that are very well defined and actionable.

Like I said, i am just giving my very well meant feedback, based on people who have been working for years with these kind of programs.
I can tell you, the average opinion about open source/free EDA software is really far from great. :(
I am totally fine and respect with whatever direction you choose.
I just see potential, so I personally feel obligated to share my experiences, nothing more, nothing less (and definitely no hateful rants or feelings) 
« Last Edit: August 18, 2020, 11:43:45 pm by b_force »
 
The following users thanked this post: gord

Offline gord

  • Newbie
  • Posts: 7
  • Country: scotland
Re: Horizon EDA Version 1.0!
« Reply #60 on: August 19, 2020, 01:42:33 am »
I also agree. You have already implemented great features, which may be enough for plenty PCB projects.
Polishing the UI to speed it up, trying commonly-encountered devices like a mouse with scroll wheel and you'll soon find centre-clicking is not pleasant, so a keypress is helpful for such circumstances.
Speed-ups of the commonly-encountered tasks, and making the procedures more intuitive in just a few places, and adding a little bit of configurability like the zoom step size (it is noticeably different step size to a different CAD package) will make it easier for people to transition. I think the work steps for creating components, symbols, and packages could be reduced slightly too, as a speed-up.
It also gets confusing to create a package, I click on Create and fully expect to type the package name. If I do that, I get an error "Path does not exist". Instead, to create a package, I have to right-click in the file explorer and create a folder with the desired package name, and then select that.

Is there a way to re-scan or refresh the pool database? For instance, if I create (using text editor or scripts or custom code) a new folder and new package.json file for a new package, how do I see it in the pool?


 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #61 on: August 19, 2020, 07:18:16 am »
Quote
User experience,interface as well as compatibility (Mac, Windows and Linux) is key, the rest will come later (unless you heavily fail on it)

As written before, I don't have the time and hardware to bother with Mac os. As for UX, I've been told the exact opposite from other people.

Quote
These are also things that are very well defined and actionable.
No. It boils down to "I don't way it behaves/looks". This is what proper UI feedback looks like: https://github.com/horizon-eda/horizon/issues/390

Quote
Like I said, i am just giving my very well meant feedback, based on people who have been working for years with these kind of programs.

I've also been working with other Schematic/PCB design tools like Eagle, KiCad and mentor's expedition and didn't like their UI. That's why Horizon EDA is different.


Quote
Polishing the UI to speed it up, trying commonly-encountered devices like a mouse with scroll wheel and you'll soon find centre-clicking is not pleasant, so a keypress is helpful for such circumstances.

I am using a mouse with a scroll wheel and have no problem with the middle mouse button. If you don't like it, you can hold shift and drag with the left mouse button.

Quote
Is there a way to re-scan or refresh the pool database? For instance, if I create (using text editor or scripts or custom code) a new folder and new package.json file for a new package, how do I see it in the pool?

That's what the big update pool button in the top left is for.

 

Offline b_force

  • Super Contributor
  • ***
  • Posts: 1381
  • Country: 00
    • One World Concepts
Re: Horizon EDA Version 1.0!
« Reply #62 on: August 19, 2020, 01:58:04 pm »
I would also suggest working with people who are trying to give feedback, instead of against.
When making products (software is also a product, even when free), you as the developer need to have the skill to understand the customers.
You can never ever expect that customers are going to give you that feedback in ready to eat chunks according to the way you like.
Or are you also going to tell your plumber which pipe is broken, where and how? :-//

As soon as you are going to tell your customers what they need to do and saying they are wrong, you will loose it.
For any product (free, open source or commercial) the best way to disappear.

The reason why I am not making such a ready to eat list, is simply because it's to much to sum up.
Also hard to explain in bullet points if the foundations are already not pointing in the right direction.
If you don't know what I was talking about before, you simply have never used any of the EDA programs before.

Good luck with your project.

Online PlainName

  • Super Contributor
  • ***
  • Posts: 6769
  • Country: va
Re: Horizon EDA Version 1.0!
« Reply #63 on: August 19, 2020, 03:44:15 pm »
Quote
Why would one need the scrollbars though? I don't recall having used the scrollbars on any 2D graphics application.

I never use them (unless forced to by a dodgy app) - my mousewheel is fine. But scrollbars are very important to me since they tell me a) that there is stuff below the line I can't see, and b) how big the stuff below the line is.

This is what makes GUIs really useful. Or should. It's not so much that there are things to click on or drag but that there are visual clues that one often uses without realising.
 
The following users thanked this post: tooki

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #64 on: August 19, 2020, 09:23:24 pm »
Quote
Good luck with your project.

Let's just agree that we have different ideas on how a PCB design tool should operate and look like.

Quote
and adding a little bit of configurability like the zoom step size

We now have this.
 

Offline gord

  • Newbie
  • Posts: 7
  • Country: scotland
Re: Horizon EDA Version 1.0!
« Reply #65 on: August 20, 2020, 04:36:52 pm »
Hi Lukas,

Horizon has many useful functions, any comments regarding UX or otherwise are just friendly comments. I think consistency is important even if it is 20 years old, scrollbars provide context. Panning should not need a hard centre mouse scroll wheel to be pressed, other software does this but they also provide other methods to pan.
Regarding this:
Quote
Quote
Polishing the UI to speed it up, trying commonly-encountered devices like a mouse with scroll wheel and you'll soon find centre-clicking is not pleasant, so a keypress is helpful for such circumstances.

I am using a mouse with a scroll wheel and have no problem with the middle mouse button. If you don't like it, you can hold shift and drag with the left mouse button.
This is great, thanks. This is in-line with what other software does, having the option to press a modifier key and then dragging with a left or right mouse button.

Quote
EDIT: One reason for the hover select mode is being able to hover over something and just press delete to delete it as it's possible in kicad.
EDIT2: You can try out the alternate behaviour with https://ci.appveyor.com/project/carrotIndustries/horizon/builds/34728877 once the build has finished.
I have just tried this, and it is much better. It would still be nice to be able to have the hybrid option (it is more in-line with other graphical editors, for instance Visio will allow hover and then drag, or single click to select and then use cursor keys to move) but a hover mode which doesn't disable itself if blank space is clicked is better than previously.
I think there is a bug though, if I double-click on text to edit it, then the mode goes into click mode. It's not nice when it changes almost arbitrarily, just one consistent mode is better (unless explicitly changed), whatever that mode is, hover or hybrid.

I have a question, if my circuit looks like the attachment, because I dragged R1 up, where should I click and drag to make the two connecting wires horizontal?
If I click on the angled wires and drag, I can find no way to achieve it. Clicking on the pointed corners does not work either. To me it seems like the only solution is to delete the wires and redraw. Is there really no way to correct this situation by dragging wires? If there is a way, it is very unobvious. This is a very popular thing, where a user may move a component to reduce space or tidy up, and then wish to move the wires so they are not angled. Maybe an interesting feature could be to horizontalize or verticalize wires on a keypress if the intent needs to be passed to the software, this would be a nice differentiator.

Finally for now, when the exit button is clicked, Horizon uses back-to-front buttons. Normally with Windows software the Save option is on the left, but with Horizon the 'Exit without Saving' option is on the left. I think this is going to annoy users when they lose their designs. If it cannot be swapped around, can an "Are you sure?" box appear if "Exit without Saving" is clicked?

« Last Edit: August 20, 2020, 05:50:21 pm by gord »
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #66 on: August 20, 2020, 08:24:50 pm »
Quote
panning should not need a hard centre mouse scroll wheel to be pressed, other software does this but they also provide other methods to pan.

Perhaps we've used a discjunct set of 2D graphics applications, but the majority of the apps I've used so far uses middle click to pan.

Quote
for instance Visio will allow hover and then drag, or single click to select and then use cursor keys to move

I'm probably missing the point, but hover and drag as well as clicking to select and using the arrows keys to move does work. I've only used visio once or so, didn't like it's interaction and didn't bother with it anymore.

Quote
if I double-click on text to edit it, then the mode goes into click mode


Well, this is bit difficult to solve. From the applications perspective a double click looks like two regular mouse clicks followed by a double click event. Unconditionally switching to to hover select mode after double click isn't ideal either.

Quote
I have a question, if my circuit looks like the attachment, because I dragged R1 up, where should I click and drag to make the two connecting wires horizontal?

You don't. Select both junctions that stick out the bottom and press m to invoke the move tool. I usually prefer moving things that way as it doesn't require holding down the mouse button.

Quote
Finally for now, when the exit button is clicked, Horizon uses back-to-front buttons. Normally with Windows software the Save option is on the left

Horizon EDA isn't windows software. It's a cross-platform applications that tries to follow the GNOME UI guidelines.
 

Offline jbay

  • Newbie
  • Posts: 7
  • Country: ca
Re: Horizon EDA Version 1.0!
« Reply #67 on: August 25, 2020, 02:06:09 am »
Quote
I would also suggest working with people who are trying to give feedback, instead of against.

For what it's worth, I think Lukas has been extremely responsive to feedback. He's taken the time to respond to every one of my questions or comments, explained his reasoning when he disagreed, and most astonishingly, fixed bugs that I reported and implemented many of the changes that I requested, within days or even hours. I'm blown away.

Anyway, it's true that Horizon doesn't copy the UI of other EDA programs. I think that's great. If I liked KiCAD's UI, I'd be using KiCAD. I found Horizon much easier to pick up and start using than any other EDA software I've used before. I think it could definitely do with more tutorials and examples, but it makes more sense to write those after the features stabilize. Once I feel experienced enough to write them I'd be happy to volunteer to contribute a few.
 
The following users thanked this post: Warhawk

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #68 on: August 25, 2020, 01:47:45 pm »
I also agree that Lukas has been extremely supportive and always provided clear answers.
To me it seems that he has some vision and does not promise everything to everyone. I appreciate this behavior way more than what I witnessed from e.g. Altium and their comments on Circuit Studio development.
 
The following users thanked this post: gord

Offline Oleander

  • Contributor
  • Posts: 31
  • Country: pl
Re: Horizon EDA Version 1.0!
« Reply #69 on: August 25, 2020, 06:50:32 pm »
Hello !
I've just tried to compile Horizon EDA v.1.21 on my Slackware Linux 64-bit, but an error terminated the job:
Code: [Select]
build/obj/build/gen/help_texts.o
 build/horizon-imp
 build/horizon-eda
/usr/include/opencascade/BRepAdaptor_Surface.lxx:270: error: undefined reference to 'GeomAdaptor_Surface::IsVRational() const'
/usr/include/opencascade/BRepAdaptor_Surface.lxx:260: error: undefined reference to 'GeomAdaptor_Surface::IsURational() const'
/usr/include/opencascade/BRepAdaptor_Surface.lxx:249: error: undefined reference to 'GeomAdaptor_Surface::NbVKnots() const'
~~~~~~
build/obj/src/util/step_importer.o:step_importer.cpp:vtable for GeomAdaptor_Surface: error: undefined reference to 'GeomAdaptor_Surface::BasisCurve() const'
build/obj/src/util/step_importer.o:step_importer.cpp:vtable for GeomAdaptor_Surface: error: undefined reference to 'GeomAdaptor_Surface::BasisSurface() const'
build/obj/src/util/step_importer.o:step_importer.cpp:vtable for GeomAdaptor_Surface: error: undefined reference to 'GeomAdaptor_Surface::OffsetValue() const'
collect2: error: ld returned 1 exit status
make: *** [Makefile:817: build/horizon-imp] Error 1
make: *** Waiting for unfinished jobs....
What is the problem here ?
I have all required dependencies.

« Last Edit: August 25, 2020, 06:53:01 pm by Oleander »
 

Offline gord

  • Newbie
  • Posts: 7
  • Country: scotland
Re: Horizon EDA Version 1.0!
« Reply #70 on: August 25, 2020, 08:27:22 pm »
It is more usable PCB-CAD software than many others out there. The UI has quirks, but once they are explained, it becomes fine generally, although some things still feel inconsistent or unintuitive. This is just a friendly comment, there is no criticism intended.
I hope the component creation process can be shortened for single-gate parts, (for example, more in-line with EAGLE which has just three steps [package, symbol and component]), and I hope to try creating a complete PCB design with Horizon soon.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #71 on: August 25, 2020, 10:05:37 pm »
Quote
I hope the component creation process can be shortened for single-gate parts,

Have you tried the part wizard? That should make things a lot easier compared to using entity and part editor.

Quote
although some things still feel inconsistent or unintuitive.

Feel free to point them out, that's the only way they could get better. Some things though might be due to different concepts or implementation limitations.

Quote
I've just tried to compile Horizon EDA v.1.21 on my Slackware Linux 64-bit, but an error terminated the job:

Looks like your version of opencascade might be built differently than the one packaged by other distros. Try appending -lTKG3d to the LDFLAGS_OCE variable in the Makefile.
 

Offline Oleander

  • Contributor
  • Posts: 31
  • Country: pl
Re: Horizon EDA Version 1.0!
« Reply #72 on: August 26, 2020, 08:32:27 am »
Quote
I've just tried to compile Horizon EDA v.1.21 on my Slackware Linux 64-bit, but an error terminated the job:
Quote
Looks like your version of opencascade might be built differently than the one packaged by other distros. Try appending -lTKG3d to the LDFLAGS_OCE variable in the Makefile.

Makefile appending worked, thanks !
Now it's the time to explore it all.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #73 on: August 29, 2020, 08:03:47 pm »
Quote
1. Is there a way to route tracks at any angle, instead of 45 deg? If any angle is not possible, then 22.5 deg or 12.5 deg step modes could be useful and meet most requirements where 45 degree is not sufficient. If I had a choice this would be a high priority for me. Eventually curved tracks may also be good but this may be a major feature?

2. A button to override the rules during routing could be useful, because sometimes it is helpful to lay down tracks for layer refinement. This is useful when quickly testing to see if traces and positioning may be fine. For me this is a medium priority.
There's the draw track tool, but it's fairly basic. IIRC the kicad router used in Horizon EDA supports routing arbitrary angles without DRC and disabling DRC, so it's just a matter of adding the glue logic.


Good news for you: The route track tool now supports routing tracks at arbitrary angles as well as turning DRC off. Press Shift-S to open the router's settings.
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 11265
  • Country: ch
Re: Horizon EDA Version 1.0!
« Reply #74 on: August 30, 2020, 09:32:12 am »
I have tried it as well for a couple of days and i would like to give my two cents as well.
Unfortunately, I am a little bit worried to actually share my thoughts, since most of the time feedback and criticism seems to be totally burned down.



But I am just not seeing it with this one, I am very sorry.
A lot of work needs to be done to the user interface ans user experience.
It's very unclear what exactly is going on, what is happening and how and what to do, where to find things.
Yes, those things can be found in manuals and such, but these things just need to be intuitive, without the user spending so much extra time to search and read.
In other words, the interface is just way to different that what is usual as well as very inconsistent.

If that i your goal and taste, it's fine I guess.
I just don't really see a lot of people enjoying it this way.

Just giving my professional thoughts about it, nothing more.

Can you be more specific? Feedback like this isn't really actionable and doesn't do any good. Anyhow, I've heard exactly the opposite from some people.
Be more specific?
Install Altium, diptrace, Proteus, Ultiboard or even ave a look at EasyEDA, hack even the old PADS and have a look how the user interface is and works.
My apologies, but I don't see how this is not obvious and this feedback is actually VERY actionable.
No, it absolutely isn’t actionable. None of the comments are even distantly specific.

And pointing to all the classics... I think the point here was to NOT just be a clone of the (shitty) standard EDA program user interface model.
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 11265
  • Country: ch
Re: Horizon EDA Version 1.0!
« Reply #75 on: August 30, 2020, 09:46:56 am »
Quote
User experience,interface as well as compatibility (Mac, Windows and Linux) is key, the rest will come later (unless you heavily fail on it)

As written before, I don't have the time and hardware to bother with Mac os.
To be honest though, that’s a dumb decision — a good app that runs on the #1, #2, and #3 desktop OSes is a lot more valuable than one that runs on #1 and #3. Even more so as the Mac platform has continued to gain ground outside of its classic stronghold of media production. (Almost 10 years ago, I worked at a software company that made a Windows program for research and academia, and we got daily inquiries into a Mac version. For many customers, especially large ones seeking site licenses, the lack of a Mac version removed our product from consideration entirely, as all our major competitors supported both. Linux inquiries were but a tiny fraction as many as Mac.)
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #76 on: August 30, 2020, 12:02:02 pm »
Quote
User experience,interface as well as compatibility (Mac, Windows and Linux) is key, the rest will come later (unless you heavily fail on it)

As written before, I don't have the time and hardware to bother with Mac os.
To be honest though, that’s a dumb decision — a good app that runs on the #1, #2, and #3 desktop OSes is a lot more valuable than one that runs on #1 and #3. Even more so as the Mac platform has continued to gain ground outside of its classic stronghold of media production. (Almost 10 years ago, I worked at a software company that made a Windows program for research and academia, and we got daily inquiries into a Mac version. For many customers, especially large ones seeking site licenses, the lack of a Mac version removed our product from consideration entirely, as all our major competitors supported both. Linux inquiries were but a tiny fraction as many as Mac.)

To clarify things a bit more about mac OS: People tried getting it to work on mac OS, but hit a roadblock when it came to OpenGL: https://github.com/horizon-eda/horizon/issues/271 Fixing this would probably require in-depth knowledge about Gtk's Quartz backend and of course a mac computer at my disposal, neither of which I have. It's not that I'm actively working against mac OS support, it's just something that isn't within my technical abilities without investing a significant amount of time.
 

Offline Oleander

  • Contributor
  • Posts: 31
  • Country: pl
Re: Horizon EDA Version 1.0!
« Reply #77 on: September 23, 2020, 03:42:26 am »
Is there a way to hide the left toolbox in a board/schematic editor ? It takes a lot of useful editor area. 
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #78 on: September 23, 2020, 05:39:13 pm »
Is there a way to hide the left toolbox in a board/schematic editor ? It takes a lot of useful editor area.

There's the "distraction free mode" that hides the left and right sidebars: https://blog.horizon-eda.org/progress/2020/07/05/progress-2020-06.html#distraction-free-mode-pr-413
 

Offline Oleander

  • Contributor
  • Posts: 31
  • Country: pl
Re: Horizon EDA Version 1.0!
« Reply #79 on: November 03, 2020, 09:30:17 am »
Is there a way to use mils (1/1000 of the inch) as a main distance unit  ?
When I enter 'mi' or 'mil' - it is converted to millimeters.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #80 on: November 03, 2020, 11:09:22 pm »
Is there a way to use mils (1/1000 of the inch) as a main distance unit  ?
When I enter 'mi' or 'mil' - it is converted to millimeters.

I've been waiting for this question since the very first release. Apart from me not liking imperial units, I see another real problem, namely accumulating rounding errors. The internal representation of lengths is nanometers. A length of 1mm will be displayed as 39.37mil, which after editing will become 0.999998mm. While the error might no be an issue, I don't have a good feeling about it.


Apart from that, version 1.3.0 just got released: https://github.com/horizon-eda/horizon/releases/tag/v1.3.0
 
The following users thanked this post: Pitrsek

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #81 on: January 30, 2021, 11:17:35 am »
Version 1.4.0 just got released: https://github.com/horizon-eda/horizon/releases/tag/v1.4.0

Apart from the usual set of new feature this release includes two important bugfixes for windows users:

 
The following users thanked this post: Warhawk, Pitrsek

Offline djac

  • Regular Contributor
  • *
  • Posts: 97
  • Country: de
Re: Horizon EDA Version 1.0!
« Reply #82 on: February 11, 2021, 10:16:49 am »
Hello Lukas,

Today I was once again looking for a replacement for KICAD and came across your Horizon and read through the documentation. And here your idea that library management is the crucial pivotal point in an EDA program immediately caught my eye. This is the main reason why I am looking for an alternative to KICAD, because it is extremely complicated and not intuitively solved. Most of the work in creating schematics is spent on creating or searching for symbols or footprints, the rest is rather the smaller part.

In particular, the idea of creating a central repository on Github is really good. Anyone can simply put a tested "part" there and it is then available to the general public. Once there is a community of users who use the program, they will embrace the idea enthusiastically and the collection will swell rapidly because everyone has the problem that it takes up far too much time.

I then installed the programme to try it out. The first impression is good. Nice logical presentation, the programme reacts quickly, etc.

But now comes the big "but".

The documentation is completely inadequate. First of all, you explain some basic ideas much too abstractly. I can't do anything with the Powernet thing, for example. What is that supposed to be good for? Well, the program grumbles when I want to connect two netlists just like that. But what practical relevance does this have, what advantages can I derive from it? To which connections does the power net refer, only to ground or also to +Vcc and -Vss or is it generally good for splitting into subnets. I don't want to waste my time with the question: what did the artist mean by that? This is always best done with the help of examples.

The lack of concrete examples is consistent throughout the manual. An example of this is the chapter on creating "parts". Instead of just general explanations, an additional concrete example would be very helpful. How do I create, say, a quadruple OpAmp. With screenshots and explanations such as what changes when gate and unit are trivial, as with a resistor. I tried to create a part LTC2057, but couldn't figure out what to do in which order. If something is not intuitive, it must be in the manual!

But there also seem to be logical breaks in your library concept. Let's take the simple components like resistors etc. You seem to have the idea that the definition of a resistor includes parts, manufacturer, ohmic value, maximum power and footprint. This completely misses the point in practice. Just think how many parts come together if you iterate over all manufacturers, values according to E192 etc.. The disk space on GitHub may quickly reach its limits.

The concept does not fit. For an EDA, the value of a resistor and the manufacturer are completely irrelevant, but not the symbol and the footprint. The former are purely declarative attributes that have no place in a library. There, the connection resistor-symbol-footprint is sufficient. The latter are project-specific and have to be added on the fly in the schematic editor or wherever else it makes sense. And for this you can provide a few attributes that are generally valid for all components, e.g. manufacturer, series, order number, component designation (e.g. R14, not editable), value, power, comment (free text), all of which are sensibly preassigned with "" or "unknown" and which have a specific meaning in the schematic editor, component printout and component list. For this, these attributes must then be stored in files in the project directory and not in the pool.

In any case, no one will use a program that first has to create a complete part for a simple resistor or pick it out of millions of entries. The rest may be as good as it wants, but that is a knockout criterion.

Your program seems to have really good facilities and ideas, but if you also want to succeed, you would have to change your priorities:

1. a most carefully prepared documentation. I know this is the unloved child of every programmer (I've been programming all my professional life, so I know what I'm talking about). But without it, you won't get a community around this program.

2. look at your program from the point of view of a user who doesn't care about the internals and beauties of your code, and whose only goal is to get a finished board with the help of a very user-friendly program, and with as little time and mouse clicks as possible. This can be achieved by using the program intensively as a user.

3. You can implement all extensions and refinements later, but first it is important to create a solid basis all around.

As it is now, I won't want to use it, but I would be really happy if you could bring the thing to a successful end.

Best regards
Dieter
« Last Edit: February 11, 2021, 10:21:44 am by djac »
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26682
  • Country: nl
    • NCT Developments
Re: Horizon EDA Version 1.0!
« Reply #83 on: February 11, 2021, 07:06:58 pm »
But there also seem to be logical breaks in your library concept. Let's take the simple components like resistors etc. You seem to have the idea that the definition of a resistor includes parts, manufacturer, ohmic value, maximum power and footprint. This completely misses the point in practice.
On the contrary! If you look at how part libraries are being build & used at larger companies you'll see that all these properties are included. Otherwise you need to do manual work when creating the BOM. When creating a schematic you are not picking a symbol + footprint but a part that exists in the real world and therefore it needs the parameters that tie it to the real world. All the big EDA packages work this way because it is the only way to keep a handle on the logistics of getting a board produced. So yes, creating a part with all the parameters before drawing a schematic IS the right workflow.
« Last Edit: February 11, 2021, 07:08:45 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: voltsandjolts, WattsThat

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #84 on: February 11, 2021, 09:15:43 pm »
+1 for what nctnico said. Library is handled in correct way with HorizonEDA. Actually it is one of the greatest strength of the tool.
« Last Edit: February 11, 2021, 09:19:39 pm by Pitrsek »
 

Online PlainName

  • Super Contributor
  • ***
  • Posts: 6769
  • Country: va
Re: Horizon EDA Version 1.0!
« Reply #85 on: February 11, 2021, 09:35:52 pm »
Quote
So yes, creating a part with all the parameters before drawing a schematic IS the right workflow.

Shouldn't that be qualified with "when being used at larger companies"?
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26682
  • Country: nl
    • NCT Developments
Re: Horizon EDA Version 1.0!
« Reply #86 on: February 11, 2021, 09:53:28 pm »
Quote
So yes, creating a part with all the parameters before drawing a schematic IS the right workflow.

Shouldn't that be qualified with "when being used at larger companies"?
No. For over 20 years already I have used this workflow at all companies I worked in (big & small) and am still using it even though I'm a one-man-band. It helps a lot at the logistics end. You create a component once and then re-use, re-use and re-use. Especially for parts like resistors which are used a lot it is extremely convenient not having to question what type to order. When I create a BOM it comes complete with order numbers for Farnell & RS so I can copy & paste the items I don't have in stock straight into the website. Filling the database with common parts like resistors and capacitors to get started is tedious day's work but from then on you start raking in the rewards.
« Last Edit: February 11, 2021, 09:57:13 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: Bassman59

Offline djac

  • Regular Contributor
  • *
  • Posts: 97
  • Country: de
Re: Horizon EDA Version 1.0!
« Reply #87 on: February 11, 2021, 10:37:35 pm »
@nctnico

However, this approach is extremely impractical for the following reasons:

A project is first in the development phase and it is about the creation of prototypes, and this also several times.

Initially, it is only a matter of technical decisions. Let's take a 1K resistor as an example. The technical decision also includes the design, let's say smd 603, which also affects the design of the PCB. I want to find such an initially incomplete element, i.e. R,603, in the library.

Only those attributes are preassigned that are necessary for the immediate PCB creation. Of course, there are other technical decisions to be made, such as resistance value, possibly also tolerance, power or temperature coefficient. However, these attributes have no relevance for the PCB creation.

I would like to be able to add all these attributes, if they are needed at all. The technically relevant data will probably be added in the schematic editor, but manufacturers etc. are usually irrelevant in the development phase. This topic will therefore only be addressed when the development is completed and the actual production begins. What is needed here is an editor for the bom list, with the help of which the missing attributes can be added, but do not have to be.  The manufacturer, for example, does not matter for most resistors, which one is selected is more a question of the achievable purchase prices and no longer concerns the development department, which thus leaves this attribute unoccupied and thus leaves the decision to the purchasing department.

In any case, these additional attributes have no relevance to the task that an EDA tool has to cope with and thus do not belong in the library. This data is project-specific and will change again and again in the course of the product's life without affecting the PCB itself. It is therefore crucial to simply add these attributes, e.g. by double-clicking on a symbol in the schematic editor, which opens a window for this purpose.

Of course, this does not exclude the procedure of defining everything in advance in the library, because these descriptive attributes may well exist in the library. Those who like it should do it and dig through hundreds of thousands of resistor entries until they find what they want.

The decisive factor, however, is the possibility of simple updating in the schematic editor, etc. (without changing the library by default). Only in this way can the tool adapt to the different work processes in the different organisations and not vice versa. An engineering office that only builds prototypes has different needs than a company that serves the mass market with finished products.

Your concept may correspond to your preferences, but it is too rigid and does not fit in with the processes in other organisations or with the preferences of other people.
« Last Edit: February 11, 2021, 10:47:36 pm by djac »
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26682
  • Country: nl
    • NCT Developments
Re: Horizon EDA Version 1.0!
« Reply #88 on: February 11, 2021, 11:11:47 pm »
In most practical situations parts like resistors and capacitors don't have manufacturers and part numbers specified in the parts database. Just a minimal specification like the value and tolerance. For capacitors only voltage and dielectricum. This is perfectly reasonable for an assembler to deal with and there is no need to be super rigid about it.

However if you need to be more specific then an additional part should be created in the database. For example a resistor with a tolerance of 0.01% with a specific aging coefficient. If you leave that to the schematic only it will be very prone to errors. One of the features in Orcad (for example) is to check the parts against the database. This is an extremely useful tool to make sure that your BOM will be complete. Another feature of Orcad is to go through the BOM and look for a specific part value. If it turns out you have 50 times 100nf 0402 10V and 10 times 100nf 16V then you can quickly turn all these into 100nf 16V by linking them to a different part in the database. All the fields will be updated automatically. Actually: the only information that is relevant for the schematic are references to the database. The data in the schematic is just a copy of that.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline djac

  • Regular Contributor
  • *
  • Posts: 97
  • Country: de
Re: Horizon EDA Version 1.0!
« Reply #89 on: February 11, 2021, 11:31:43 pm »
Then we are actually in agreement with regard to the requirements of an eda tool.

The descriptive attributes are available in the database, but the necessary entries are only R and footprint in the case of a resistance.

I can't say whether this works in Horizon, because I didn't get that far due to the incomplete documentation. But what I can't do is open a window in the schematic editor to change or add project-specific values. I don't want to have to switch between schematic and part editor every time just to enter the resistance value. That is much too inconvenient. In the schematic editor, a window opens after double-clicking on a symbol, but the resistance value is only displayed and cannot be changed.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26682
  • Country: nl
    • NCT Developments
Re: Horizon EDA Version 1.0!
« Reply #90 on: February 11, 2021, 11:53:34 pm »
Then we are actually in agreement with regard to the requirements of an eda tool.

The descriptive attributes are available in the database, but the necessary entries are only R and footprint in the case of a resistance.
No, it is better to take it one step further.
Quote
I can't say whether this works in Horizon, because I didn't get that far due to the incomplete documentation. But what I can't do is open a window in the schematic editor to change or add project-specific values. I don't want to have to switch between schematic and part editor every time just to enter the resistance value. That is much too inconvenient. In the schematic editor, a window opens after double-clicking on a symbol, but the resistance value is only displayed and cannot be changed.
Yes, and that is inline with how it should work. You have to define all resistor values in the database before you are able to use them. Just putting values into a schematic is not an organised way of working (good for DaveCADtm but an EDA tool is usually used to create a board). It will lead to errors due to inconsistencies. At some point you'll have a board made and at that point all parts will need some minimum specification for the purchasing department (even if that is yourself) to deal with the part. In case of a resistor it is handy to have a value, case size and tolerance for example.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #91 on: February 12, 2021, 12:12:07 am »
Quote
can't do anything with the Powernet thing, for example. What is that supposed to be good for?

To get the usual power/gnd symbols. That's about it.

Quote
Well, the program grumbles when I want to connect two netlists just like that.

That's actually documented: https://horizon-eda.readthedocs.io/en/latest/imp-sch.html#nets-and-net-segments

Quote
The lack of concrete examples is consistent throughout the manual. An example of this is the chapter on creating "parts". Instead of just general explanations, an additional concrete example would be very helpful. How do I create, say, a quadruple OpAmp.

I agree that the documentation still has quite some scope for improvement, nevertheless people figured it out: https://github.com/horizon-eda/horizon-pool/pulls

Quote
The concept does not fit. For an EDA, the value of a resistor and the manufacturer are completely irrelevant

As other people already mentioned, this is by design, inspired by how it's done in the enterprise world. The schematic/netlist is the single source of truth for the BOM. You can't tell someone else like your assembly house or purchasing department to get you a 1k 0603 resistor. You better tell them to get a panasonic ERJ-3EKF1001 and you get exactly what you want.

Quote
In any case, no one will use a program that first has to create a complete part for a simple resistor or pick it out of millions of entries

That's what the parametric search is for. That way you know, that the resistor you're thinking of is actually something that you can get. The partinfo integration even tells you the stock of your favourite distributor.

Quote
2. look at your program from the point of view of a user who doesn't care about the internals and beauties of your code, and whose only goal is to get a finished board with the help of a very user-friendly program, and with as little time and mouse clicks as possible. This can be achieved by using the program intensively as a user.

This is exactly why I started the project. I wasn't happy with what the then-present open source PCB design tools, so I made my own. The nice thing about being user and developer in one person is that things can be exactly the way I want them to be, only limited by time and imagination.

Quote
I don't want to have to switch between schematic and part editor every time just to enter the resistance value.

You don't. You go the part browser and pick another one with the desired value.

All in all, my goal isn't to make Horizon EDA appeal to the widest audience possible. I'm quite happy with how things are progressing community-wise on github, IRC and other places.
 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 99
Re: Horizon EDA Version 1.0!
« Reply #92 on: February 12, 2021, 06:39:47 am »
Quote
The concept does not fit. For an EDA, the value of a resistor and the manufacturer are completely irrelevant

As other people already mentioned, this is by design, inspired by how it's done in the enterprise world. The schematic/netlist is the single source of truth for the BOM. You can't tell someone else like your assembly house or purchasing department to get you a 1k 0603 resistor. You better tell them to get a panasonic ERJ-3EKF1001 and you get exactly what you want.

There's nothing wrong with specifying a component as 'resistor 1k 0603'. I do this routinely. The looser the spec, the easier it is for the broker/factory to by parts that fit the requirement, the cheaper the parts will be. Try it sometime.

Quote
I don't want to have to switch between schematic and part editor every time just to enter the resistance value.

You don't. You go the part browser and pick another one with the desired value.

This workflow absolutely sucks for entering analog circuitry. Normally when I design something analog I place my components first and wire them up. Only once I can see the topology do I start assigning values. It seems like a great additional effort required to create the circuit mentally and calculate the values before even seeing the the thing on the page!

It's can also be useful to be able to create a circuit without values if under time pressure, like the board layout must be ready by the end of the day to meet a deadline.

But there also seem to be logical breaks in your library concept. Let's take the simple components like resistors etc. You seem to have the idea that the definition of a resistor includes parts, manufacturer, ohmic value, maximum power and footprint. This completely misses the point in practice.
On the contrary! If you look at how part libraries are being build & used at larger companies you'll see that all these properties are included. Otherwise you need to do manual work when creating the BOM. When creating a schematic you are not picking a symbol + footprint but a part that exists in the real world and therefore it needs the parameters that tie it to the real world. All the big EDA packages work this way because it is the only way to keep a handle on the logistics of getting a board produced. So yes, creating a part with all the parameters before drawing a schematic IS the right workflow.

As far as I can tell, Horizon is unique in it's total inability to edit component values. Altium, for example, will happily let you change values on the fly if you wish to do so. Other packages may have this mode as an option, but it's not normally forced like this. I find that for some components it's really useful to have all the parameters welded together such as connectors and potentiometers. For other components such as resistors and caps, it's a horrible inconvenience.
 

Offline djac

  • Regular Contributor
  • *
  • Posts: 97
  • Country: de
Re: Horizon EDA Version 1.0!
« Reply #93 on: February 12, 2021, 11:02:21 am »
@nctnico

"You have to define all resistor values in the database before you are able to use them."

As I said, the structure of the library should be flexible enough to allow such a way of working. But you and your approach are not the navel of the world, there are well-founded other work processes and a tool should be able to map them as well. A good tool should be so flexible that it can be used under the most diverse work and organisational processes. It is not its task to impose a certain approach on the user.

@ Lukas

"the documentation still has quite some scope for improvement"

I think that is a big understatement. I have rarely seen such superficial and incomplete documentation.

"That's what the parametric search is for."

To place a simple field, forest, meadow resistor takes far too long. I mostly prototype, and 90% of the simple components come from stock, only special types have to be ordered for a project. But your tool would force me to enter all the types with all their attributes into the database first. All too complicated and time-consuming for my needs.

"As other people already mentioned, this is by design, inspired by how it's done in the enterprise world."

Well, if you think that inflexibility is a sign of quality, so be it. Then I'll just have to stay with KICAD or keep looking.
« Last Edit: February 12, 2021, 11:04:37 am by djac »
 

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 171
  • Country: cz
Re: Horizon EDA Version 1.0!
« Reply #94 on: February 12, 2021, 07:34:51 pm »
A good tool should be so flexible that it can be used under the most diverse work and organisational processes. It is not its task to impose a certain approach on the user.
Sorry but this is not true, each and every tool imposes a certain philosophy and workflow. Good luck going against the grain of the tool... If the tool would cater to every possible workflow, it would be unusable mess. Ask 5 engineers and you'll get 6 opinions...
Honestly I do not see what is the fuss about. You are free to define as much or as little parameters as in library as you see fit, you just have to define them before you work(which will actually save you time in the end). There are scripts that come with Horizon that allow you to batch create family - you can create "Generic" Manufacturer with only resistance value mapped, or resistance and package, oh maybe tolerance is important to you as well... you can decide how far you want to take it. From 1k only to ERJ-3EKF1001, your choice.  You can create part with TBD value as well.

Well, if you think that inflexibility is a sign of quality, so be it.
Sorry I can't disagree more. Horizon lets me structure the library whenever way I feel like with component cases and custom parameters, all searchable. + ability to reuse symbols. I think we could discuss other aspects of the tool as how it stands compared to KiCad, but for library comparison, there is no comparison.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26682
  • Country: nl
    • NCT Developments
Re: Horizon EDA Version 1.0!
« Reply #95 on: February 12, 2021, 09:41:36 pm »
Well, if you think that inflexibility is a sign of quality, so be it. Then I'll just have to stay with KICAD or keep looking.
BTW: A library system similar to what is already in Horizon will be added to KiCAD in an upcoming release due to demand from professional / corporate CAD users.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26682
  • Country: nl
    • NCT Developments
Re: Horizon EDA Version 1.0!
« Reply #96 on: February 13, 2021, 01:31:31 am »
But there also seem to be logical breaks in your library concept. Let's take the simple components like resistors etc. You seem to have the idea that the definition of a resistor includes parts, manufacturer, ohmic value, maximum power and footprint. This completely misses the point in practice.
On the contrary! If you look at how part libraries are being build & used at larger companies you'll see that all these properties are included. Otherwise you need to do manual work when creating the BOM. When creating a schematic you are not picking a symbol + footprint but a part that exists in the real world and therefore it needs the parameters that tie it to the real world. All the big EDA packages work this way because it is the only way to keep a handle on the logistics of getting a board produced. So yes, creating a part with all the parameters before drawing a schematic IS the right workflow.

As far as I can tell, Horizon is unique in it's total inability to edit component values. Altium, for example, will happily let you change values on the fly if you wish to do so. Other packages may have this mode as an option, but it's not normally forced like this. I find that for some components it's really useful to have all the parameters welded together such as connectors and potentiometers. For other components such as resistors and caps, it's a horrible inconvenience.
You can start out with 'bogus' values and fill in the details later. For clarity you could even define components with 'bogus' as the value. It is a clear indication the schematic isn't ready to produce a bill of materials. Changing values 'randomly' without it being clear that the design isn't finished is horrible. Especially when working on a design with multiple people. In the end an extra round of checks is needed to verify all parts match the database. And if not, what part is actually needed? By that time the person who designed the circuit has moved on to the next task / problem and the work that person did to determine which component needs to be used has to be done again. Been there, done that. I agree that a more structured /rigid approach to creating schematics takes some getting used to but in the end it pays off in terms of efficiency and reduction of errors. Personally I never ever change the value of a part; I always choose a different part from the database and if the value doesn't exist I create a new part in the database. It needs to happen anyway and I can totally forget about the details of the part once it is in the schematic. A correct footprint, BOM entry and board as it is designed (I'm avoiding the word correct here) are guaranteed. No unpleasant surprises due to parts with wrong values, wrong order codes or footprints not matching.

I've been part of a project where the designer of a fairly complex board spend two weeks on figuring out a problem (too much leakage current somewhere) and in the end resorted to measure every resistor. It turned out to be an error in the (manually created) BOM. Those kind of errors don't happen to me.
« Last Edit: February 13, 2021, 01:48:20 am by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline djac

  • Regular Contributor
  • *
  • Posts: 97
  • Country: de
Re: Horizon EDA Version 1.0!
« Reply #97 on: February 13, 2021, 10:38:34 am »
Dear nctnico, no one wants to take away your way of working and your belief that this is the only way to minimise mistakes. You should still be allowed to define all components in the database down to the last dot before you touch the schematics. I don't even want to deny that this can be a thoroughly appropriate way of working, e.g. in teamwork.

However, in other contexts this is too cumbersome and costs too much time. The point here is to provide more flexibility in the interface. The parteditor seems to be able to cope with the minimal definition of manufacturer,R,footprint, resistance value. I have tried this and it works, but I have not been able to find this minimum value in the database because the naming in the database is not clear to me thanks to the poor documentation. Theoretically, you can also omit the resistance value, but you cannot enter it in the schematic. Instead, you have to switch to the part editor, search for the base element, duplicate it, enter the resistance value, save it, switch to the schematic, open the part list there, search for the newly created component and finally place it. It couldn't be more complicated. Nobody does this and the only feasible way is to create all the components before starting the schematic.

That's what I mean by inflexible.

Instead, I would like a minimum (R,footprint) and maximum definition (+ all descriptive attributes that are not necessary for PCB creation) to be possible in the part editor - as is already the case now), but additionally the possibility of adding these descriptive attributes (and only these) in both the schematic and PCB editor. This could be realised, for example, in such a way that a double-click on the component opens a window in which these attributes can be added or changed.Then there should be the option to save these entries only project-specifically in order not to unnecessarily inflate the database, or to also change these values in the database. In the latter case, you need the option of whether the database element is only updated or duplicated under a new name.

These changes would probably be relatively easy to insert into the existing code base. Then, nctnico, we would both be satisfied. Isn't that better than just you being satisfied?
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26682
  • Country: nl
    • NCT Developments
Re: Horizon EDA Version 1.0!
« Reply #98 on: February 13, 2021, 11:14:47 am »
These changes would probably be relatively easy to insert into the existing code base. Then, nctnico, we would both be satisfied. Isn't that better than just you being satisfied?
You really have no idea about how electronics are designed by professionals  :palm: In bigger companies they even have people dedicated to fill the part database. Just changing a value isn't allowed (do that and you might even get fired); you have to put in a request to add a component to the database and wait until it has been added before continueing with the design. It really isn't me pushing this workflow; I'm trying to show you the reasons why the workflow is used c.q. why it exists. Many people have thought long and hard about it. Unlike software an agile workflow doesn't really work for hardware because the turnaround times for having boards routed and produced is so long. First time right gets a product out of the door quicker.

Last year a supplier of one of my customers had to redo a batch of expensive boards because a new employee (fresh from school) changed the values in Altium instead of using the company's component database. His supervisors didn't caught it as well. In Horizon EDA he would not have been able to make this mistake (costing the company more than an Altium license).
« Last Edit: February 13, 2021, 11:23:03 am by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: Bassman59

Online PlainName

  • Super Contributor
  • ***
  • Posts: 6769
  • Country: va
Re: Horizon EDA Version 1.0!
« Reply #99 on: February 13, 2021, 11:43:02 am »
Quote
In bigger companies they even have people dedicated to fill the part database.

<Looks around the office... hmm, just the cat>

I guess my gaff isn't big enough for this product, then.
 

Offline djac

  • Regular Contributor
  • *
  • Posts: 97
  • Country: de
Re: Horizon EDA Version 1.0!
« Reply #100 on: February 13, 2021, 12:39:15 pm »
"You really have no idea about how electronics are designed by professionals  :palm:"

Which way is professional and effective always depends on the circumstances, there is no one professional way of working, so please stop proselytising.
 

Offline Feynman

  • Regular Contributor
  • *
  • Posts: 192
  • Country: ch
Re: Horizon EDA Version 1.0!
« Reply #101 on: February 15, 2021, 06:28:53 pm »
As other people already mentioned, this is by design, inspired by how it's done in the enterprise world. The schematic/netlist is the single source of truth for the BOM. You can't tell someone else like your assembly house or purchasing department to get you a 1k 0603 resistor. You better tell them to get a panasonic ERJ-3EKF1001 and you get exactly what you want.
I have to agree on this one. Every single company with a decent engineering department i worked with or worked for specified full part numbers for every single resistor. In most cases this was done once with some sort of script. In early development stages one can of course work with some preliminary parts that maybe only have a schematic symbol and maybe a value. But at the latest the final production design should have full part numbers for every single (purchasable) BOM item. This is also really handy especially for capacitors: You don't have to look up every time again if your desired capacitance value is really available in this package with that voltage and with this temperature coefficient. If you have full part numbers in your library, you are 100% sure that this part actually exists.

And that's also the preference of most assembly shops. The reason is simple: Most assemblers have no intention to stock some ordinary Panasonic 0603 10k resistor. In fact most assemblers prefer not to stock anything, simply because it's expensive (of course they happily store stuff, if you pay them to). If they have a full part number, they have the full specification. And thus an easier time finding alternatives if there is shortage on the market or in the rare cases where they actually have something "lying around" from a canceled job or whatever.

In the end the assembly shop has no idea if you really don't care about the rated voltage of a capacitor when you just say "100n 0603".

Another advantage: Nowadays, many shops offer some sort of "instant quote" on their websites, where you upload your BOM and stuff and get a quote within seconds. Not going to happen without full part number for every BOM item.
 
The following users thanked this post: Bassman59

Online PlainName

  • Super Contributor
  • ***
  • Posts: 6769
  • Country: va
Re: Horizon EDA Version 1.0!
« Reply #102 on: February 15, 2021, 07:56:03 pm »
Quote
If you have full part numbers in your library, you are 100% sure that this part actually exists.

Or existed when the device was added to the library.
 

Offline djac

  • Regular Contributor
  • *
  • Posts: 97
  • Country: de
Re: Horizon EDA Version 1.0!
« Reply #103 on: February 16, 2021, 09:37:06 am »
As other people already mentioned, this is by design, inspired by how it's done in the enterprise world. The schematic/netlist is the single source of truth for the BOM. You can't tell someone else like your assembly house or purchasing department to get you a 1k 0603 resistor. You better tell them to get a panasonic ERJ-3EKF1001 and you get exactly what you want.
I have to agree on this one. Every single company with a decent engineering department i worked with or worked for specified full part numbers for every single resistor.
...

And that's also the preference of most assembly shops. The reason is simple: Most assemblers have no intention to stock some ordinary Panasonic 0603 10k resistor. In fact most assemblers prefer not to stock anything, simply because it's expensive (of course they happily store stuff, if you pay them to). If they have a full part number, they have the full specification. And thus an easier time finding alternatives if there is shortage on the market or in the rare cases where they actually have something "lying around" from a canceled job or whatever.
...

Your statement is contradictory in itself, especially if you want to equip your boards externally.

For the assembler, it is advantageous if a resistor is not over-specified and thus has more straight lines of freedom. In many cases, he can use his own stock and does not have to order anything. This saves enormous costs (larger quantities when ordering). Or if he has no stock, he can order from the company that is offering cheap products at the moment.

What must be fixed are the technical key data that must be adhered to for the resistor so that the circuit functions, i.e. in most cases footprint, resistance value, tolerance. Even the exact power rating is unimportant in many cases and results indirectly from the design (e.g. 603).

Whether the resistor is manufactured by Panasonic or Yageo is irrelevant in most cases.

Of course, there are other cases where the manufacturer and the series must be specified, e.g. when it comes to certain high-frequency characteristics or very precise resistors with a low temperature coefficient. This is normally relevant for the rather smallest part of the resistors.

So again, the point is that an EDA tool does not rigidly define the processes, but has the flexibility to adapt to a wide variety of user needs.
 
The following users thanked this post: Bob Sava

Offline Gribo

  • Frequent Contributor
  • **
  • Posts: 628
  • Country: ca
Re: Horizon EDA Version 1.0!
« Reply #104 on: February 19, 2021, 03:40:19 pm »
That's the purpose of AVL (Approved vendor list). Usually you specify one PN, and in a different column, specify Any alternates, AVL only, or Do not substitute. And while a 1K Ohm, 1%, 0603 seems to be a bog standard part, sometimes they are not, and the assembler has no way of knowing that. At the end, it is all about communicating your design intent.
I am available for freelance work.
 
The following users thanked this post: tooki

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #105 on: June 01, 2021, 08:32:23 pm »
A bit later than usual, Version 2.0 is out: https://github.com/horizon-eda/horizon/releases/tag/v2.0.0

In addition to a wall of text changelog, there's also a blog post about the most important new features: https://blog.horizon-eda.org/new/2021/05/31/whats-new-2.0.html
 
The following users thanked this post: evb149, Pitrsek

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14230
  • Country: fr
Re: Horizon EDA Version 1.0!
« Reply #106 on: June 02, 2021, 03:46:43 pm »
A bit later than usual, Version 2.0 is out: https://github.com/horizon-eda/horizon/releases/tag/v2.0.0

In addition to a wall of text changelog, there's also a blog post about the most important new features: https://blog.horizon-eda.org/new/2021/05/31/whats-new-2.0.html

Impressive work!
 

Offline Bob Sava

  • Regular Contributor
  • *
  • Posts: 98
  • Country: us
Re: Horizon EDA Version 1.0!
« Reply #107 on: June 04, 2021, 08:57:43 pm »
A bit later than usual, Version 2.0 is out: https://github.com/horizon-eda/horizon/releases/tag/v2.0.0

In addition to a wall of text changelog, there's also a blog post about the most important new features: https://blog.horizon-eda.org/new/2021/05/31/whats-new-2.0.html

Impressive work!

"Custom values on symbols" - I have to check that out!
 

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #108 on: June 07, 2021, 10:08:27 am »
The 3D model projection feature looks very interesting. Great job. I need to give it a chance the second time.
(KiCad user here).

Offline Bob Sava

  • Regular Contributor
  • *
  • Posts: 98
  • Country: us
Re: Horizon EDA Version 1.0!
« Reply #109 on: June 08, 2021, 04:16:34 pm »
As other people already mentioned, this is by design, inspired by how it's done in the enterprise world. The schematic/netlist is the single source of truth for the BOM. You can't tell someone else like your assembly house or purchasing department to get you a 1k 0603 resistor. You better tell them to get a panasonic ERJ-3EKF1001 and you get exactly what you want.
I have to agree on this one. Every single company with a decent engineering department i worked with or worked for specified full part numbers for every single resistor.
...

And that's also the preference of most assembly shops. The reason is simple: Most assemblers have no intention to stock some ordinary Panasonic 0603 10k resistor. In fact most assemblers prefer not to stock anything, simply because it's expensive (of course they happily store stuff, if you pay them to). If they have a full part number, they have the full specification. And thus an easier time finding alternatives if there is shortage on the market or in the rare cases where they actually have something "lying around" from a canceled job or whatever.
...
[...]
What must be fixed are the technical key data that must be adhered to for the resistor so that the circuit functions, i.e. in most cases footprint, resistance value, tolerance. Even the exact power rating is unimportant in many cases and results indirectly from the design (e.g. 603).

Whether the resistor is manufactured by Panasonic or Yageo is irrelevant in most cases.

Of course, there are other cases where the manufacturer and the series must be specified, e.g. when it comes to certain high-frequency characteristics or very precise resistors with a low temperature coefficient. This is normally relevant for the rather smallest part of the resistors.

So again, the point is that an EDA tool does not rigidly define the processes, but has the flexibility to adapt to a wide variety of user needs.


It appears, with new pool structure in v2.0, it would be possible to create pools of generic parts with just values and footprints.   If that's still too much, one could create single part for each footprint.  Then hide all parameters while exposing description via 'custom values on symbols' feature, also in v2.0, where one could specify part parameters.  I probably would just stick to generic parts with individual parameters, however.

There are some scripts on github that could be the starting point: https://github.com/RX14/horizon-pool/tree/master/scripts


« Last Edit: June 10, 2021, 01:53:18 pm by Bob Sava »
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14230
  • Country: fr
Re: Horizon EDA Version 1.0!
« Reply #110 on: June 10, 2021, 06:07:49 pm »
I agree with the process being a bit too rigid, that was discussed quite a while ago.
Now I haven't looked at the new component database, so this point may have been addressed. I fully understand the point of enforcing all parts to be fully defined (instead of being generic) for a final design, but as I and several others have said, not all workflows are the same and the way to get there varies quite a bit. I would have favored the possibility of using generic parts with customizable attributes (values, tolerance, footprint, whatever), and just add a check in the BOM generator (or maybe already at the schematic-to-layout step, to ensure that footprints are all correct): each generic part would yield a warning or error, then it would give you the opportunity to change all generic parts in a design for fully-defined parts. I find this process much more suitable for most users. But that's just my opinion. And mabe the new version actually allows this?

As to Horizon's 3D viewer, KiCad should certainly take a hint. It's very good.
« Last Edit: June 10, 2021, 06:10:01 pm by SiliconWizard »
 

Offline Feynman

  • Regular Contributor
  • *
  • Posts: 192
  • Country: ch
Re: Horizon EDA Version 1.0!
« Reply #111 on: June 13, 2021, 07:41:57 pm »
The 3D model projection feature looks very interesting. Great job. I need to give it a chance the second time.
(KiCad user here).
Yeah, looks like someone was tired of exporting a 2D-projection from an external 3D-CAD tool and then importing it back to the PCB tool (like me) :D
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8515
  • Country: us
    • SiliconValleyGarage
Re: Horizon EDA Version 1.0!
« Reply #112 on: June 18, 2021, 12:39:55 pm »
On the concept of libraries i offer a different view.

Manufacturers and manufacturer part numbers stored in a library should not be used to pull a final bill of materials. let me explain :

- unique parts : 1 function , 1 footprint , no pin compatible substitutes : you can encode manufacturer and manufacturer part number directly in the database. there is no alternative anyway.
- multisourced parts : still 1 function, 1 footprint but possible variety of manufacturers / part numbers. how do you deal with this in a library ? list all ? list a few ? list the cheapest ? (which can change hour to hour) list the approved ? list the ones in stock ?

The second case is the huge issue with such an approach.
A true parts catalogue (i deliberately do not call it a library. the library is the CAD portion : symbol / footprint ) decouples that.
The CAD portion contains
- footprint
- symbol
- a number of useful parameters so that part selection can be done in the cad system. working voltage, value dielectric for caps, forward current, reverse voltage for diodes etc.
- a suggested manufacturer and manufacturer part number so you can pull a datasheet ( this covers both cases mentioned above : unique and multisourced )
- a textual description for this part
- unique identifier for this 'element'. This unique identifier is "data-less" it contains no identifiable part information. so no numbers like IC-TI-LM741 or RES-1K-0805-1%

The BOM database portion translates the unique identifier to "orderable parts". This translates the one (unique identifier) to many (part numbers) portion of data
i picked 1k 0805 1% in the cad , dropped symbol and footprint. When the bom needs to be generated part 0923540-00 (index-revision) is accessed in the database and it creates a line item that says

<designators from CAD>, <textual description from CAD>, <manufacturers from DB><manufacturer part numbers from db><vendor from db><vendor part number from db>
R214,R215 : Resistor 1K 0805 1% , Vishay CRW0805-102-DQR , Yageo RM8-1K00-P  Digikey  RN-7362, Mouser PQ2154, Avnet RES1K08051p

The pick and place file can do the same
<designator><x>,<y><top/bottom><rotation><textual description from CAD>, <manufacturers from DB><manufacturer part numbers from db><vendor from db><vendor part number from db>
R214 ,2.254,9.521,T,270, Resistor 1K 0805 1% , Vishay CRW0805-102-DQR , Yageo RM8-1K00-P, Digikey  RN-7362, Mouser PQ2154, Avnet RES1K08051p
R215 ,3.745,5.958,B,45, Resistor 1K 0805 1% , Vishay CRW0805-102-DQR , Yageo RM8-1K00-P, Digikey  RN-7362, Mouser PQ2154, Avnet RES1K08051p


The cad library editor needs to talk to the database. whenever a new part is created in the cad library , a new index number is requested form the DB. the CAD creates a new object with this ID, attaches footprint and symbol, textual description and whatever other data is at hand. if you have manufacturer and part number you can enter it and it will get loaded in the DB ( not in the CAd library ! loaded into the DB under the index). The cad tool can simply present a simple UI into the DB to do basic operations of adding the initial load.
The DB portion is accessible through another UI (more detailed) where you can edit the "textual" data.

Whenever a bom or pick place is generated the CAD tool pulls the latest data from the db based on the unique index.

The net result is:
- At design stage you are not "locked in" to manufacturer / part number. if you have it , load it, if not move on.
- at production time you can simply make sure your DB has the latest ordering data based on whatever criteria you need. ( could be price, could be signed contracts, could be whatever is in stock at digikey , could be whatever you have in house.)

This can be stored in a simple single-file db like Firebird or even a tabular format like a CSV file or excel file.
The key is the decoupling of the CAD and ERP/PLM data. The ERP/PLM data is in flux (prices change, product lines go obsolete, get replaced, contract change. not all companies work the same way) Storing this outside the CAD gives maximum flexibility.
Bonus : you can crosslink this DB and integrate it with part search engines like octopart or digikey data pulls through their API's if you want. This is all doable now as this data lives outside of the CAD world. IF the data updates , the CAd pulls it during BOM and P&P generation so You now have a live system with complete flexibility for both engineering and procurement/planning/production

Critcial points :
- the unique ID is immutable. once created it cannot be reused. it is alive ( part exists ) or dead ( part is obsolete) it is never reused. even on a dead part the ID is still 'used' ( to mark it as obsolete, potentially point to substitute)
- the db is a WORM (write once, read many): any alteration of text data creates a revision of a part. Data is never lost. The CAD tool can flag you are using an out-of-date revision and show you the list of newer revisions. it is up to the engineer to approve/reject. in most cases automatic approval is fine (if the parts are vetted to be correct) There can be a flag :
1 = mandatory update ( corporate policy, approved vendor for example , or product line discontinued and substituted or order number changed)
2 = requested approval (may be a power rating change for example the 1/4 watts are obsolete so we swapped to 1/3 watts , same tolerance,value, upward compatible change basically)
3 = need replacing (part obosolete , no footprtin compatible part available )
4 ... and so on.
« Last Edit: June 18, 2021, 12:50:15 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).
 
The following users thanked this post: rsjsouza, PlainName, djac, Bob Sava

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26682
  • Country: nl
    • NCT Developments
Re: Horizon EDA Version 1.0!
« Reply #113 on: June 18, 2021, 04:15:37 pm »
A true parts catalogue (i deliberately do not call it a library. the library is the CAD portion : symbol / footprint ) decouples that.
AFAIK this is exactly how the parts library of Horizon Eda has been organised from the start. Just don't get hung up on semantics between library / database; it is the same in this case. However, for some people this turns out to be too rigid.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8515
  • Country: us
    • SiliconValleyGarage
Re: Horizon EDA Version 1.0!
« Reply #114 on: June 18, 2021, 07:14:20 pm »
nctnico got me intrigued , so i installed it to fool around with it.

at first glance it is very intuitive i could draw schematics and pick parts within the first minute.
rapid fire questions :
- can the keyboard shortcuts be redefined ? saved in an importable/exportable settings file ? that would make it easier to migrate from other tools  >:D. some commands are not intuitive.
- placing a power object requires nets to exist. that requires opening another panel first, defining the netnames. on a port i can drop a port click it and type in the netname i want. (it sys plz_fix when a new port is dropped). power objects should behave the same way. it is counterproductive to first need one window to define the nets, then another window to pick them.
- move operations : always drags wires. make a Drag operator instead. M = move , just what is selected, breaking lines. wiring should not rubberband. D = Drag : rubberbanding of wiring ok
- i managed to draw a diagonal, offgrid wire. how do i edit its endpoints ? when you click a wire it shows a caret at the midpoint. i want carets at the endpoints as well so i can move those. i also want the ability to'break' a wire , or add a bend point.
 -- need handles on begin/end of a section of wire so they can be dragged
 -- need ability to cut wire ( for example hit the / key , then click on a point and it snips a section exactly 1 gridspace long )
 -- need ability to add a bendpoint to a section or at least move the center caret on-grid

pcb editor
-------------
- too much visual clutter. pads with rounded corners show crosshairs, circles and other clutter
- place via terminates routing. when in the middle of routing in want to be able to change layer and go on. so placing a via should shoot the via , then continue on other outside layer ( until you start supporting stacked vias )
- garbage collector : two track segments, running in same direction , with same width need to automerge to 1 segment.

nifty idea's
- auto teardropping on pad entry
- auto teardropping on track width changes


library
-----------
Thats a big mess.

- there is no rhyme or reason on package names. no convention is followed like IPC naming convention that tells you pitch , body size , pincount etc
- many non existing names. there is no such thing as a 5 pin sot23. the correct name is a sot25
- pads, courtyards, centroids , assembly data . all non existing
« Last Edit: June 18, 2021, 07:52:16 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).
 
The following users thanked this post: rsjsouza

Online PlainName

  • Super Contributor
  • ***
  • Posts: 6769
  • Country: va
Re: Horizon EDA Version 1.0!
« Reply #115 on: June 18, 2021, 09:59:39 pm »
Quote
there is no such thing as a 5 pin sot23

On the contrary, there are zillions. Perhaps you mean Diodes Inc no longer use the designation, but there are more sources than them.

Hmmm. Seems there are indeed zillions, but some big names are going, or have gone, SOT-25/26. Still, devices are specified as SOT-23-5 so it's a valid designator even if it's not 'official'.

« Last Edit: June 18, 2021, 10:05:16 pm by dunkemhigh »
 
The following users thanked this post: nctnico

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8515
  • Country: us
    • SiliconValleyGarage
Re: Horizon EDA Version 1.0!
« Reply #116 on: June 19, 2021, 11:58:40 am »
are going, or have gone, SOT-25/26.
nope. it has always been sot23 25 26. in the heydays it was labeled sot23-5 and -6 but then when they moved to smaller IEC stepped in and said "this needs to be uniform. you want 323 353 36 so make it 23 25 26 . Afaik the -5 -6 were never ratiified as iec standards.
just like it has always been sot323 353 363 sot523 sot553 and sot 563
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: rsjsouza

Online PlainName

  • Super Contributor
  • ***
  • Posts: 6769
  • Country: va
Re: Horizon EDA Version 1.0!
« Reply #117 on: June 19, 2021, 12:25:03 pm »
One lives and learns.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #118 on: June 20, 2021, 06:17:28 pm »

- move operations : always drags wires. make a Drag operator instead. M = move , just what is selected, breaking lines. wiring should not rubberband. D = Drag : rubberbanding of wiring ok


Dunno, to I've never found that behaviour useful. For disconnecting net lines from symbols, there's the "disconnect tool".

Quote
-- need handles on begin/end of a section of wire so they can be dragged

Clicking on the ends of a wire to select the junction it's attached to.

Quote
-- need ability to add a bendpoint to a section or at least move the center caret on-grid

If a net line isn't horizontal or vertical, dragging it will bend it. In all cases, there's the "bend net line" tool.

Quote
-- need ability to cut wire ( for example hit the / key , then click on a point and it snips a section exactly 1 gridspace long )

You're the first one to bring this up, can you describe some cases where this would come in handy?

Quote
- too much visual clutter. pads with rounded corners show crosshairs, circles and other clutter

Turning off outlines will get rid of these.

Quote
- place via terminates routing. when in the middle of routing in want to be able to change layer and go on. so placing a via should shoot the via , then continue on other outside layer ( until you start supporting stacked vias )

That's exactly how it works. To get the pcb editor to switch layers automatically, you'll have to set up a layer pair rule.

Quote
- pads, courtyards, centroids , assembly data . all non existing

Huh? Pads, courtyard and assembly outlines are there. Are you referring to the pick&place centroids? So far everyone has been happy with the pick&place center being on the package's origin.
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 8515
  • Country: us
    • SiliconValleyGarage
Re: Horizon EDA Version 1.0!
« Reply #119 on: June 20, 2021, 06:59:28 pm »
Dunno, to I've never found that behaviour useful. For disconnecting net lines from symbols, there's the "disconnect tool".
the problem with rubberbanding is that it vomits diagonal lines everywhere ! and that takes oodles of time to clean up. select a group of elements. move out of the way so i can add things inbetween. if the move is anythng else than pure horizontal or vertical things become a mess. that's why i want explicit move operators and drag operators.

Quote
Clicking on the ends of a wire to select the junction it's attached to.
doesn't work on diagonal lines.

Quote
You're the first one to bring this up, can you describe some cases where this would come in handy?
to move a section of schematic out of the way to insert another block. i should be able to slice individual wires , or draw a 'slicing line' anything crossed by the slicer gets broken. ( also need in the pcb tool by the way !)


Quote
Turning off outlines will get rid of these.
make it off by default.

Quote
That's exactly how it works. To get the pcb editor to switch layers automatically, you'll have to set up a layer pair rule.
Quote
why is top -bottom not the default pair ? that pair should be there when a blank project is created.

Quote
Huh? Pads, courtyard and assembly outlines are there. Are you referring to the pick&place centroids? So far everyone has been happy with the pick&place center being on the package's origin.
The package origin is not always the pick origin. for layout purposes ( like to be able to place parts on a grid ) you may want to set the origin at pin 1. the pick and place point could be somewhere else ( like the gravity point . you don;t want parts to wobble when the machine is moving. manufacturers specify where the pick point is for 'difficult parts like connectors. some even have special caps that need to be removed after placing. (pinheaders)

in the schematic symbol editor : how do you change the grid size ? like on a  transistor : the arrow is drawn off grid. When i try to manipulate that it always want to snap to the pin grid. how do i get a grid that is , let's say 1/10 th of the pin grid ? note that i do want a grid ! just one that is smaller than the pin grid so i can make nice symbols.

Arcs also have a weird behavior. normally you set center , then diameter , then begin and end angle. this is like click on one point, click another point then drag to create the curve. Not always easy...
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: Horizon EDA Version 1.0!
« Reply #120 on: June 23, 2021, 11:09:42 pm »
Quote
the problem with rubberbanding is that it vomits diagonal lines everywhere

That's been somewhat improved in Version 2.0: https://blog.horizon-eda.org/new/2021/05/31/whats-new-2.0.html#fewer-crooked-net-lines

Quote
doesn't work on diagonal lines.
Is the diagonal line between two pins? If that's the case its start and end points are determined with the pins. In that case, just drag the line to bend it.

Quote
that pair should be there when a blank project is created.

Good suggestion, just implemented it: https://github.com/horizon-eda/horizon/commit/7c54653cc70ea0e65991a819ceeb3b90fb68bccb

Quote
how do i get a grid that is , let's say 1/10 th of the pin grid

Hold down the fine grid modifier key (usually alt, can be changed in the preferences). Should only be required when drawing symbols though.

Quote
normally you set center , then diameter , then begin and end angle.

Seems reasonable, should land in a couple of days.
 

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #121 on: January 13, 2022, 11:03:20 pm »
It's been at while, but now we're at version 2.2: https://blog.horizon-eda.org/progress/2022/01/09/progress-2021-09-12.html

The banner feature this time is support for hierarchical schematics.
 
The following users thanked this post: Warhawk, jjoonathan, frmdstryr

Offline LukasTopic starter

  • Frequent Contributor
  • **
  • Posts: 412
  • Country: de
    • carrotIndustries.net
Re: Horizon EDA Version 1.0!
« Reply #122 on: May 07, 2022, 05:15:51 pm »
For those still reading along, I recently released version 2.3: https://blog.horizon-eda.org/progress/2022/05/04/progress-2022-01-04.html

Copper clearance checks are about 3 times faster than before and there's ODB++ export.
 
The following users thanked this post: Warhawk, jjoonathan, jbf

Offline Warhawk

  • Frequent Contributor
  • **
  • Posts: 819
  • Country: 00
    • Personal resume
Re: Horizon EDA Version 1.0!
« Reply #123 on: May 28, 2022, 07:34:52 pm »
For those still reading along, I recently released version 2.3: https://blog.horizon-eda.org/progress/2022/05/04/progress-2022-01-04.html

Copper clearance checks are about 3 times faster than before and there's ODB++ export.

We don't comment, but we read you Lukas. Thanks a lot for your efforts!
 
The following users thanked this post: nctnico


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf