Made A New Part - Finally!


After wading through several documents (they all need updating), I finally understood the scheme of things and was Successful in creating a new part.

I made a couple of parts and show the first one in this post. I started simple: One Pin.

No DRC errors.
Dimensions are correct (1mm Hole, 5mm Pad).
Has Views of: PCB, Schematic (used existing schematic view for this part), ICON, BreadBoard.
Exported gerber and loaded into CopperCam

Scrnshots of the Views and CopperCam

In brief - things I learned beyond the obvious:

  • Doc’s refer to a “Tools Widget”: my Frtizing app 9.3b does not have the widget (mac Serria). Took awhile to locate the needed tools (not a widget but, Menu Items in Fritz Menubar>Window.
    -Organizing the (Inkscape) layers needed several attempts to avoid DRC errors.
    -Yes, can easily create Oblong/other-shape pads that have holes and work!
    -I did not follow the File naming convention for this test part.

Remaining Work to be done (and need some Tip’s/help): The ‘Advanced’ settings in the Inspector - where and how to tweak that?

Attached Part for your amusement…
Generic Header - 1 pin.fzpz (6.8 KB)


One major problem and a couple of minor ones:

the hole size is 0.078740 (according to the gerber) not 0.038 as it should be. Now on to the minor nits and what I would do about them (however your part, your choice of options :slight_smile: ).

breadboard svg:

layerId needs to be breadboard not silkscreen. The only problem I know that this causes is the part will not export as an svg (it will be missing). The svg scale is not standard, the parts document calls for 1 px to be 1 thou and the height and width to be set to inches. To correct this (which is optional, the part will work fine with the current scale), I ungrouped everything in Inkscape (to remove all the transforms and not create new ones), edit->select all to select the whole image then file->document properties-resize page to content to restore the origin to 0 0. Then I recorded the coords(x, y, w, h) in px from the top tool bar 0 0 20.553 41.345 in my case. Now in doc properties I changed the scale from 0.26458 to 10.41667 which sets 1px to be 1 thousandth of an inch. Note you need to make sure edit->preferences->behavior->transforms->Scale stroke width is ticked (I usually untick it as I don’t want extending a line to increase the stroke width). Once the new scale is set the image will basically disappear (it has really gotten a lot smaller). So edit select all and set the coords in the top tool bar back to those recorded originally 0 0 20.553 41.345. That should rescale the drawing back to its original size (but at the new scale). Now I moved connector0pin till it was centered in the post (rather than being at the left edge). I also created a 10 thou by10 thou rectangle called it connector0terminal and positioned it at the bottom tip of the connector0pin line. The reason for this is that with only the connector0pin defined and set to .1 in length the wire will connect at the .05in mark (the center) of the pin, It is usually desirable for it to connect at the end of the pin (if you load the test_Sketch.fzz file below and look at breadboard you will see what I mean). Finally I edit->select all and grouped and changed the group id to breadboard to set the layerId, then saved the svg as plain svg.

Schematic was rescaled as above (because that was all it needed) then regrouped and the group labeled schematic.


Again ungroup everything and rescale it. Select the rectangle that is the outline in silkscreen and in xml editor move it above the circle that is the pad. If silkdscreen is the first group followed by copper1/copper0 selection in pcb view is easier (if silkscreen is the last group it is selected first which is rarely what you want). Then select the circle (or perhaps ellipse because of the rescale) set its radius to 29 (0.078 dia) and stroke width to 20 in xml editor. The hole size is set by dia (0.078) - 2 * stroke-width (2 *0.020) = 0.038. With that done select the circle and group it twice. Set the outside group to copper1 and the inside group to copper0. Change the id of the circle to connector0pin. While setting a group as connector0pin as in your original with the pad inside it works, it isn’t standard and will cause a warning from my parts check script which is expecting the standard circle with a radius and stroke-width to set the hole size.

save as plain svg and we are done.

I edited the fzp file to check that breadboard had a terminalId set (which it does) and fix up some of the reference file names to keep my script from complaining about them, but I could have skipped this step without a problem. I then ran my parts checking script against the fzp file so it processed the fzp and associated svgs and corrected some of the things that Fritzing doesn’t like that Inkscape does (it inlines the style commands because Fritzing doesn’t always support style, and removes the px from all the font-sizes as the px causes font scaling problems in Fritzing and will change white silksreen to black to show up in Inkscape). Then I used 7zip to zip the fzp and 4 svgs in to this new part:

Generic Header - 1 pin_mod.fzpz (7.1 KB)

This is a new part so it will load beside your current one so you can compare them (and unzip it and see the changes I have made in the svg files which are substantial). As well here is a test sketch with both parts which demonstrates the connection to the middle of the pin in breadboard.

test_Sketch.fzz (16.2 KB)

Hope this helps some.

I’m not sure you can directly (although I could be wrong). Usually those parameters are set (sometimes by secret modifications to the mduleId and family parameters in the fzp file, some of which I know how to do) in the code. Sometimes we can figure out how to fool Fritzing in to thinking we are a core part by editing the family and moduleId, but I at least don’t know how to do it for the advanced settings. Someone else may be able to though.



Thank you for taking the time to look at it and providing valuable feedback.

Interesting…, as follows: First, recognize the values in the Inspector/Advanced panel mean nothing with respect to what I did (since I can’t find info to address changing that and, it’s probably a left-over from using a Pin header as a basis for the part. Meaning that, though it say’s hole size = 1mm, my design is 2mm.
Also, this was not, as you probably suspect, not intended to be a real part but an educational part.

Regarding the hole size:
In Inkscape, I set the parameters to result in Hole size of 2mm. Correct. and verifies using the Grid scale&Grid lines.
Importing gerber into CopperCam_ results in hole size of 2mm with Pad size of 5mm. Correct.
In Fritzing, using the mouse pointer, placing it at pad bottom and pad top (and scrnshot of info) shows a delta of ~5mm, Correct. The delta for the hole in the pads show a PinHole diam of ~2mm, correct.
The math: 0.0787 (25.4) = 2mm, correct.

The layer ID/name: I agree they should be as required. “Required” is the problem - inconsistent info and old age. I looked at several part files (xml) and came away thinking it didn’t really matter - guess I was wrong and will attend to this next go-around.

You provided great comments and I will work through them.

43 PM