Making a Split Power Plane

After a lot of head scratching, I’ve finally created my split power plane, with the +5V and +3V3 nets. Here’s what I did:

I made the power plane as TWO KiCAD power layers - because I couldn’t figure out how to give separate copper zones separate colours - almost a necessity when trying to visualise the split. I actually had to tell KiCAD it is a 6-layer board, since it doesn’t support an odd number of layers (this makes sense for production, but not for design where separate KiCAD layers are merged into a single “real” layer.

I was then able to trace out the two zones on each logical layer, each in it’s different colour. This makes for easy editing. The feature I missed the most was the ability to highlight more than one net at once, specifically the two power nets. If this exists, I couldn’t find it.

Stepping back, moreover I missed the ability to make the power plane in negative. I could have made this layer in just an hour instead of 5 or 6 hours, since it’s just drawing a fat line. Is there any reason KiCAD doesn’t offer this ability? Or does it in fact offer it, and I’ve yet to discover it?

One feature I discovered was the contrast mode, which makes manual routing much easier.

I have a crazy shaped circuit board (see this post), and I dreaded making the boundaries of the copper zones by hand. It appears you can’t import a DXF file for the zone outline, like you can a board outline. However, I found a tip from another user (sorry I lost the link to give him credit) that shows you just make your zone boundary outside the PCB edge, and the copper zone is automatically trimmed as desired. This saved a bunch of time.

In the end, when I’m making Gerbers, does KiCAD have the ability to merge two logical layers into one? Or will have to rely on Gerber file utilities or my PCB shop to do that?

-Chris

2 Likes

The only way that I know is not entirely satisfying:

  1. Add a zone outline covering most of the board (GND)
  2. Then add a thin zone that looks like a line, connected to < no net >. It will act as your negative.
  3. Then Refill All Zones with the “B” shortcut
  4. Finally, remove the zone created in 2. This leaves the negative that you want in the zone created in 1.

The problem is that you can’t update the zones or run the DRC at this point, because it would fill the hole left by the removal of zone 2.

I don’t think that KiCad has this feature.
In the past, I have merged the .gbr as you suggest.
Another solution is to manually edit the .kicad_pcb file. You can use Search and Replace to replace all instances of one layer by other, effectively merging the two.

2 Likes

Just to get this right - you both go through all these troubles to have different colors while routing the different power planes?

I can’t speak for @thestumbler, but I used two separate layers because I created 40 zones and needed to be able to remove them at a later time without selecting them one by one. If KiCad had a “group items” feature, I wouln’t have needed to move them to a temporary layer.

1 Like

Well, yes I did. I can’t imagine trying it with all one colour (my split plane polygons have a LOT of vertices, and 3.3 and 5 are almost evenly dispersed throughout the board). It wasn’t really “all that trouble”, I probably spent more time searching around trying to figure out how to draw split power planes in KiCAD, finally concluding there was no support for the “easy” way of making them in negative. Once I realised that I had to do them in positive, and saw there was no provision to give the zones different colours, this approach was very simple and doesn’t really involve extra work at all. It will require a little extra work to make Gerbers, but that’s minor.

-Chris

1 Like

Yes, I thought of “tricking” KiCAD in a similar manner. I’m not sure why you would need to make a zone as you describe. Just draw the dividing line on a random layer. The problem is how to merge the thermals, and a bigger issue for me, loss of DRC. Hence I took this approach.

-Chris

So, in general, how do people make split power planes in KiCAD? Isn’t this a fairly normal thing?

I may be missing something. Is this automatic? In that you initially make two pours, for example, and then it automatically fills in the whole PCB appropriately? Or, like I did, do you manually make each copper pour with the serpentine boundaries so as to catch all vias associated with each net? If automatic, then I just need to learn how to do that. If manual, then I maintain that drawing a split plane in negative is 10x easier.

-Chris

Negative split may be easier to draw, but it is not always easier to manage.
Any plane thermals now have to flip too, and you now cannot sneak any routes onto this layer.
Those limitations usually have designers avoiding negatives.

I just tried two cloned pour regions - ie same size, simply overlaid on the same layer, differing NET names.
Then I add a slice zig-zag keepout - when defining this initially, you could use a single thin line, to get the geometry right, then once that is defined & stable, add the parallel-line keepout.
Then Pour, and voila a split plane. Very quick.

To make this simpler, expanding to allowing a zero width trace could have uses ?
Such a trace would spawn pour clearance, but not plot, and not conduct.

This uses the feature of KiCad where it removes non connected copper, so both areas flood but neither actually doubles.

Functionally, works a treat, but this level of cleverness confuses DRC, which it seems does not check actual created copper, but gets confused by the overlapping outlines. (even tho no actual copper shorts result)

Maybe that can be fixed, so it checks actual created copper ?

Edit: This would need user care, in present form, as any user-oversight in missing a node, would join to the ‘wrong’ plane.
DRC that was actual copper based, would catch this case.

Edit2: I also experimented with very thin lines. That sort of works, but selection gets tricky, and Gerber still plots even at .0001 mm. At very low widths, the line vanishes in Default and OpenGL,shows in Cairo.
There could still be a use for 0 width trace, or a keepout polyline that has virtual width, to simplify & avoid parallel line editing.

1 Like

Drawing a “line” as a zone doesn’t really save any time, although as noted above one could use a line initially, then finally replace it with a zone.

I just did some tests using an actual line, and it almost works. I have each half of my split plane on separate layers for display color reasons. At first, each power zone (3.3 and 5) are set to the entire extent of the board, similar to the ground plane. You can then draw a dividing line on one of these layers, in copper (it will be temporary). Draw the dividing line all the way through the zone boundary edge. Then when you re-pour the zone, the portion fenced off by the copper line is removed.

My plan was to move this line to the next layer and repeat. Then finally move the line to a separate layer, which would not be used for production - just as a place holder for this dividing line.

The problem with my idea is that there seems to be no way to specify which half of the copper zone is to be filled. My quick test resulted in both zones being the same, rather than the complement of each other.

I’m going to give up on this for awhile, and just split the plane by adjusting the zone contours.

-Chris

1 Like

I found that automatically chose, based on unused copper removal.
ie you need connected nets active in only ‘one half’ of each plane for that test.
However, the fishhooks in this are the DRC does not use the actual copper, but seems to include the pour/zone outlines, and of course, those 100% overlap so it bleats.

1 Like

Another follow-up on this topic. After constructing my split power planes on separate layers for color reasons, it turned out to be trivial to “merge” them. I just edited one of the pours, and changed it’s layer assignment. If I later need to separate them again, just do the reverse. It means I’m keeping an extra layer in the design files that isn’t really used, but that doesn’t appear to be causing any problems.

1 Like

So is it a conclusion that I can’t split a power plane into multiple zones. I am new to Kicad and I was trying to split my power plane into 3.3v and 5v zone but i can only fill 1 zone but not both.

You have two power planes. Each has its own Net. If there is any overlap, one must be given a higher Priority Level

1 Like

I tried this method, (that is basically what i have done, drew 2 zones with gap in between and click on the B key to fill the zones) but only 1 zone is filled.

A zone must touch a pad of the exact same net, or a trace of the exact same net, before it will fill.

Dale

2 Likes

Via or trace with same netname doesn’t change the unfillable zone bug I have here.

I have the exact same bug. I need both 3.3V (net name “VDD”) and 5V (net name “5VDD”) filled zone on the In2.Cu layer, drawn as 2 simple non-overlapping rectangles. I’ve just realize the bug has nothing to do with net names, i just can’t fill 2 zones on the In2.Cu layer (even with same net) and this may be linked to many other weird bugs I had with my enormous schematic (thousands of parts) since I multiplied the number of net names to a ludicrously enormous number (kind of stuff that gets stack overflows). I had to get rid of hundreds and hundreds of net names to get thing going ‘well’ again.

I’ll try getting rid of more extraneous net names. I thought many big traces could have done the work but they simply don’t behave like fill zones when dealing with vias’ and pads’ holes.

Please do not re-activate 3-year old threads.

When discussing possible bugs always add the full version info (from the about box).
“Thousands of parts” and “Enormous Schematics” should not be a problem for KiCad, but it may bog your PC down especially if it’s older…

On this user I encounterd a question of a user which wanted a 2.5meter long PCB (Is supported by KiCad) and on a video of one of Waynde Stamaughs video’s there was a user who actually used KiCad with a PCB of 24 copper layers, and was asking if the maximum of 32 could be expanded…

What is a: “I have the exact same bug”. I do not have much interest in reading a whole thread and then trying to compare it to your description.

Also sentences like:

adds nothing to your description, and only muddies the error description.

Please edit / split of / start new thread, and state the problem you encountered in a concise way. As a new user you unfortunately can not upload an example project or post screenshots yet.

You need to set different priority levels if you have overlapping zones. And no you can’t just make 2 fully overlapping rectangles and expect kicad to somehow know where you want which zone. One of the zones must be drawn to define the area where you want this zone (this is the one with the high priority) and the other can then be allowed to fill the rest (lower priority).