horizon-eda / horizon

Horizon is a free EDA package
https://horizon-eda.org/
GNU General Public License v3.0
1.1k stars 81 forks source link

[Proposal] PCB Modules Blueprints (Factorio Style) #120

Open greenscreenflicker opened 6 years ago

greenscreenflicker commented 6 years ago

For the automation of layout I'd propose a new component: Modules. Let's say you have LDO: It always requires an input capacitor and output cacitor. It would be nice to automate that. You should create a module, lets say LDO, that combines that 3 components: Only the module then has to be wired.

The game factorio does a realy nice job in this. Could you think of implementing this for PCB design?

carrotIndustries commented 6 years ago

For now' that's out of scope. In the far future, hierarchical designs may provide something similar.

jazari-akuna commented 4 years ago

I am working at a company designing their product's PCBs, spoken with electronics developers and they really like the idea, I am not the only one apparently. I have been searching this feature for ages, in particular modules that propagates from schematics to board. You often have the same module with the same PCB layout across multiple projects, re-routing them is quite a loss of time. This feature would be innovative and very popular in my opinion. Having modules would be a joy in horizon.

Thanks a lot for your work, it is of a rare quality.

bob-u commented 4 years ago

I have not tried it, however this feature might address part of your needs:

https://horizon-eda.readthedocs.io/en/latest/copy-layout-placement.html

carrotIndustries commented 4 years ago

I have not tried it, however this feature might address part of your needs:

Unfortunately, this tool doesn't work across projects. However, if there's a real need for it, it could be extended to work across projects. The workflow could then look like this:

Perhaps it could also make sense to keep the existing copy placement/track tools as is and have one new "Copy placement & tracks" tool.

jazari-akuna commented 4 years ago

Perhaps it could also make sense to keep the existing copy placement/track tools as is and have one new "Copy placement & tracks" tool.

For a first version that could be great.

However standalone modules integrated within the horizon-pool would be a game-changer I think. No more need to carefully layout parts and study the application notes of DC-DC converters, just put a module on your board. With the ability to rearange the sub-components on the board after placement.

bob-u commented 4 years ago

I could use this function myself when designing controller boards with multiple drivers.

@raphaelcasimir Creating a project with just components and PCB traces you'd like to replicate would probably bring you very close to what you are looking for.

@carrotIndustries Could this function be scripted through python module to lessen number of steps?

Place all packages of the block on the new board (position doesn't matter)

It would be nice to be able to place group of components in one go, components selected by selecting symbols on the schematic.

Select all packages of the block in the source board, and invoke the "copy placement" tool

Again, selecting packages by selecting symbols on the schematic would be easier and less error prone, IMO.

Select tracks in the source board, invoke the "copy tracks"

Would names of the nets copy as well?

jazari-akuna commented 4 years ago

Creating a project with just components and PCB traces

That's what I am trying to avoid by suggested an integration within the pool. One major difference between horizon and KiCad is the fact that you are encouraged to contribute to the pool and that your contributions are still validated before getting integrated.