
Horizon – a free and open source electronic PCB design package - guiambros
https://horizon-eda.org/
======
mhh__
The PCB EDA space really needs some competition. Kicad is really getting
there, it "just" needs some UI improvements (Automation of the
Schematic->Netlist->pcbnew flow would be nice) and also some of the big boy
features like signal integrity and heat etc.

Altium is probably the only clean PCB experience at the moment, and even that
sits at 10% CPU on my machine with an empty schematic and no PCB open. The
more esoteric tools like Mentor and Cadence's tools (and presumably Keysight's
offerings although I can't get a student license through my university * ) are
powerful but quite difficult to use working alone in the sense that schematic
capture is quite slow because you need to (if I'm not doing something wrong)
source your own library or make your own - not really competing with Kicad as
such.

* The student license options these companies have are absolutely insane. You'd think they don't want people to learn to use their software. Altium's site doesn't work with non-american email addresses, Mentor doesn't include any RF/Thermal/Mixed-Signal simulation addons i.e. the only reason to learn to use it over kicad, Cadence took about 2 weeks to respond and ended up publishing a Photo of my student license with my name on their website if you know where to look (Indexed by number)

~~~
hokumguru
As an absolute beginner learning how to design PCBs and simple circuits for
hobby projects - I have to say while KiCAD is getting there, it really still
has a learning-curve of a sheer cliff. The interface and workflow seem
arbitrary and unnecessary complex for what should be a relatively
straightforward process. I realize this tool is far more powerful than I'll
ever need but it really does feel like I'm in way over my head most times.
While it "Just" needs some UI improvements, those are non trivial for me.

Electrical engineers are willing to put up with so much more it seems.

~~~
theon144
>Electrical engineers are willing to put up with so much more it seems.

In general, IMHO. EAGLE, a golden-standard proprietary EDA tool, while still
being quite a bit ahead of KiCad on the UX front, features no fewer pitfalls
and completely unintuitive controls.

~~~
rvense
YMMV. I started learning on Eagle and switched to Kicad. It's correct that
library handling and pcbnew/eeschema interaction is a little weird, but just
for laying out things I always found Eagle's user interface to be obtuse and
idiosyncratic, whereas Kicad was quite natural in comparison.

~~~
CamperBob2
The elephant in the room is back annotation. No one who has used EAGLE
professionally will (or at least _should_ ) ever be happy with a package that
doesn't keep the PCB and schematic synchronized automatically without user
assistance or interaction.

I've heard the KiCAD people are working towards this goal. If they pull it
off, it'll be a game-changer. I'm definitely rooting for them.

------
mNovak
Would love to see more features supporting RF. Obviously the dream would be a
2D or 2.1D mesh/simulate built in, but would settle for less.

An easy starting point is better import/export of layouts. Designing an
antenna in my RF-specific CAD suite is great, but when I actually have to
build the thing, all I get is DXFs. Converting DXF to gerbers is a mess in
KiCAD. Same goes if I want to reverse the pipe and simulate my layout.

Staying in the OSS realm, QUCS (open source ADS equivalent) has RF circuit
simulation, just needs some help implementing auto-layout. This would make it
trivial to e.g. optimize a simple transmission line circuit, and have it
fabbed. That'd be huge for opening up simple microwave circuits to the
DIY/"hacker" community.

~~~
amelius
Ok but I think this really should be a separate application. Let's stick with
the Unix philosophy and have many tools that do one task well.

~~~
dkarp
Absolutely! As long as those tools can communicate with each other à la unix
pipes

~~~
willis936
Why limit with OS specific tools? Why not just communicate via markup files?

~~~
dkarp
Who said anything about limiting to OS specific tools? I just referred to unix
pipes as that is why the unix philosophy works. I wasn't suggesting unix pipes
are used for this, there just needs to be a way for these tools to communicate
if they're split.

------
hthtegr
As much as I do like KiCAD, and use it professionally, the UX at times is
literally a comical design-by-committee dumpster fire.

I gave this a spin, and it's so refreshingly the opposite of that.

My main barrier to using it for my next project is this - am I going to get
100 hours into a project then hit a brick wall and have to port back over to
KiCAD. If I had some confidence around this I think it'd give it a shot.

A gallery on the website of projects completed with it would probably do the
trick.

Seriously pleased this project is a thing. In 2020 there isn't really an
excuse to be using software with such a poor UI/UX as KiCAD

~~~
hthtegr
Sorry replying to my own comment here, but this needs to be said. THANK YOU
KiCAD developers. Yes it has issues but I am very grateful, comments above
aside.

~~~
StavrosK
I'd like to pile on here and say that, for all its issues, KiCAD is an
extremely valuable and important tool in the EDA space. Hobbyist PCB making at
this scale simply would not be possible without it.

That said, I am very happy to see new entrants, like Horizon. I watched a
presentation by the author in the 2018 FOSDEM and it looked like a great idea
even back then, I'm going to try it for my next project to see how it has
progressed.

Wayne Stambaugh, the KiCAD project lead, was in that presentation, and they're
very much aware of the problems KiCAD has. They're working in that direction,
as KiCAD 5 no longer requires you to export/import the netlist, I believe (I'm
not sure because I reflexively always do it anyway).

One of the first questions they had towards the Horizon developer was "why
make a new tool instead of contributing to KiCAD?", and the answer, IIRC, was
"It was easier to make my own", which sounds reasonable given the amount of
innovation that went into Horizon and the constraints a project as widespread
as KiCAD would have, regarding backwards compatibility etc.

------
karotte
Author here, ask me anything.

~~~
luckydata
I installed the software in a Windows 10 VM to try it out and it fails pretty
early with a message that says:

Glib::Error: No GL implementation is available.

Couldn't find much to help me out figure out how to fix that issue, I assume
it's some missing dependency but... where do I go from here?

~~~
karotte
Gtk's and horizon's OpenGL requirements (3.3 core profile + extensions) likely
aren't met by whatever graphics adapter your VM implementation provides.

~~~
userbinator
That seems a little excessive.

~~~
neetdeth
It is, but I also understand where the author is coming from. OpenGL 3.2/3.3
with the introduction of the Core Profile is where I remember the OpenGL API
getting seriously more ergonomic - no screwing around with GLEW to load
extensions for basic functionality, etc.

Similarly, gtkmm is so much cleaner than Qt as a modern C++ library with none
of the preprocessor / codegen quirks. Unfortunately it limits the platform
reach, because GTK isn't really polished anywhere except Linux.

I raise a toast to the obsession with clean code and clean design. Sometimes
"works on my machine" is the counter to "worse is better." At the same time,
it's pretty inconvenient for me to use the software. Oh well.

------
lukego
Tangent: I'm about to start learning EDA and what I really want is a data
format for my designs. Something that I can write my own code to generate and
manipulate as well as using standard GUI tools.

Is there any "data first" EDA package? Something more "docbook" and less
"Microsoft Word"?

~~~
rta5
At KiCon 2019 there was a presentation on SKiDL which allows you to describe
circuits in Python. You can then output a netlist for use in KiCAD's PCB tool
(or potentially other EDA tools). I have not tried to use it personally.

[https://www.youtube.com/watch?v=WErQYI2A36M](https://www.youtube.com/watch?v=WErQYI2A36M)

[https://github.com/xesscorp/skidl](https://github.com/xesscorp/skidl)

------
tndl
As someone who's pretty naive about EDA software, how does this compare to
KiCad or Eagle?

~~~
rspicer
Same question -- I've been using Kicad on personal and light-duty professional
projects for about 5 years (yeah, Altium is the real deal, but when you're
making a small run of prototypes for a university lab, sometimes you use the
tools you have). It definitely has some rough edges, but it's also got a very
established ecosystem, so I feel like Horizon will have to be a massive
improvement to compete.

~~~
amaterasu
I've been using Kicad for the same workloads as you, and Altium + Cadence for
heavier ones over the years, and I must say they hit the nail on the head here
with their comments about KiCad: [https://horizon-
eda.readthedocs.io/en/latest/why-another-eda...](https://horizon-
eda.readthedocs.io/en/latest/why-another-eda-package.html)

I'll have to find a simple project to test this out on though, because as you
say, It needs to be a huge improvement on KiCad to warrant a switch.

~~~
rspicer
Thank you for linking to this. That's a pretty compelling story he's telling,
I'll have to give it a go if I can find a low-pressure project to experiment
on it with!

------
tadfisher
For another open-source EDA effort, see also:
[https://librepcb.org/](https://librepcb.org/)

~~~
dang
Discussed earlier today:
[https://news.ycombinator.com/item?id=23059615](https://news.ycombinator.com/item?id=23059615)

------
nmeofthestate
Having tried Eagle and KiCad I am enthusiastic about any new free PCB design
package, as it offers up the hope of a usable PCB design package. Eagle and
KiCad are both UI disaster areas that make GIMP look usable.

~~~
spongeb00b
Agreed. That's exactly why I've been using
[https://upverter.com](https://upverter.com) Sure it's not as feature rich,
but I found the interface much easier to get a hang of that for my small TTL
and 6502 projects it's been great. I'd much rather put time contributing to
the component library than dealing with a bad UI.

------
haldora
Looks good. Installed it and will try it this week! Thanks for sharing.

I was about to start learning KiCad, but I think I'll explore this first.

------
zbrozek
I've been using Altium for years professionally and would love to see a FOSS
project unseat it. My own efforts to advocate staffing a few FTE to work on
KiCad didn't get very far.

There are some things about it which drive me nuts and which could easily be
done better in an open tool:

\- The UI is extremely slow. Clicking on a component often causes the entire
app to pause for 1-10 seconds while it loads all of the part parameters and
redraws panels.

\- It doesn't handle large libraries gracefully. We have something around
30000 parts and the library compiler crashes more often than it succeeds. The
Altium sales folks have attempted to get us to switch to vaults but can't
explain to us what the data store is, what the concurrency model is, why it's
not further lock-in, and why it should be more performant.

\- Better geometry importers and exporters. Getting fancy RF geometries in and
out is a huge pain. For one thing, Altium's DXF parser renders at a fixed
resolution. So if you have some very small feature it will often get turned
into a line or a dot. And even if not, it'll be coarse.

\- Never do anything in the UI thread that isn't strictly responding to user
input.

There are some things it's mediocre and it would be somewhat difficult to
implement better in an open tool:

\- Really good understanding of mechanical mates. Basically Solidworks-grade
constraints for putting things together.

\- Tight interconnectedness between schematic and layout rules, and a really
powerful and expressive language for writing rules. Altium's rules language is
simultaneously constraining and often lacks coverage for obvious cases. As an
example, there's no way to do same-net gap analysis. You can make
unmanufacturable spaces between two traces of the same net all day long and
the design rule checker would never care.

Some stuff Altium pretends to do but doesn't, and it would be fiendishly
difficult to do a good job in a FOSS tool:

\- Physics modeling. I want to know how much coupling I'll have between nets.
I want to see discontinuities in transmission lines. I want to know what will
radiate and absorb and how. Basically I want to be able to have my CAD tool
also be Ansys HFSS with varying degrees of fidelity.

\- Real schematic hierarchy. The schematic compiler is chock full of bugs that
it's dangerous to rely on hierarchy and also dangerous not to. I want to draw
schematics with the same type of composition and repetition that I use to
write software.

Then there's stuff that Altium doesn't even pretend to do and someone totally
should write an EDA tool that does.

\- Useful diff of schematics and layouts. I want to be better able to tell
where I might have made an unintended change.

\- Real time collaboration. Google Sheets but schematics and layouts. I want
to be able to drop in on my layout artists' work and be able to point things
out or share in the burden.

Lately in my office there have been lots of new people coming from places that
use Cadence and they're slowly trying to get us to switch over. I haven't
figured out what about it is supposed to be superior.

------
chendragon
Any chance of macOS support?

~~~
karotte
It can be built on mac OS and starts but isn't really usable due to OpenGL
issues: [https://github.com/horizon-
eda/horizon/pull/290#issuecomment...](https://github.com/horizon-
eda/horizon/pull/290#issuecomment-583775371)

------
amelius
Title should contain "written in C++" (as this also happens all the time with
Rust).

------
unnouinceput
Downloaded, installed, got repositories, created a test project. Finally open
it, new schematic, selected a resistor to put on schema. Damn thing too big,
tried to zoom out, failed. Then tried to move it, failed as well. Unintuitive,
not in the mood to learn its quirks so I just uninstall it.

~~~
atoav
Scroll wheel and middle mouse button, as commonly used in most software. Home
button reframes the view.

~~~
unnouinceput
In my commonly used software I click on damn things, little boxes appear on
corners and I can just drag them in/out to decrease/increase the size. Or if
3D software I have 3 more lines to rotate/roll for each axis. That's my
commonly used software.

~~~
mdszy
EDA is a type of CAD software, there's a bit more to it than "baby's first
schematic editor".

Things are going to be different and if that's what's making you quit the
software I have to imagine you wouldn't even be using it anyway and you just
thought it looked cool despite not being an actual EDA user.

~~~
unnouinceput
I would not call CorelDraw, AutoCAD, OrCAD "baby". Those are the "babies" that
implement what I said above. This one here can learn a thing or 2

~~~
atoav
Onboarding users more easily was the idea. I think having icons with tooltips
that include shortcuts is of similar importance and something like a “First
steps“ Project where it just tells you about navigation and the spacebar menu.

I myself would probably not assume that because there is no explicit button it
cannot be done ( I'd rather try the usual thing like spacebar drag, middle
mousebutton, etc).

However I understand that this might depend on your background and your
willingness to learn the damn thing, which is why lowering the entry bar is
worth it imo.

