How to make no copper, no mask complex shape

I am trying to replicate the design in the below images in my own PCB.
The idea is to have a bottom entry LED on the bottom side of the board shine light through the board out the front through complex art shapes.
I have the vector art already for the complex shapes and made a footprint for the LED, but I don’t know how to make areas not have copper and not have solder mask.
Ideally the LED foot print would have an area of no copper and mask, but I could not see a way to define that in the footprint editor.
Then on the top side I need vector art to be no copper, no mask to let the light shine through the board.
I have six unique vector drawings so they really wouldn’t be tied to the LED foot print.
For the art, I woudl like to have exposed copper in a circle around the art, which is the area of no copper, no mask.
Again I have no clue how to do this.


1 Like

Front picture to accompany the bottom picture from the above.

It’s not possible to put masks into the footprint, you would have to do it in the PCB. I’m not sure you can easily define masks with externally defined artwork either…

Might be easier to do with a script, once you have the script of course.

Have you tried, Bob? It is posible to edit a zone on the mask layer into a footprint. I have done it several times.

The mask layer is not the problem. (One can simply draw something on that layer as it is the negative of the solder mask that will be applied)
The copper layer however creates problems as there is no way to tell kicad where not to put copper from within footprints. The only thing i can think of is by using svg2mod to create a copper shape with the cutouts already in them. (In v5 one might be able to convert that into a pad afterwards allowing it to fully connect to the zone of the pcb.)

Sorry, yes you are right. I was thinking “keepout zones” but wrote “masks” :doh:

I blame the weather :sun_with_face: :sunglasses:

I’m Chinese, and my English is not very good. So with the picture description of the whole process. This is what I just tried. There seems to be no problem.
I hope you can understand this and help you solve your problems.

that example looks like you need to create Negative Text, which has recently got script support.
Did you see this thread ?

That works by using gerbers Plot-Dark and Plot Clear commands, and means you can overlay 2 design files, dark first, then the cutouts in clear, to create quite complex art shapes. (like the see-thru text in copper in your example)
It is not limited to text, as it merges two gerber files.

1 Like

I do not know what program you are using to import the BMP. Is it just PCBnew?

yes, see the green pixelated ‘a’ icon below, that is the import bitmap tool


I know that there is some current effort to make better icons for KiCad.

Currently the bitmap icon in Eeschema is the camera icon:

I don’t have a developers account to post to the mailing list. Would someone be willing to post that these two icons are inconsistent?

OK I’m back and have figured out how to do this.

For the front art I used Google image search + Inkscape and GIMP to make the art. Then put into bitmap2component to generate a footprint.
Next edit the food print file polys to F.Cu. Save the footprint in my project.pretty directory.
Import footprint in PCBenw and place it where I want it.

The LED footprint was done in the Footprint Editor. I drew an octagon on the silk layer, opened the footprint and changed the layer to B.Cu.
So during the back layer copper pour, the pour keeps out of the center of the LED pad.
For the Solder Mask, I took the points from the copper octaagon and put them in a fp_poly set to the B.Mask layer.

Top layer:

1 Like

(master)->cat OSRAM_LED.kicad_mod 
(module OSRAM_LED (layer F.Cu) (tedit 5B66BFE4)
  (fp_text reference D4 (at 0 -3.2) (layer B.SilkS)
    (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
  (fp_text value LED (at -1 -3) (layer B.Fab)
    (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
  (fp_line (start -1 -1.75) (end 1 -1.75) (layer B.Cu) (width 0.15))
  (fp_line (start 1 -1.75) (end 1.75 -0.75) (layer B.Cu) (width 0.15))
  (fp_line (start 1.75 -0.75) (end 1.75 0.75) (layer B.Cu) (width 0.15))
  (fp_line (start 1.75 0.75) (end 1 1.75) (layer B.Cu) (width 0.15))
  (fp_line (start 1 1.75) (end -1 1.75) (layer B.Cu) (width 0.15))
  (fp_line (start -1 1.75) (end -1.75 0.75) (layer B.Cu) (width 0.15))
  (fp_line (start -1.75 0.75) (end -1.75 -0.75) (layer B.Cu) (width 0.15))
  (fp_line (start -1.75 -0.75) (end -1 -1.75) (layer B.Cu) (width 0.15))
  (fp_poly (pts (xy -1 1.75) (xy 1 1.75) (xy 1.75 0.75) (xy 1.75 -0.75)
    (xy 1 -1.75) (xy -1 -1.75) (xy -1.75 -0.75) (xy -1.75 0.75)
    (xy -1.75 0.75)) (layer B.Mask) (width 0.15))
  (fp_line (start 0.575 2.825) (end 0.575 4.125) (layer B.SilkS) (width 0.25))
  (fp_line (start -0.325 2.825) (end -0.325 4.025) (layer B.SilkS) (width 0.25))
  (fp_line (start -0.325 4.025) (end 0.475 3.425) (layer B.SilkS) (width 0.25))
  (fp_line (start 0.475 3.425) (end -0.325 2.825) (layer B.SilkS) (width 0.25))
  (pad 1 smd rect (at 3 0) (size 1.2 2.6) (layers B.Cu B.Paste B.SilkS B.Mask))
  (pad 2 smd rect (at -3 0) (size 1.2 2.6) (layers B.Cu B.Paste B.SilkS B.Mask))
1 Like

You can create a bug report if you have a launchpad account. That’s the preferred way to report bugs anyways, although sometimes the mailing list seems to be OK, too.

I’m not sure they are inconsistent ? - the Eeschema allows any valid image file, so includes .png etc.
whilst the ‘import bitmap’ tool, allows only bitmap files.

1 Like

I don’t think so either, they are completely different tools.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.