Paired layers - working, but

I have installed V9.0.3 to find how to move from V8 to V9.
Problem: I have (since KiCad V4) both Value and Reference at F.Courtyard layer and when plotting to svg I do it once with Values and once with References. As with V9 it is not possible what I want to check is if paired User Layers can be used for it.
In my C 0603 footprint I moved Value to F.Fab layer.
In my R 0603 footprint I moved Value to User.1 layer.
I made schematic containing 2 0603 capacitors and 2 0603 resistors.
Then I created PCB (opened from schematic and accepted creation of new PCB).
After Update PCB from schematic:


C1,R1 in top row, C2,R2 in bottom row.
After flipping elements in bottom row:

Now imagine you have designed whole PCB having many elements at bottom (some my PCBs have all SMDs at bottom) and you come to preparing documentation.
I switch on Values:

Opps. I forgot at the beginning to link User.1 with User.2 layers. So I am doing it now:
User.1 - Off-board, front, User.2 - Off-board, back.
This changes nothing. Kicad didn’t notice that R2 value (47k) is from User.1 and R2 was flipped.
How to repair it…klick in one footprint - Update Footprints from Library, Update all footprints on board (this is the function I frequently do, as I keep all my footprints being equal to library origins). During update I check “Update/reset text layer and visibilities.”
Update reports that only R2 is updated. We got:

47k value from User.1 layer in footprint is correctly inserted at User.2 layer but it is not mirrored so at bottom view plot will not be readable.
Now I flip R2 and got:

Both resistors are the same element and both are now at top.

Such mistake is not possible if you use F.Fab layer. The only problem is the true dimension picture disturbing the value (you can’t plot value without that picture).
I seriously consider using Fab layer for element Values and moving pictures from there to some other layer. Even if it happens these pictures from top and bottom elements be at the end at the same layer it is not a problem for me - I use it rarely only to evaluate optically some distances.

In my opinion the source of problem is the idea that layers can be used sometimes separately and sometimes paired.
I think that paired layers should be implemented the same way as other paired layers - it should be F.User1 and B.User1, F.User2 and B.User2,…

Do you agree with me?

If anyone want to experiment with my example:
Test.zip (10.0 KB)

Hello Piotr

At my side, in board setup, I use User1 (Comp Top name), User2 Comp Bot Name), User3 (Comp Top Value), User4 (Comp Bot Value). Take care to well define Front/Top parameters.

In Footprint Lib, User1 is for Name (C), User3 is for Value.

I made a sch with To cap and generate a PCB.

When I change side/Flip C1, it works for me

Just a bug, when you come back to your PCB, the configuration of the Front/Back need to be defined again.

Regards

Vincent

I didn’t noticed it. I have used separate PC (have not it here) to check how it works with V9 and just made this one example.
The rule coming from my experiment is that you should configure these layers at PCB before you flip any footprint. Forgetting to do it can be a source of problems like in my example.
When I design I typically have all Refs and Values hidden (I need to see courtyard + pads). I switch them back just before making documentation.
Also it happens to me to have long breaks in working with PCBs. When coming back after such break it is very easy to not remember something you have to do, and can’t correct later.

I’m not sure if it is even possible to make KiCad being robust to changing these layers definitions in middle of work as there may be some conflicting needs.
I sow that there are (in V9) over 40 User layers at PCB. If 2 or 3 pairs were permanently defined as being paired it would be 100% protected against such problems. I wonder why it was not made that way.
Seeing how it is made I am afraid of using User layers pairs now. I don’t think it is a bug as what I have done was just changing rules during game…

I’m considering:

  • moving Value (+ copy of picture from Courtyard) to Fab layer, and picture from Fab layer to User.1, or
  • staying with V8.

May be it is rationale to wait for V10, V11 before editing whole my libraries.