← Back to team overview

kicad-developers team mailing list archive

Re: Bug 1754130

 

While this is tangential to the thurst of this conversation, a
comprehensive constraint system is incredibly important for many projects
and I'm very happy to share and contribute on this topic if it can be of
value. So, here we go...

Netclass to netclass clearance would be a distance that all nets in one
class should be kept from all nets in another class.

For example, let's say I have an offline power supply delivering 24V
output. I may create these net classes:
Line: AC line
Neut: AC neutral
Pri_Gnd: Reference for primary circuits after AC rectification
Pri_High: Rectified primary voltage
Sec_Gnd: Reference for all secondary circuits
Sec_24V: Secondary voltages more than 15V away from Sec_Gnd

This might be a bit contrived and leaves out a lot of details, but I think
it will shows the concept. Also, it would be common to use a flyback power
supply in this example but we will ignore any fly back spikes that result
in higher-than-nominal voltages that complicates things.

We can know the distances required based on the design target of the
product. IPC-2221 and UL 60065 are two documents which specify creepage
distance based on voltage potential and are common points of reference when
setting up constraints.

So... there are a few ways to break down the distances required.

By domain (primary domain and secondary domain):
- Line, Neut, and all Pri_* classes must be kept at least 5mm from any
Sec_* netclasses for creepage.
- Sec_Gnd is a special case that requires less clearance from any Pri_* or
AC mains voltage net.

By netclass within domain:
- I will need to keep Line and Neut some specified distance from each other.
- Pri_Gnd and Pri_High must also be some specific distance from each other
depending on the AC input voltage range my product will accept.
- Sec_Gnd and Sec_24V will need to be some small distance away from each
other.

This is probably much easier to explain graphically for the uninitiated,
but unfortunately I don't have anything handy. I can make something (and so
can many others) or dig around online to see if there's something nice and
descriptive if that would be helpful.

On Mon, Jan 14, 2019 at 9:04 AM Wayne Stambaugh <stambaughw@xxxxxxxxx>
wrote:

> Hey Mark,
>
> Will do.  This will give us a chance to better understand how to even
> map this over to KiCad.  I'm still no sure I even understand what is
> meant by netclass to netclass clearance.
>
> Cheers,
>
> Wayne
>
> On 1/14/2019 11:42 AM, mdoesbur@xxxxxxxxx wrote:
> > Hello Wayne,
> >
> > Please consider it on hold for now. Once kicad supports netclass to
> > netclass clearances I will have another look. The dimensions are not
> > copied yet, since I stopped working on it once I found out that all
> > the unnamed nets lost their netclass after the first update from the
> > schematic. This may be easy to fix or not, but at that point I decided
> > to simply forget it.
> >
> > regards,
> >
> > Mark
> >
> > Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
> >
> >       Hey Mark,
> >
> >       On 1/11/2019 5:11 AM, mdoesbur@xxxxxxxxx wrote:
> >       > Here's a patch to import the netclasses from eagle.
> >
> >       There are a few minor coding policy issues.  We now have clang
> >       formatting available when you perform a git commit if you would
> prefer
> >       not to have to remember KiCad's formatting.  You just have to
> enable it
> >       in your git repo if that is your preference.
> >
> >       It looks like there is some left over debugging code (using
> std::cerr)
> >       that needs to be removed.  If you want leave debugging support in
> your
> >       code, please use wxLogTrace[1].
> >
> >       I looks like you are translating Eagle units directly to kicad's
> pcb
> >       units.  Is this valid?  I don't know what internal units Eagle
> uses for
> >       boards but KiCad uses 1nm.  If Eagle doesn't use 1nm, then your
> unit
> >       conversions are wrong.
> >
> >       >
> >       > As already mentioned, all nets without a label are in the default
> >       > netclass. The clearances are ignored because I have no idea what
> clearance
> >       > to use. The trackwidths are ignored, I've never used that and
> saw no
> >       > reason to fix this since the patch isn't that usefull anyway.
> >
> >       Does Eagle specify a default net clearance?  If so, we should be
> using
> >       that instead of the KiCad default net clearance for the nets not
> >       assigned to a netclass.
> >
> >       Would our resident Eagle file format expert please take a look at
> this
> >       patch to see if it makes sense?  I'm not terribly familiar with the
> >       Eagle file format.
> >
> >       Cheers,
> >
> >       Wayne
> >
> >       [1]:
> >
> https://docs.wxwidgets.org/3.0/group__group__funcmacro__log.html#gae28a46b220921cd87a6f75f0842294c5
> >
> >       >
> >       > regards,
> >       >
> >       > Mark.
> >       >
> >       > Seth Hillbrand <seth@xxxxxxxxxxxxx> wrote:
> >       >
> >       >       <div dir='auto'>Hi Mark-<div dir="auto"><br></div><div
> dir="auto">That would be great, thanks!</div><div dir="auto"><br></div><div
> dir="auto">-Seth</div></div>
> >       >
> >       >
> >       > _______________________________________________
> >       > Mailing list: https://launchpad.net/~kicad-developers
> >       > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> >       > Unsubscribe : https://launchpad.net/~kicad-developers
> >       > More help   : https://help.launchpad.net/ListHelp
> >       >
> >
> >       _______________________________________________
> >       Mailing list: https://launchpad.net/~kicad-developers
> >       Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> >       Unsubscribe : https://launchpad.net/~kicad-developers
> >       More help   : https://help.launchpad.net/ListHelp
> >
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>

References