Soldermask on track only - solution?

I managed to create a solder mask that covers only the paths, but as you can see in the manufacturer’s preview, you cannot see the descriptive layer - is it somehow related to the mask layer?
In the view in a specialized program for edit gerber’s file, you can see the silkscreen layer normally, but not in the manufacturers’ browsers. Do you have any ideas on how to solve it?
It would be nice to add the ability to change the layer for the cooper pour area not only to top and bottom but another layer. Without it in preview 3d can’t see my “hack” layer with custom soldermask tracks.

Second screen with full silkscreen layer

Explain why. Knowing what do you want to achieve will help to understand situation.

Don’t know, but can imagine that some factory can mask silkscreen layer with mask layer (remove any picture that is not at mask layer). Typically mask layer covers whole PCB except pads that are intended for soldering. As paint (silkscreen layer) is not what you want at pads than I can imagine that factory just removes any paint if not at soldermask.

You can be surprised why silkscreen can happen to be at pads that factory needs to remove it. For many years I was using old Protel 3 (program from 1997). There I practically have only silkscreen layer that can jump from top to bottom together with footprint so I used it to have rectangle around footprint but also I mark cathodes by line crossing one pad. I used that silkscreen layer only for documentation purposes - we ordered PCBs without silkscreen. But once by inadvertent silkscreen gerber was send to manufacturer. Fortunatelly manufacturer (asking no questions) masked silkscreen with mask layer so our pads got not paint on them.
In KiCad V5 Plot there is a flag “Exclude pads from silkscreen” but in most cases “Exclude mask from silkscreen” would do the same job. In V6 I see “Sketch pads on fabrication layers” that I don’t know yet how it works (I did nothing with V6 yet).

I simply don’t understand. You can add filled zones to internal layers also. I have never checked it but it simply can’t be done different way.

Don’t understand what “hack” layer is.

If you have a problem with explaining what you really need in English then clicking at my avatar and selecting “Message” you can write to me off line in Polish.

What it is intended to show us?
Does that mean that after you changed something the silkscreen looks like it will be at your PCB so the problem is solved?

Same here. I don’t understand why you would want to do a thing like this. What is the bigger picture? What is the goal you want to achieve? If you tell us that, then maybe we may be able to give some better advise.

You can use copper fills on other COPPER layers (TOP, BOT + all internal layers).
What you can’t do is to use coper fills on non-copper layers (like Silkscreen, or - probably in this case, soldermask).
But as KICAD’s files are user-readable text format, you can attempt to manually edit copper fill’s layer to the Mask layer (don’t expect for the fills update to work correctly, though). And you can easily just rename the gerber layer to the mask layer and send it as mask for the fab.

To get the solder mask covering only the tracks, you need to properly prepare the soldermask layer - you need a cooper pour around all the tracks, then you need to remove the tracks from it - what will be used as the mask layer will give exactly the effect I want to get. But unfortunately, you cannot, for example, copy the copper pour area and place it on a layer other than the signal layer - honestly, I do not know where this limitation comes from. I do it simply by renaming the gerber file to F (B) _Mask - but it’s a makeshift :slight_smile: And you cannot see such a prepared soldermask directly in the 3D preview of Kicad.

Have you ever come across printed circuit boards that are covered with solder mask only on traces and copper, omitting the rest of the board surface? This is what I want to achieve.

No, this is just a sample of how such a pcb with custom soldermask should look.
I can’t see “message” icon around your avatar, so I can’t send PM

Why not ? Any reason ?

Nope, never seen that.

That was already clear. But why do you want to do that?

You can’t put copper on something that is not copper. Copper area’s also have netlist info and such in KiCad. But you can draw graphical items (Including polygons) on those other layers.

3rd party online viewers seem to be always problematic.

I have here two zones, one in a copper layer and one in a mask layer.

  (zone (net 0) (net_name "") (layer "F.Cu") (tstamp 6942d7d9-d59e-4437-a749-315584411f27) (hatch edge 0.508)
    (connect_pads (clearance 0.508))
    (min_thickness 0.254) (filled_areas_thickness no)
    (fill yes (thermal_gap 0.508) (thermal_bridge_width 0.508))
        (xy 154.94 99.06)
        (xy 142.24 93.98)
        (xy 152.4 83.82)
      (layer "F.Cu")
        (xy 152.359998 83.964168)
        (xy 152.416834 84.006715)
        (xy 152.440252 84.06151)
        (xy 154.90319 98.839142)
        (xy 154.894659 98.909624)
        (xy 154.849376 98.964305)
        (xy 154.78172 98.985825)
        (xy 154.732111 98.976844)
        (xy 142.417414 94.050966)
        (xy 142.361596 94.007096)
        (xy 142.338355 93.940011)
        (xy 142.355073 93.871011)
        (xy 142.375116 93.844884)
        (xy 152.226871 83.993129)
        (xy 152.289183 83.959103)
  (zone (net 0) (net_name "") (layer "F.Mask") (tstamp 42cefd9b-b930-42fa-beab-1977d3f934dc) (hatch edge 0.508)
    (connect_pads (clearance 0.508))
    (min_thickness 0.254) (filled_areas_thickness no)
    (fill yes (thermal_gap 0.508) (thermal_bridge_width 0.508))
        (xy 132.08 93.98)
        (xy 116.84 104.14)
        (xy 121.92 83.82)
      (layer "F.Mask")
        (xy 122.035909 83.949809)
        (xy 122.077359 83.977359)
        (xy 131.971321 93.871321)
        (xy 132.005347 93.933633)
        (xy 132.000282 94.004448)
        (xy 131.952118 94.065254)
        (xy 117.111175 103.959217)
        (xy 117.0434 103.980361)
        (xy 116.974953 103.961507)
        (xy 116.927565 103.90864)
        (xy 116.916282 103.838546)
        (xy 116.919045 103.82382)
        (xy 121.866026 84.035895)
        (xy 121.901953 83.974659)
        (xy 121.965282 83.942568)

As you can see, their implementation is identical. You can use another makeshift solution which helps you to see the result in the 3D view. Just create a zone in a copper layer, then close the PCB editor, open the file in a text editor and change all the zone’s layer indicators to (F/B).Mask.

It wouldn’t take much effort to write a plugin which would do this with a mouse click, if someone is willing to code that. Of course you would still have to delete the old zone and run the script again after changing anything on the board, and you cannot do a global fill afterwards, so it has always to be the last thing you do before exporting the gerbers.


1 Like

But it is impossible to draw such a pour area by hand without the use of the copper pour area tool, and this is what needs to be done to achieve such a filled area with equal spacing from the tracks.

I don’t know of a native way to do this in KiCad. The simplest way to do it is probably:

  1. Export both a copper layer and the corresponding solder maks layer to .SVG or .DXF.
  2. In Some external graphical program:
    2a. Make the tracks wider (to allow for tolerances).
    2b. Use the exported solder mask to keep the pads exposed.
    2c. Export your artwork again.
  3. Import the artwork in KiCad, maybe on a user layer?
  4. After creating gerber files, do not send KiCad’s own solder mask layer, but your own artwork.

It is a pretty contrived workflow and easy to make mistakes, but I do not consider it very important.
It sure looks like something similar is done in that sony thing. It’s probably some audio equipment and they do all kind of silly stuff in that department.

I still fail to see any sort of advantage of doing this though. What’s the use of copying silly things?

In my opinion it is good behavior of any program if in advance it blocks a situation with no way out.
If KiCad will allow to copy copper-pour to non copper layer then if anything at PCB would be moved there will be no way to recalculate the pour as there are no rules about clearance between any filling at other then copper layer and copper items with other net than filled zone.

When I click at your avatar at left side I see:

I don’t know may be to be able to send direct message some time of activity at forum is needed. I will send you a message with hope that you will be able to reply.

I have never seen such PCB. Do you know what is the reason to do it that way?
In my opinion, with the time of operation, dirt on the PCB surface will cause greater leakage than if it were on the soldermask surface.

I don’t know if it is possible to tell the manufacturer that mask layer is to be interpreted negative. They convert gerbers to raster picture so it should be easy. If it is possible than preparing a mask file could be simpler.

Nope, it’s not that easy because you don’t want soldermask on the pads, while you also want to expand the solder mask a bit to be sure the copper is still completely covered when the masks shift a bit. So I see manual processing in some grapical program, or maybe some scripting approach (or combination) as the only solution.

But it’s probably much more effort then it’s worth in the first place.

That Sony board looks like it is covered in solder mask. Admittedly there is not much green dye in the layer but it is covered.
Compare with the obviously uncovered strip at the top of the board.


I only said that it would be simpler and not that it would be easy.
I just assumed that placing wider lines at mask (or any other layer) just on copper tracks (without it pads) is simpler than filling all area between tracks.