Custom part with Track Solder Mask

Hi All

I quite new to all this. I’m working on a project were I need to place 24 x WS2812b LEDs in a circle on custom PCB. Fritzing does not have the capability to lay this out correctly and accurately so I’ve make a custom part using CorelDraw. I have put in the copper and silkscreen layers, however I need a mask

What I need to end up with all the tracks having a mask and only the pads exposed, what I getting is ALL copper exposed.

So how do I add a copper mask, what slayer names are used?



I opened this sketch, added the missing GND fill, exported the gerbers, and in Gerbv the mask looks like the areas you want exposed for soldering. Or is it a negative showing the areas that the PCB doesn’t get painted a colour.

speeduino pro NA6.fzz (330.6 KB)

EDIT - If no one knows how to do it might be possible in FZ, depending on how accurate you want it.
Set a via to your diameter. Put 2 headers at 90º intersecting the centre. Place ruler through centre, at the angle you want in Inspector. Move LED so it touches the via and the ruler runs through the centre.
LED ring.fzz (1.8 KB)


Thanks for your responce, i had tried playing with gound fill but it doesn’t work. This is the part im working on, all i want to end up with is pads for the LED and caps, and r1

WS PC Ring - 24.fzpz (254.1 KB)

I am getting close to the point of thinking this can’t be done

How I think FZ works is that the pads in copper groups are used to make the mask keepout, so any tracks in a part will remove the mask because it all becomes mask keepout.

What I think you have to do is delete all the traces, and use FZ traces. The problem with that is the svg used polygons pads when FZ only understands rect and circle copper pads, so nothing will connect to the pads.

I removed the tracks and now mask shows up in Gerbv are rects, so I assume it will paint everything and leave pads bare.
WS PC Ring - 24a.fzpz (264.2 KB)

I think this is the only way that fritzing will actually work. However to use it you would have to save the current maskTop.gfs file from the gerbers, gernerate a new gerber with the complete part and then substitute the maskTop.gfs file in the new gerber. Unfortunately both gerbers need to be identically configured so this is a real pain in the ass to do. What he wants is a part that implements the all this including the masks in a a single step. I too think that is likely not possible in Fritzing. The gerber processing in Fritzing appears to be what is creating the mask on the fly, you can fool it with invisible copper to unmask things, but I can’t see a way to cause it to mask copper in a part. I hope to be proven wrong by someone with a neat trick, but I’m not sure I will be.


I was thinking about externally fixing the mask gerber in some other editor, or making a new one in FZ that is correct and sub-ing it, and I guess I stumbled into it. :slightly_smiling_face:

If someone wants to swap out the polys you would only have to make traces once, and box and copy it if you want to use it again. It would practically be a part like that also.

I think it could be reasonably laid-out just with FZ parts, but then again laying out steel was my 1st job. :grinning:

Hi Old Grey

Thanks for your reply, got to be honest i am not sure what you mean


I think he is suggesting using an editor (although I’d use a script probably in python) to post process the maskTop.gfs gerber file to substitute in the mask values for your part (generated by his svg with the traces removed). It would need to copy the x/y coords from the Fritzing generated file in to the template but it should be possible to do. I haven’t played with gerber files, but I think they are xml or at least text (as opposed to a binary file). That I think is likely the only thing that will work at present.


You make a sketch with your part and export the gerbers.
Then you Delete Minus your part and sub my part on the exact cords, reconnecting whatever traces, and make another set of gerbers.
Then you just swap the 1st original Top Mask file with the 2nd Top Mask file, and zip that set of files.

In your part the pads in the PCB view copper are polygons, they have to be changed to rect because FZ won’t allow any connections to polygons. Try to connect a trace to a LED pad. Once the traces are removed and the poly changed to rect, you can manually put the traces back in in FZ. Then just keep that as a sketch, and if you need it again you box select the whole thing and copy paste it into another sketch, as a type of complete part.

The 3rd way is to manually build it with FZ parts and traces using layout techniques like in my LED ring.fzz. Each LED is at 15º, so you just keep changing the ruler angle 15º and lining up the centre of the LED.

Hi Guys

I think i understand where you are going with this, i will have play and let you know.

Regards the pads, this isn’t a problem as the pads never have tracks (or do you call the traces) connected to them, there is only 3 connections are they are already rect and work.

I did smile by the phrase “sketch” as this is what Arduino ESP8266 code it called, got to love using the same phrases for different things

Thanks for your help, i will let you know how things progress, may not have time to play with it for a few days


Old_Grey and I are coming at the same thing from different directions. The final result (which is ugly!) is after the gerber export you need to modify the mask layer. The way it has been done up to now is what Old_Grey suggested, export one sketch (and yes this is ironic :slight_smile: , I wasn’t here in the early days to know if that was intentional or not) with the complete part to generate the copper layers correctly in the gerber, and then replace you ring part with the one Old_Grey made with only the pads you want unmasked (not the interconnecting traces) and substitute the top mask in to the first set of gerbers to have all the copper from the first export but the mask (identical but without the traces in the ring) from the second export to give you a hybrid gerber with the mask layer you want. What I’m suggesting is that I think you could eliminate the second gerber export (to create the mask) by having a script find the ring image in the gerber and substitute the second stage mask only over the ring part in the mask the Fritzing exported. It is more work up front (to create the script) but eliminates a gerber export which is time consuming on all further parts. I’m assuming it is possible to identify the ring part in the gerber output in this of course and that may not be practical but I think its worth poking at, since I gather you want to use this part in multiple designs.


Gentleman you are bloody stars !!!

I have a love-hate relationship with the internet, I hate that is full of Muppets who think they know everything and don’t help anyone to learn, and love it when I find guys you are go out your way to help someone.

I have had to make some alteration to the my LED layout, but using Old Greys example I now have 2 components, the main one I use to create the main board and another one that I just swap out and export the board and just copy over the screen.

Just having issues with the loading a logo, but once that’s sorted close to being done :slight_smile:

Thanks Guys


When you open up the sketch/project/circuit :slightly_smiling_face: - internal terminology of different programs catches me out too - in a gerber viewer and toggle between mask top and copper top, do the layers align properly.