Layers, layers, wrong layers

I give up. I really done it this time. Here I thought my PCB was coming along well, and now it turns out I’m a newb.

I laid out everything as if the front of the board was facing me, and routed each component. The last step was to pour copper and stitch ground. Partway through that process, I very clearly saw that the green pour (bottom) was on top of the red pour (top). Ummm … that means my entire board is kind of a mirror image.

Let me get this straight: I have to visualise my board from the back and figure out how I want it to look like from the other side, all without seeing the other side? Is there a way around this – I’ve already messed up once and converting from front view (how my imagination dictates where each user-facing component must go) to back view (where components go as seen in KiCad) can and will be error-prone.

Who would think that the board must be designed “backwards,” looking through it from the back? Certainly not me … is this industry standard practise?

Select Tools/Layer pair from menu,you can change the top/bottom layer order.

You didn’t peak at it in the 3d view during the whole layout process? I’m not sure how you got it inverted. I’ve playing with the software for several months and never saw the top and bottom inverted.

Normally footprints are defined to be sitting at the F.Cu layer (plus F.Silk, F.Soldermask, etc…), so when you import the netlist and read in the footprints they should all be sitting on the front of your board.
To get them to the BACK, you actively have to switch them there (hover mouse pointer and hit [F] for example).

The KiCAD stables (as of now) have no way of showing the board mirrored from behind.
The nightlies can do this, but not the stables.

The OpenGL canvas shows the active layer (select in the righthand render menu) on top of the other layers… maybe that one got you confused, when creating the back filled zone?
The legacy canvas doesn’t do this.

KiCAD shows pcbs (without mirror view option) from top looking through to bottom, not the other way around.

PS: as always, plot the gerbers and check them out with a viewer, those are the manufacturing files and the only ones that count in the end.

Thanks for your replies, guys. Colour me confused.

Cool, yes, footprints are on the red/front layer by default and I’ve moved quite a few around, back and forth, as I laid out the board. I’ve got that concept.

I don’t know anything about canvases. What are they, and why would I want to change it? (Maybe that’s a topic for a different thread.) I never changed it, and setting it to the default again doesn’t change what I am seeing. Green/back is still clearly the first layer I see, on top of the red/front layer.

This is what I thought was the case, hence my confusion …

Thanks for your replies. Just had another look – time for a screenshot. This is mindbending!


So this is my MCU, pours removed. It should be on the green/back layer (footprint properties: board side: back – it is indeed on the correct layer!) The position of Pin 1 on this IC makes sense with what you said above, since I would be looking at the underside of this IC if I was looking through the top of the board. But the green/back traces are clearly above (or in front of) the red/front traces, nearer me on the board though I am supposedly looking through the red/front layer to the green/back layer! Am I thinking about this correctly?

Tweaking the setting suggested by @yut has no visual effect whatsoever. I change it one way, and neither layer colours nor layer names change. Changing it back to the initial setting likewise appears to have no effect. What exactly should I notice when adjusting it … ?

And @hermit, I did look at a 3D model to make sure I got my custom character LCD footprint correct. It looked right on there and appeared to be on the front side of the board with the other components I had imagined being on the front. In fact, going back and checking just now, each component appears to be on the layers I had initially imagined.

To sum up, after two and a half weeks of thinking I’d have to redo a major portion of my board, maybe all that’s wrong is KiCad displays green over red?! :unamused: :confused: You guys probably think I’m an idiot. :grimacing:

P.S. This is a really awesome forum. I wasn’t expecting to get a single reply for a couple days, and here are three replies within hours! :heart_eyes:

Sorry it took so long. Decided to watch a movie with the wife. :wink:

Yes, that is the correct interpretation.
What layer WAS active for that screenshot in the render settings?
It’s obviously the OpenGL canvas… so I bet you had the B.Cu layer active… that’s why it appears on top of all other layers in that view.

I don’t know what a canvas is either, but the canvas options in KiCAD have different features available, and they seem to display graphic objects differently.

(A picture is worth 10^3 words.)
Here are two screen shots. Both done while using the “OpenGL Canvas”. (Press function key “F11”.) Both are views of the same PC board. They show the EXACT same region of the board. The first picture shows the display when the TOP (“F.Cu”) layer is selected and active:

The second picture shows the display when the BOTTOM (“B.Cu”) layer is selected and active:

Do either of these look similar to what you observed on your board?

Homework Assignment: What will the display look like when the TOP SILKSCREEN (“F.SilkS”) layer is selected and active?

[quote]The difficult we do immediately. The impossible sometimes takes longer. [/quote] (Gen. H. H. Arnold, 8th Air Force, 1942)

Dale

2 Likes

From his description you would think he was looking at the OpenGL canvas but …

And his screenshot above is clearly the legacy canvas.

Legacy canvas does not “layer” the layers, it simply mixes the colors. It’s not possible to determine which layer is on top of another. For instance, where a green track crosses a red track you get a patch of yellow. Zones on some layers will completely wash out traces on other layers so you often need to disable the layers with zones (or unfill the zones).

To know which layer (color) is above another just look at the layer menu on the right. While OpenGL canvas does “layer” the layers better it also makes the “active” layer the top layer. This is handy but can also be confusing at times. The best thing to do is not to try to interpret physical layer positions from how they are drawn on the screen but rather just remember which colors belong to which layers. (This might become more difficult beyond four or six layers but you can assign colors to layers in any order that might be easier for you to remember.)

3 Likes

For your original question:
Place a text on the “green” (example bottom) layer, place another text on the red layer (example top) and look at the result in the 3d viewer. I think this will answer a lot of questions you have.

Very short and simplified answer:
The different canvases in kicad use different render engines.
The original kicad render engine is kept alive as the legacy canvas (In kicad stable this is the “Default” canvas) as long as not a sufficient amount of features has been ported to the new engines. (This might change in kicad 5. There is a discussion on the mailing list to make opengl the default, cairo the fallback and legacy, well it will be there and named legacy.)
No new features are added to the legacy canvas. (The interactive router is an example. It only exists in the new canvases.)

The new engines are the open gl and cairo canvas. (cairo i think is the option for old systems not supporting open gl. In other words: cairo is the “disable hardware acceleration” button for the open gl canvas.)
Switching between them can be done with F9, F11, F12 (or menu entry view)

Why a new canvas? The legacy canvas was not efficient enough to handle the interactive router. (or it did not have the interfaces necessary to implement this feature.)

3 Likes

Does it though? This is the actual color where green/red overlaps :


Is that green or red? That is not a daft question, because people do see colors differently.

KiCad mixes track colors where they overlap, whether that is the right thing or not is a good question.

Front, I think. I don’t recall, so here’s another screenshot of a different area of my board with front selected.


I don’t think of the colours “mixing” so much as the layers are translucent. So when green pours and traces pass in front of red pours and traces (since that is what it appears to be doing in the above screenshot), you see red through green which is kind of orange-ish. When red appears in gaps in the green, it is truly red. This is why I suddenly got disoriented when I poured copper!

Translucent traces is an incredible feature that the CAD software used at my workplace does not have, much to my chagrin! :frowning: But still, the layers they’re on is confusing …

On default canvas, it’s like back/green copper is permanently selected – it’s always “in front,” like it is in the second image you provided.

The white layer will be “drawn last,” on top of everything else.

So what you’re saying is this visual tool for generating PCBs does not accurately show layers on the correct visual layer … like I said above, it doesn’t seem to mix colours so much as simply have translucent layers.

You are brilliant! This is what happens when I put text here:


turns into this (top/front/red side, switches and display should indeed be on the front as shown):

and this (bottom/back/green side):

Looks alright! (I know my switches aren’t in the correct positions, that’s because I changed the reference on the footprint to move the switch on centre rather than on Pin 1, and didn’t change the 3D model to match.)

Less efficient … rendering is already quite fast, so does that mean my laptop will get better battery life on OpenGL? :wink: Thanks for your brief overview of canvases – they don’t really change anything about the board, then, they’re just different ways of looking at it, and enable features. I was wondering why I couldn’t use the auto-router … now I know why (default/legacy canvas).

Clearly, it’s green over red. Allow me to illustrate my point with OpenGL (yay! I learned something new!) on the same section of my board.

Front/red layer selected:

Back/green layer selected:

In the first image you’re seeing green through the red, which (according to all of you up above) is the correct way things should be and how the board will be built, which means I don’t have a problem and don’t have to re-route most of my board. Glad I stopped by the forums before starting that … :open_mouth: :relieved:

In the second image you’re seeing red through the green, which is not how the board will be built and caused me much pain over the last two weeks! The default canvas displays layers like this, as if the green layer is always selected and in front. Go back to the top of this post and compare the default canvas screenshot of this same area – it looks like the 2nd OpenGL screenshot here.

2 Likes

The layers are transparent, and trying to make a distinction between transparency and mixing of colours is moot at best. When red and green mix the result is yellow the shade of which depends on the shade of red and shade of green. You may see orange depending on the colour profile of your monitor and it’s settings.

That is perhaps one interpretation but what we’ve all said is that the layers are transparent. It is not possible to determine in which order they are layered.

It makes no sense to try to illustrate what you see in Legacy (default) canvas by using OpenGL canvas. OpenGL behaves differently as we’ve all indicated previously.

It seems you are causing yourself unnecessary confusion over this but I think it’s safe to say your original question has been answered and your board is indeed routed as you intended.

4 Likes

To me it looks “orange-ish” as you call it… my brain does not see that as green or red. In fact, in RGB the color used is exactly 50:50 red/green. KiCad simply does an add to get the mixed color. I appreciate the color mixing can be confusing, I guess I have gotten used to it. I am sure you heard of the blue/gold dress? It’s the same kind of thing.

If I am uncertain, I toggle the layers to see more clearly. I also use the 3D view to clarify.

The way the OpenGL canvas works is quite different to the Default canvas, so the comparison is not valid. Hopefully, the way OpenGL canvas works is am improvement over the old one… I hear there will be a feature to view from the back, so that will be quite handy.

Cool. Issue closed then, thanks for your help everyone! Saved me a lot of trouble.

Using OpenGL from now on, aside from switching to default to use the “global spread and place” function. :slight_smile: