Designing a simple PCB

I need a perf board with 0.05 inch (1.27mm) hole spacing. I envision using the fritzing PCB mode, laying a 0.05 inch grid on the blank PCB, and designating each grid intersection to be a hole. Is that possible? Is there a better (easier) way build a 0.05 inch perf board?


What size of hole do you want in the pads and how many rows and columns? At present perfboards are made by the parts factory (which is why they can be changed) but it would take a code change to make a 0.05in pattern. A python script could be fairly easily written to accept rows and columns as a parameter and then generate a custom part, or if you only need one or a small number of sizes, a svg with the necessary pads and a fzp file will make a custom part fairly easily.


A google search for “perfboard 0.05in pitch” turned up this link which may do what you want without needing new parts …


Hole size: 1mm. Row & column: I need enough room for a 13 pin header; say 20X20 for a rough prototype.

What is “parts factory”? I can’t find that.

Thanks .

You would need to pull down the gerbers (I assume they are in the zip file) and check the hole size in the drill.txt file, but this pre existing board should meet your needs (and is much easier than making a new part!):

The parts factory is the Fritzing code that generates Generic ICs, the headers , the mystery part, and the perf boards (and perhaps others I haven’t thought of!) Because it generates the parts on the fly it can change the parameters of the parts unlike a custom part which is fixed, but it requires a source code change to make changes.


Thanks for the link to a board supplier. I will use it as a last resort if I get frustrated. The main purpose of my project is to learn how to use fritzing tools to design and specify projects. Based on your prior suggestions I have some homework to do. I am intrigued by the idea of editing software to modify parts.

That is not the place to start. The Fritzing application uses that technique to create variations of some common parts. ‘Regular’ parts are done differently. They are built up from SVG (graphics) files for each view that Fritzing works with, plus a fzp (XML) file with additional information that is used to tell Frtizing how to work with the part (things like where the connectors are, and what they are named). There are some tutorials for creating parts / part files. The code for ‘factory’ parts is separate. That still ends up creating the same kind of part file, but it does it ‘on request’, based on user selected options (like number or rows, hole size, pad size, and more. Instead of creating the parts before starting.

I would agree with @microMerlin here. This isn’t a good place to learn parts creation. To create a perf board as a part I suggested a python script (which is what I would do) because making a perf board as a conventional part is a lot of work. First you need breadboard and pcb svg files which consist of the circles that make the pads and holes (400 of them for a 20 by 20 perfboard!) each with a different pin name and in the correct format. In this case you can pretty much use the breadboard view for pcb view. I note in passing, a 1mm hole won’t work, the pitch is 1.27mm which leaves only 0.27mm for both spacing to the next pin and the annular ring (which is typically .02in or 0.508mm all on its own) and then it needs at least 0.2mm spacing to the next pin on each side. After that you need to create a .fzp file with definitions for the 400 connections in the perfboard each entry of which looks like this:

    <connector name="pin1" id="connector0" type="male">
      <description>pin 1</description>
           <p svgId="connector0pin" layer="copper0"/>
           <p svgId="connector0pin" layer="copper1"/>

and where the number of the connector goes up by 1 for each new pin. Now I have python scripts (which I haven’t published because they aren’t yet finished) that will make these, because, as you see, doing it manually would be a lot of work. I’d suggest starting with a fairly simple part (4 to 6 connectors) or better yet the example part in my tutorial and follow these two tutorials (which apply to the current version of Fritzing unlike most others!) My tutorial set includes the part that I was working on for someone so you can start from that and run through the tutorial and see if you can recreate it (and ask here when you run in to problems!)


Wow! You have provided a lot of good information. Thanks.

Agree. In an effort to keep things “simple”, I took liberties with my description and made a mistake. Actual problem: I have a “thru-hole” 13 pin DIN connector I want to install on a perf board with other components. The pins are arranged in 3 rows of 4 with pin 13 alone in the 4th row. All the pins are spaced 0.1 inch per standard. Unfortunately, the second row is moved sideways 0.05 inches so the 2nd row holes fall between the holes on the 1st and 3rd rows. Consequently the connector will not insert into a standard perf board because of the offset 2nd row. I naively thought a 0.05 perf board would solve my problem. I doubt anyone sells 0.1 inch perf boards with staggered rows. I may be able to drill the proper holes in blank PCB material. Do they sell boards having part with holes and part with no holes?

Thanks again. I really appreciate your time and effort. I will definitely spend time with all the information you have offered.

One of the other options for for perf boards in the Black Mesa labs post has that exact layout: .1 in spacing with the next row offset 0.05in, which sounds like perhaps exactly what you need (I have never seen a part that would fit that layout, but it sounds like there are some!) already done and available from OSHPark. Our point is that while perf boards seem to be an easy part to make in Fritzing they are actually more difficult than a seemingly more complex parts and thus are not a good part to try and learn on which is counterintuitive but true.