Re: [Kicad-developers] Thermal spoke count

2019-07-08 Thread Andrew Lutsenko
Maybe there could be "slow" and "fast" mode for spoke (or in general zone)
calculation. Fast for routing, slow for last pass.

On Mon, Jul 8, 2019 at 10:58 AM Jeff Young  wrote:

> Keep in mind that the total width of all the spokes (assuming they’re all
> the same length) doesn’t control the current they’ll carry, only how hot
> they will get for a given current.  Most boards are designed with a huge
> margin of error here.
>
> It’s correct that would *could* do all the calculations automatically
> (both for heat-transfer during soldering and heat-generation during use),
> but it would be *glacially* slow.
>
> Cheers,
> Jeff.
>
> On 8 Jul 2019, at 18:04, Eeli Kaikkonen  wrote:
>
>
>
> ma 8. heinäk. 2019 klo 19.04 Evan Shultz (evan.shu...@gmail.com)
> kirjoitti:
>
>> Because of varying pad shapes, sometimes "+" spokes are best and other
>> times "x" may be preferred. So having a choice of those options, even
>> though both have the same number of thermal spokes, may be desirable. I
>> believe this is captured in the "initial angle" concept, but IMO having the
>> choice of "+", "x", "8 way", and "solid" is more obvious that picking an
>> initial angle. But perhaps I misunderstood.
>>
>
> What I have felt need for is automatically finding locations for spokes so
> that when a pad isn't fully surrounded by a zone it would still be
> connected with 4 (or as many as possible) spokes. Sometimes changing the
> direction between x and + would be enough, sometimes adding spokes from x
> to spokes of +. For example N(orth), NW, W, SW instead of just N and W.
> Because adding spokes is automatic anyways, exact positioning isn't
> important. There should be as much copper as possible (and preferably in
> many directions) while still having the thermal effect. Even the
> thicknesses of the individual spokes could be calculated automatically to
> meet the requirements. What counts is the total width of all the spokes
> together, or am I wrong?
>
> Eeli Kaikkonen
> ___
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>
>
> ___
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>
___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Thermal spoke count

2019-07-08 Thread Jeff Young
Keep in mind that the total width of all the spokes (assuming they’re all the 
same length) doesn’t control the current they’ll carry, only how hot they will 
get for a given current.  Most boards are designed with a huge margin of error 
here.

It’s correct that would could do all the calculations automatically (both for 
heat-transfer during soldering and heat-generation during use), but it would be 
glacially slow.

Cheers,
Jeff.

> On 8 Jul 2019, at 18:04, Eeli Kaikkonen  wrote:
> 
> 
> 
> ma 8. heinäk. 2019 klo 19.04 Evan Shultz (evan.shu...@gmail.com 
> ) kirjoitti:
> Because of varying pad shapes, sometimes "+" spokes are best and other times 
> "x" may be preferred. So having a choice of those options, even though both 
> have the same number of thermal spokes, may be desirable. I believe this is 
> captured in the "initial angle" concept, but IMO having the choice of "+", 
> "x", "8 way", and "solid" is more obvious that picking an initial angle. But 
> perhaps I misunderstood.
> 
> What I have felt need for is automatically finding locations for spokes so 
> that when a pad isn't fully surrounded by a zone it would still be connected 
> with 4 (or as many as possible) spokes. Sometimes changing the direction 
> between x and + would be enough, sometimes adding spokes from x to spokes of 
> +. For example N(orth), NW, W, SW instead of just N and W.  Because adding 
> spokes is automatic anyways, exact positioning isn't important. There should 
> be as much copper as possible (and preferably in many directions) while still 
> having the thermal effect. Even the thicknesses of the individual spokes 
> could be calculated automatically to meet the requirements. What counts is 
> the total width of all the spokes together, or am I wrong?
> 
> Eeli Kaikkonen
> ___
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Thermal spoke count

2019-07-08 Thread Eeli Kaikkonen
ma 8. heinäk. 2019 klo 19.04 Evan Shultz (evan.shu...@gmail.com) kirjoitti:

> Because of varying pad shapes, sometimes "+" spokes are best and other
> times "x" may be preferred. So having a choice of those options, even
> though both have the same number of thermal spokes, may be desirable. I
> believe this is captured in the "initial angle" concept, but IMO having the
> choice of "+", "x", "8 way", and "solid" is more obvious that picking an
> initial angle. But perhaps I misunderstood.
>

What I have felt need for is automatically finding locations for spokes so
that when a pad isn't fully surrounded by a zone it would still be
connected with 4 (or as many as possible) spokes. Sometimes changing the
direction between x and + would be enough, sometimes adding spokes from x
to spokes of +. For example N(orth), NW, W, SW instead of just N and W.
Because adding spokes is automatic anyways, exact positioning isn't
important. There should be as much copper as possible (and preferably in
many directions) while still having the thermal effect. Even the
thicknesses of the individual spokes could be calculated automatically to
meet the requirements. What counts is the total width of all the spokes
together, or am I wrong?

Eeli Kaikkonen
___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Thermal spoke count

2019-07-08 Thread Jeff Young
Hi Evan,

> On 8 Jul 2019, at 17:04, Evan Shultz  wrote:
> 
> Apologies in advance for what will probably be a long message...
> 
> Would 8-way spokes be possible to implement "quickly" (in the algorithmic 
> sense, not the time to implement sense)? (I don't know if the shortcut you've 
> (Jeff) devised works for a paired set of 4 thermal spokes.) 8-way thermals 
> can be quite useful where there is a tough balance between connection 
> "strength" for current but also a requirement for thermal relief during 
> soldering.

8 cannot be done “fast”, although both “+” and “x” can (we do that by rotating 
for the calculations and then rotating back).  

> 
> Because of varying pad shapes, sometimes "+" spokes are best and other times 
> "x" may be preferred. So having a choice of those options, even though both 
> have the same number of thermal spokes, may be desirable. I believe this is 
> captured in the "initial angle" concept, but IMO having the choice of "+", 
> "x", "8 way", and "solid" is more obvious that picking an initial angle. But 
> perhaps I misunderstood.

Right now we do “x” on circular pads and “+” on everything else.

> 
> What about if some spokes can't be connected because the pad is near a zone 
> edge? Would a "+" connection lop off the rightmost spoke, for example, 
> leaving the other three? Is there a way to set a minimum number of spokes? Or 
> to force the fourth spoke to move to another location around the pad so that 
> the specified number of spokes are always present?

Currently spokes never move, but they are lopped off if they don’t reach the 
zone.

> 
> Over the years I've made good use of a hierarchy of thermal spoke properties:
> - Board (default for new zones on the board)
> - Per-zone properties
> - Per-pad properties
> 
> As Seth said, SMD, THT, and vias all may need different connection types. The 
> "relief for PTHs only" option is usually OK, but having discrete options for 
> all pad types that can be connected to the zone does have some benefit at 
> times. Not often, as mentioned, so somewhat burying these options is probably 
> OK. I usually find these options powerful when I have one large zone touching 
> many parts; a patchwork of many zones might also work but is usually a bigger 
> hassle in the long run.
> 
> In addition, sometimes I want to manually control the zone connection so 
> having a per-pin option for "none", that creates a ratsnest until I manually 
> add a track for connection, is a valuable choice as well.
> 
> Each layer (or at least top, inner, and bottom) may benefit from a unique 
> connection type. For example, for large leads or parts that absorb heat (like 
> a THT power inductor) I can often use solid  zone connection on the bottom as 
> that layer will touch the solder wave. But on other layers, I need thermal 
> relief to allow for acceptable barrel fill.
> 
> Those three pad types above may also benefit from unique clearance settings 
> instead of only a single per-zone clearance. If I can set additional 
> clearance for a single pad, and better still if I can adjust that clearance 
> per-layer, I can often improve solderability.
> 
> That's a huge matrix of options but they are all valid and valuable in some 
> circumstances (whether the user knows how to drive the tool or not). I see no 
> other way than to make all of this possible in other to best balance 
> electrical and thermal/manufacturing desires. I know it can be beneficial. 
> Surely there's a reasonable cadence of implementation and release, should all 
> of this be eventually added to KiCad.

He he.  I had trouble parsing that last sentence; I kept reading “Cadence” as 
the company.

Cheers,
Jeff



> 
> On Mon, Jul 8, 2019 at 5:59 AM Seth Hillbrand  > wrote:
> On 2019-07-08 08:15, Jeff Young wrote:
> > To support it we’d need to add count (and probably initial angle) to
> > the zone properties dialog, the footprint’s local clearance and
> > spacing seciton and the pad’s local clearance and spacing section.  So
> > it would complicate the GUI (although the second and third of those
> > are at least on a seldom-used tab).
> 
> If we decide to implement this, I'd like to also have an optional 
> "suppress instances" list so that if for some reason the auto placement 
> of spokes on a custom shape didn't work, I could remove the unwanted 
> spokes.
> 
> But I think that these properties should not go in the zones, only in 
> the footprint and pads as it is sufficiently outre that it is unlikely 
> to find much use in the general setting.
> 
> The properties that may be useful in the zones settings would be spoke 
> defaults for SMD, through-hole and vias.  These might be addressable by 
> placing an ellipsis button after the Pad Connections drop down that 
> brings up an advanced dialog setting.
> 
> This is pure spitballing however.
> 
> -S
> 
> ___
> Mailing list: https://launchpad.net/~kicad-developer

Re: [Kicad-developers] Thermal spoke count

2019-07-08 Thread Evan Shultz
Apologies in advance for what will probably be a long message...

Would 8-way spokes be possible to implement "quickly" (in the algorithmic
sense, not the time to implement sense)? (I don't know if the shortcut
you've (Jeff) devised works for a paired set of 4 thermal spokes.) 8-way
thermals can be quite useful where there is a tough balance between
connection "strength" for current but also a requirement for thermal relief
during soldering.

Because of varying pad shapes, sometimes "+" spokes are best and other
times "x" may be preferred. So having a choice of those options, even
though both have the same number of thermal spokes, may be desirable. I
believe this is captured in the "initial angle" concept, but IMO having the
choice of "+", "x", "8 way", and "solid" is more obvious that picking an
initial angle. But perhaps I misunderstood.

What about if some spokes can't be connected because the pad is near a zone
edge? Would a "+" connection lop off the rightmost spoke, for example,
leaving the other three? Is there a way to set a minimum number of spokes?
Or to force the fourth spoke to move to another location around the pad so
that the specified number of spokes are always present?

Over the years I've made good use of a hierarchy of thermal spoke
properties:
- Board (default for new zones on the board)
- Per-zone properties
- Per-pad properties

As Seth said, SMD, THT, and vias all may need different connection types.
The "relief for PTHs only" option is usually OK, but having discrete
options for all pad types that can be connected to the zone does have some
benefit at times. Not often, as mentioned, so somewhat burying these
options is probably OK. I usually find these options powerful when I have
one large zone touching many parts; a patchwork of many zones might also
work but is usually a bigger hassle in the long run.

In addition, sometimes I want to manually control the zone connection so
having a per-pin option for "none", that creates a ratsnest until I
manually add a track for connection, is a valuable choice as well.

Each layer (or at least top, inner, and bottom) may benefit from a unique
connection type. For example, for large leads or parts that absorb heat
(like a THT power inductor) I can often use solid  zone connection on the
bottom as that layer will touch the solder wave. But on other layers, I
need thermal relief to allow for acceptable barrel fill.

Those three pad types above may also benefit from unique clearance settings
instead of only a single per-zone clearance. If I can set additional
clearance for a single pad, and better still if I can adjust that clearance
per-layer, I can often improve solderability.

That's a huge matrix of options but they are all valid and valuable in some
circumstances (whether the user knows how to drive the tool or not). I see
no other way than to make all of this possible in other to best balance
electrical and thermal/manufacturing desires. I know it can be beneficial.
Surely there's a reasonable cadence of implementation and release, should
all of this be eventually added to KiCad.

On Mon, Jul 8, 2019 at 5:59 AM Seth Hillbrand  wrote:

> On 2019-07-08 08:15, Jeff Young wrote:
> > To support it we’d need to add count (and probably initial angle) to
> > the zone properties dialog, the footprint’s local clearance and
> > spacing seciton and the pad’s local clearance and spacing section.  So
> > it would complicate the GUI (although the second and third of those
> > are at least on a seldom-used tab).
>
> If we decide to implement this, I'd like to also have an optional
> "suppress instances" list so that if for some reason the auto placement
> of spokes on a custom shape didn't work, I could remove the unwanted
> spokes.
>
> But I think that these properties should not go in the zones, only in
> the footprint and pads as it is sufficiently outre that it is unlikely
> to find much use in the general setting.
>
> The properties that may be useful in the zones settings would be spoke
> defaults for SMD, through-hole and vias.  These might be addressable by
> placing an ellipsis button after the Pad Connections drop down that
> brings up an advanced dialog setting.
>
> This is pure spitballing however.
>
> -S
>
> ___
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>
___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Kicad-developers] Thermal spoke count

2019-07-08 Thread Seth Hillbrand

On 2019-07-08 08:15, Jeff Young wrote:

To support it we’d need to add count (and probably initial angle) to
the zone properties dialog, the footprint’s local clearance and
spacing seciton and the pad’s local clearance and spacing section.  So
it would complicate the GUI (although the second and third of those
are at least on a seldom-used tab).


If we decide to implement this, I'd like to also have an optional 
"suppress instances" list so that if for some reason the auto placement 
of spokes on a custom shape didn't work, I could remove the unwanted 
spokes.


But I think that these properties should not go in the zones, only in 
the footprint and pads as it is sufficiently outre that it is unlikely 
to find much use in the general setting.


The properties that may be useful in the zones settings would be spoke 
defaults for SMD, through-hole and vias.  These might be addressable by 
placing an ellipsis button after the Pad Connections drop down that 
brings up an advanced dialog setting.


This is pure spitballing however.

-S

___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


[Kicad-developers] Thermal spoke count

2019-07-08 Thread Jeff Young
The new zone filling algorithm can support additional spoke counts, though 
they’ll be much slower than 4 (as we can’t cheat some of the math by relying on 
cartesian coordinates).

To support it we’d need to add count (and probably initial angle) to the zone 
properties dialog, the footprint’s local clearance and spacing seciton and the 
pad’s local clearance and spacing section.  So it would complicate the GUI 
(although the second and third of those are at least on a seldom-used tab).

So, is it useful enough to put in 6.0, or should we put it on the back burner?
___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp