Author Topic: Creating a new EDA package  (Read 8985 times)

0 Members and 1 Guest are viewing this topic.

Offline Zom-B

  • Regular Contributor
  • *
  • Posts: 50
  • Country: nl
Creating a new EDA package
« on: January 19, 2017, 10:32:09 pm »
For a while now I've been wondering if I'm not the only one who's very unhappy with the current state of free PCB tools (especially after the EAGLE disaster). Isn't there any group of people making a modern open source package that feels as natural as using Inkscape? Have they all tried and failed? Are there good programmers reading this and interested in forming just such a group?


« Last Edit: January 19, 2017, 10:33:54 pm by Zom-B »
 

Offline PCB.Wiz

  • Frequent Contributor
  • **
  • Posts: 382
  • Country: au
Re: Creating a new EDA package
« Reply #1 on: January 20, 2017, 02:21:10 am »
For a while now I've been wondering if I'm not the only one who's very unhappy with the current state of free PCB tools (especially after the EAGLE disaster).

Eagle seems to work ok on the software side, the license side is a different story.

Isn't there any group of people making a modern open source package that feels as natural as using Inkscape? Have they all tried and failed? Are there good programmers reading this and interested in forming just such a group?

Have you looked in depth at KiCAD ?
They could use more developers, and they have a solid base, including a nice Shove Router.

You could code a Eagle to KiCAD converter for example, that does not need an Eagle host ?



 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 81
Re: Creating a new EDA package
« Reply #2 on: January 20, 2017, 03:51:26 am »
For a while now I've been wondering if I'm not the only one who's very unhappy with the current state of free PCB tools (especially after the EAGLE disaster). Isn't there any group of people making a modern open source package that feels as natural as using Inkscape? Have they all tried and failed? Are there good programmers reading this and interested in forming just such a group?

The quality and amount of free PCB design tools grows greater in quantity and quality every year. In the year 2002, if you wanted to do PCB design and had no money, your choices were basically Cadsoft Eagle or Protel Autotrax. Now the list of free (as in beer) PCB design packages is quite large. Eagle doesn't even rate among them, the free version is so crippled.

Here is the list of free open source PCB design packages. I think it's a better use of developer resources to work on one of these than to start another from scratch.

  • FreePCB (unmaintained?)
  • Fritzing
  • gEDA
  • KiCAD
  • PCB Elegance
  • Suigyodo Minimal Board Editor
 

Offline Zom-B

  • Regular Contributor
  • *
  • Posts: 50
  • Country: nl
Re: Creating a new EDA package
« Reply #3 on: January 20, 2017, 04:20:34 pm »
I tried and ditched KiCad before. I think it was something about the usability of the parts library.

If I jumped on the KiCad bandwagon now, I don't think they'll ever accept my proposals for radical changes. For one, it would break the workflow and invite the gridge of the already huge user base of KiCad. If I were to join an existing OSS project, it should still be in infancy.
 

Offline dmills

  • Super Contributor
  • ***
  • Posts: 1715
Re: Creating a new EDA package
« Reply #4 on: January 20, 2017, 05:32:21 pm »
Nothing to stop you forking it.....

Regards, Dan.
 

Offline Zom-B

  • Regular Contributor
  • *
  • Posts: 50
  • Country: nl
Re: Creating a new EDA package
« Reply #5 on: January 20, 2017, 09:18:56 pm »
I tried KiCAD again to see what was up with it, and after 45 minutes I rage-uninstalled it. In what sane application can't you even resize a rectangle? Redraw it? How 'bout I redraw you! Never will I work with programmers who allow this kind of thing to exist.
« Last Edit: January 20, 2017, 09:23:56 pm by Zom-B »
 

Offline tycz

  • Regular Contributor
  • *
  • Posts: 81
Re: Creating a new EDA package
« Reply #6 on: January 20, 2017, 11:48:09 pm »
Zom-B,

Take a look at PCB Elegance perhaps? It's roughly equivalent to Kicad in terms of features. I am the only developer on the project, but willing to collaborate with others.
 

Offline Wilksey

  • Super Contributor
  • ***
  • Posts: 1171
Re: Creating a new EDA package
« Reply #7 on: January 21, 2017, 11:00:25 pm »
It's not a simple task to create such a tool, particularly for the layout part!
 

Offline free_electron

  • Super Contributor
  • ***
  • Posts: 7310
  • Country: us
    • SiliconValleyGarage
Re: Creating a new EDA package
« Reply #8 on: January 22, 2017, 02:47:35 am »
Dont make the mistake that a pcb design tool is just anther drawing package ...
This is the mistake geda and kicad already made and now are sort of trying to correct...

They do not listen to users and are missing features.

The goal of a pcb tool is not only to enable the user to do the layout work , but also to crosscheck the rules in real time , and perform all the tedious post processing post-layout ( silkscreen cleanup , soldermask and pastemask manipulations, assembly data generation ) and meshing with the 3d mechanical world.

I am not a programmer but .. i think that basic elements like a track or a pad should be objects , with properties and methods. That would open lots of possibilities ....
Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline donotdespisethesnake

  • Super Contributor
  • ***
  • Posts: 1020
  • Country: gb
  • Embedded stuff
Re: Creating a new EDA package
« Reply #9 on: January 22, 2017, 02:23:11 pm »
For a while now I've been wondering if I'm not the only one who's very unhappy with the current state of free PCB tools (especially after the EAGLE disaster). Isn't there any group of people making a modern open source package that feels as natural as using Inkscape? Have they all tried and failed? Are there good programmers reading this and interested in forming just such a group?

I've never used Inkscape, but certainly there is plenty of scope for a better UI, as well as some nifty features. I tried Eagle and KiCad, and both seemed to have a primitive interface from 1990, at least KiCad will never be bought out. In kiCad, you can't just do "New->Library". You have to create a component, then find the tiny button "save component to new library" which is not available on any menu. Then, when you create a new library, it doesn't automatically add it to the project.. you have go through a handful of other dialogs. And then PCB editor has a different method to the schematic editor. There is no reason for the poor and inconsistent UI, except that the leads devs don't want to change it because they are used to it.

It would be great to have real-time BOM calculation, linked to Octopart or whatever, and many other features... but I would settle for a drawing tool that can even rubber-band connecting wires.

The problem with starting afresh is the 80/20 rule, or more like 1/99 rule. Finding "good programmers" willing to devote months or years is actually rather difficult. Getting a basic UI working is something like 5%, the other 95% is implementing all the weird real-world use cases, support, creating parts library. It would be great to re-use part libraries from KiCad, but that is one part of the architecture that really sucks.

I think KiCad is somewhat like the early days of Linux. It basically does the job, but has a lot of rough edges, but has critical mass. Over many years, it will turn into a useful and polished product.  You could try creating something better, like OS/2, OpenVMS, ReactOS, MINIX, Haiku and many others tried to do, but without critical mass they become niche also-rans.
Bob
"All you said is just a bunch of opinions."
 

Online mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12090
  • Country: gb
    • Mike's Electric Stuff
Re: Creating a new EDA package
« Reply #10 on: January 22, 2017, 03:11:53 pm »
The EDA industry is riddled with legacy baggage, some of which dates back to the days when things had to be done in certain ways due to lack of memory, speed and graphics.

Where, for example, is the tool that lets you draw your PCB laout first and then automatically generate a (nice looking) schematic from it? For some types of work, that's a far more productive workflow.
Where is the GPU powered autoplacer/router that actually does a half-decent job with minimal handholding?
Where is the tool that can sensibly express all the constraints of pin-swappability to optimise layout ( and back-annotate to the software/HDL)?
 
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18596
  • Country: nl
    • NCT Developments
Re: Creating a new EDA package
« Reply #11 on: January 22, 2017, 04:25:03 pm »
To the OP: Maybe help the guys who have forked PCB into PCB-NRD but I'm not sure if that is such a good base to start either.

What I like most about Orcad Capture is the part database system:
What many low end CAD packages fail to understand that a symbol, footprint and a component are three entirely different things. In Orcad's CIS system the database has the components and for each component there is a symbol, value, footprint and data which deals with logisitics but is not relevent for the schematics and PCB creation process. Still Orcad Capture allows to generate bill of materials including any column from the database so you can create a list with all the relevant data with one click. Someone should add something similar to Kicad because (AFAIK) it isn't there yet.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Alex Eisenhut

  • Super Contributor
  • ***
  • Posts: 2148
  • Country: ca
  • If you can buy it for 4$ on eBay, why design it?*
Re: Creating a new EDA package
« Reply #12 on: January 22, 2017, 04:38:21 pm »
I've often become frustrated with the bizarre and shitty parts of Allegro and started writing my own spec for a better PCB tool.

But in the end, I ended up with Allegro with the frustrating limitations removed. In other words, it would take me years to program something that wouldn't achieve much more.

I can already work around the frustrating, stupid limits and UI nonsense in Allegro by thinking ahead, and keeping a journal of problems/fixes that I can refer to.

I work a lot in RF and I often wish for more mechanical "awareness" in PCB design, like for example how the metal enclosure is the RF ground and should count towards routing completion.

...or having a tool to help designing the complex rooms and channels for the cover.

The way Allegro handles shapes and holes in shapes is aggravating, tedious, and counter-productive. It handles the electrical aspects quite well, but the aspect of having to draw complex outlines and nooks and crannies is needlessly difficult.

I also pre-route all the parts in local footprints and modules... but Allegro gets quickly confused with vias and shapes imported from footprints and connections get lost, shapes get duplicated, etc...

This needs to improve, it's ridiculous. Why should a via that's in a footprint preferentially connect to the ground plane rather than the net of the pin in the footprint? Stupid!

Why do shapes in footprints not connect to nets and always have DRCs? Stupid!

Why are the shape editing tools spread all over the place? Why is editing voids different? Stupid!

Why isn't there a better way to edit the stackup and make simple, clear, readable stackup drawings?

Why is text handled in such a complex and bizarre way?

Why are lines sometimes like shapes, sometimes not?
*Except AC/DC adapters on eBay. Avoid them all!
 

Online mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 12090
  • Country: gb
    • Mike's Electric Stuff
Re: Creating a new EDA package
« Reply #13 on: January 22, 2017, 07:31:11 pm »

  • FreePCB (unmaintained?)
  • Fritzing
  • gEDA
  • KiCAD
  • PCB Elegance
  • Suigyodo Minimal Board Editor
And for more specialist requirements, PCBMode from Boldport
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline jancumps

  • Supporter
  • ****
  • Posts: 1230
  • Country: be
  • New Low
Re: Creating a new EDA package
« Reply #14 on: January 22, 2017, 07:45:34 pm »
Xesscorp has made kipart and kicost scripts.
Kipart generates symbols from excel sheets, kicost is a bom calculator.
 

Offline Lukas

  • Frequent Contributor
  • **
  • Posts: 363
  • Country: de
    • carrotIndustries.net
Re: Creating a new EDA package
« Reply #15 on: January 22, 2017, 08:27:11 pm »
I've been working on a from-scratch to-be opensource EDA package called "horizon" for the last few months. Expect it to appear on github within the next two weeks. Still need to clean things up and write some docs on how to get started. It's very far from finished and polished, some features are merely proof of concept or have no GUI yet, but the overall architecture is there.

Key features so far:
  • Netlist-aware schematic editor, i.e. net labels, etc. are derived from the netlist, not from the schematic,
  • Unified editor: Same editor for everything from schematic symbol to board, uses modern (shaders, no glBegin() and friends) OpenGL for fast and glitch-free rendering
  • uses JSON as on-disk format
  • Sane library system: Each item is stored in its own file, simplifying version control, uses SQLite for easy lookup
  • Implemented in modern C++ with Gtkmm for the user interface, builds and runs on linux and windows

I've started this project since I've been dissatisfied with the overall architecture of Kicad. The CERN people have made the PCB editor very good, but schematic entry and library management are still in a rather bad shape.

Let me give you some detail on what I mean by "sane library system". To me, having to organize symbols, packages and the like in libraries, always seemed kinda pointless and annoying. Horizon does away with them and puts everything into one global "pool". Contrary to other EDA packages, parts aren't defined by their symbols, instead it goes like this:

On the very bottom, there's the "Unit". It represents a single gate with all its pins. On the next level, there's the "Entity". An entity instantiates one or more units as gates. For example, the entity for a quad nand gate consists of four gates using the "nand" unit and one gate using the "power" unit. An entity can be  generic, e.g. "Quad nand gate" or specific to one particular part, i.e.  ATTiny85. For their representation in the schematic, each unit is accompanied by one or more symbols.

To link these with packages there are "Parts". A part is something you can actually order, so no "74HC00" for you, instead it could specify a SN74HC00D from TI. To make things easier, parts can inherit the pin-pad mapping from other parts. To the netlist, the part isn't important, so you can easily change the part as long as it uses the same entity.

I hope that wasn't too confusing - stay tuned for the release!
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18596
  • Country: nl
    • NCT Developments
Re: Creating a new EDA package
« Reply #16 on: January 23, 2017, 12:01:58 am »
But how are things like a footprint, manufacturer order number, Farnell part number, etc linked to a part? Your system sounds much like Orcad Capture works where you can have symbols which consist of one entity or multiple entities (sub symbols if you like). If you have the Orcad Capture CIS extension then you can have the linkage between symbols and footprints in a database. Using Sqlite isn't bad but be aware that it's performance may need tweaking when dealing with larger databases.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Lukas

  • Frequent Contributor
  • **
  • Posts: 363
  • Country: de
    • carrotIndustries.net
Re: Creating a new EDA package
« Reply #17 on: January 23, 2017, 03:28:54 pm »
But how are things like a footprint, manufacturer order number, Farnell part number, etc linked to a part? Your system sounds much like Orcad Capture works where you can have symbols which consist of one entity or multiple entities (sub symbols if you like). If you have the Orcad Capture CIS extension then you can have the linkage between symbols and footprints in a database. Using Sqlite isn't bad but be aware that it's performance may need tweaking when dealing with larger databases.
References to packages are part of the part definition. I don't consider distributor SKUs part of my database, that's what octopart is for. As said, the current design is what I've come up with in the last months, if reality demands adjustments, they should be pretty easy to integrate.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 18596
  • Country: nl
    • NCT Developments
Re: Creating a new EDA package
« Reply #18 on: January 23, 2017, 04:45:45 pm »
IMHO you really should read into what Orcad Capture CIS does before continuing with your development work because otherwise you are likely to re-invent the wheel along the long route.
Many years ago we got a new intern at work. We had some debate about what the intern should work on. My idea was to have the intern work on (much needed) product development. However my boss insisted on creating our own project management system because everything you can buy is crap. He drew some specifications and the intern got to work. When the system became operational it turned out it had several design flaws which needed to be corrected. Not bugs but design choices which just didn't work in reality. Long story short: we should have bought a readily available package because that would have been cheaper AND it worked just like the one that was just created.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline Lukas

  • Frequent Contributor
  • **
  • Posts: 363
  • Country: de
    • carrotIndustries.net
Re: Creating a new EDA package
« Reply #19 on: January 29, 2017, 07:38:29 pm »
And it's out there: https://github.com/carrotIndustries/horizon See for yourself!
 

Offline Zom-B

  • Regular Contributor
  • *
  • Posts: 50
  • Country: nl
Re: Creating a new EDA package
« Reply #20 on: February 02, 2017, 09:04:49 pm »
On the very bottom, there's the "Unit". It represents a single gate with all its pins. On the next level, there's the "Entity". An entity instantiates one or more units as gates. For example, the entity for a quad nand gate consists of four gates using the "nand" unit and one gate using the "power" unit. An entity can be  generic, e.g. "Quad nand gate" or specific to one particular part, i.e.  ATTiny85. For their representation in the schematic, each unit is accompanied by one or more symbols.

To link these with packages there are "Parts". A part is something you can actually order, so no "74HC00" for you, instead it could specify a SN74HC00D from TI. To make things easier, parts can inherit the pin-pad mapping from other parts. To the netlist, the part isn't important, so you can easily change the part as long as it uses the same entity.
This corresponds to 95% of my vision on how libraries work! What I also envision is a table where users can enter how many of a part they have in stock or order, and filter out parts that aren't in stock or orderable. They can flag parts that they prefer to order over others and filter that as well (i.e. keep a list of parts that you often order or have experience with). It will also look up (via REST etc) prices on different suppliers online for a complete BOM pricetag. Footprints will also have a stretch parameter, e.g. for TH resistors. (I've never seen an EDA package supporting that.)

In fact, when I work on a system, I start with the library (core) and build Netlist, Schematic and PCB around that.
« Last Edit: February 02, 2017, 09:07:32 pm by Zom-B »
 

Online ebastler

  • Super Contributor
  • ***
  • Posts: 3336
  • Country: de
Re: Creating a new EDA package
« Reply #21 on: February 04, 2017, 08:18:12 pm »
[...] Isn't there any group of people making a modern open source package that feels as natural as using Inkscape? Have they all tried and failed? Are there good programmers reading this and interested in forming just such a group?

Interested in forming a group to try and fail? 
No thanks...  :P

Seriously though -- you might be underestimating the effort.
 

Offline T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 14570
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Creating a new EDA package
« Reply #22 on: February 04, 2017, 08:26:22 pm »
I work a lot in RF and I often wish for more mechanical "awareness" in PCB design, like for example how the metal enclosure is the RF ground and should count towards routing completion.

For that particular case -- use a jumper?  Just cut it from the BOM on export.

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline MarkS

  • Frequent Contributor
  • **
  • Posts: 530
  • Country: us
Re: Creating a new EDA package
« Reply #23 on: February 19, 2017, 06:50:07 am »
All due respect, if you want me to take this project seriously, have real Windows support. I shouldn't have to screw around with git and a console to run the application. I'm with you on the issues you've mentioned with KiCAD, but I can download KiCAD and install and get right to work. Get to that point and I'll check out your program.
 

Offline Lukas

  • Frequent Contributor
  • **
  • Posts: 363
  • Country: de
    • carrotIndustries.net
Re: Creating a new EDA package
« Reply #24 on: February 19, 2017, 11:45:16 am »
All due respect, if you want me to take this project seriously, have real Windows support. I shouldn't have to screw around with git and a console to run the application. I'm with you on the issues you've mentioned with KiCAD, but I can download KiCAD and install and get right to work. Get to that point and I'll check out your program.
The console part may eventually go away when there's a "pool manager", but that may take some time... But git is here to stay since the pool is collaborative. When you add a new part/entity to the pool, you're strongly encouraged to contribute it back to the pool so that others can make use of that part. And no, I won't roll my own crappy git gui, others did so much better.

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf