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

0 Members and 1 Guest are viewing this topic.

Offline Lukas

  • Frequent Contributor
  • **
  • Posts: 378
  • 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

  • Contributor
  • Posts: 5
  • 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 Lukas

  • Frequent Contributor
  • **
  • Posts: 378
  • 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: 528
  • 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

  • Contributor
  • Posts: 5
  • 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 Lukas

  • Frequent Contributor
  • **
  • Posts: 378
  • 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: 29
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: 528
  • 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

  • Newbie
  • Posts: 2
  • 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: 662
  • 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 Lukas

  • Frequent Contributor
  • **
  • Posts: 378
  • 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: 2
  • 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: 2
  • 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 Lukas

  • Frequent Contributor
  • **
  • Posts: 378
  • 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)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf