Printouts not to scale

I recently had a board made and it came back the wrong size. It was my fault because I made some false assumptions. Anyway, in revising the board, I want to make sure things are accurate. I’ve specified sizes and put dimensions on the board. So, in Pcbnew, everything looks perfect.

So I thought I would print the layers out and measure with a ruler but discovered what comes out on paper is drastically off. For example, one side should be exactly 65mm. Which the dimensions say and I’ve put the grid at 1mm increments, zeroed out the side and physically counted. As far as I can tell, everything is perfect.

But instead of printing out at 65mm, it measures 60mm. I’ve looked high and low for any type of scaling but the printer dialog says 1:1. So I’m not sure what I’m doing wrong. I’ve also looked at the OS printer driver screen and scaling is set to 0.

Any ideas what is wrong here?

BTW, I’m using a laser printer with 1200 DPI if that matters.

Thanks.

Printing out ANYTHING accurately can be difficult. Usually, it doesn’t matter, but some times it is important, as you have discovered. The problem is inevitably to do with the printer driver. The main issue is that pixels are never really square, so you get minor errors. You may find if you used a different printer, the results would be different. Not better, just different!

Printouts of PCBs is more for documentation, than having an accurate representation.

I have a similar issue when scanning things: I design a panel on squared paper, then scan it in, so that I can print a copy to mark up an actual panel. Inevitable I end up somehow importing the image into a graphics program, and using that to scale or stretch it in my case, it was something like +2.5%… you have to make a few experiments to get it right, but once you know what’s needed, it’s simpler the next time.

Another way to go about it might be to use the gerbers, and find an external gerber-printing program, it might be better (or not… back to the printer driver again!)

Are you printing from the “plot” option? That should get you there.

Laser printers are not accurate but printing at 92.3% scale is a pretty big deviation. Such a big deviation can be caused if for example you print at 100% from KiCad, but your printer driver scales the image to fit on a page. Laser printers typically are within a few percent, and can also have different scale factors in X and Y direction. They are not intended for dimensionally accruate stuff such as PCB’s. After you press Pcbnew / File / Print / Print the data gets transfered to your printer driver, and your printer driver can have additional scale factors or do other unexpected things to your data.

For normal PCB manufacturing Gerber files are used, and these are always accurate.

If you want to print on transparent sheets and make a PCB from that you have to find and document a procedure to calibrate your printer yourself.
If you use: Pcbnew / File / Plot / Plot Format: Postscript then you see some options that are geared towards hobby level PCB manufacturing:

  • Separate X and Y scale factors to correct for printer errors.
  • Drill marks, which open the holes for THT footprints to center your drill.
  • Track width correction, which I assume is used to correct for errors when lighting your PCB, or under etching.

Setting such factors correctly is only possible if you control the whole printing / lighting / etching process yourself.

I have made a habit on always putting THT footprints on a 2.54mm grid. This way you can easily check if your printed sheets are correctly sized by overlaying them with a piece of matrix board.

Hello,

printing under KDE I experienced similar failures (I think it was Okular). Other PDF Viewers (Now I am using XFCE) are scaling correct.
My Laser-Printer itself produces no errors I could measure (no Fine Pitch in my PCBs)

There have always been rumours that colour printers have to be slightly off as a barrier to printing fake banknotes.,
Gross errors like the OPs tend to be because of incorrect Letter/A4 paper size selection

Are you having pcb made by a vendor or are you attempting to etch your own.

For a vendor you should be creating Gerber files and sending only those. Do you know how to make the Gerber format files? This is the standard method for ordering pcbs.

Thanks for the replies. To answer a few points:

  1. I have already confirmed that my printer drivers are not scaling to anything other than 100%. That was the first thing I checked.

  2. I have also tried plotting a PDF and it produces the same results.

  3. My laser printer is B/W, not color.

  4. I have already checked the correct paper size (that’s one of the first things I do).

  5. This will be made by a vendor. I don’t etch my own. And yes, I’ve had several boards produced. This is the first I’ve done where the dimensions actually matter for my design.

For the record, this is revision 2. I had revision 1 made by JLCPCB and they came back the perfect size. Even though I myself created revision 1 in the wrong size (my fault). I feel pretty confident that revision 2 will come back the correct size. I just wanted to print it out on paper before I ship it off to be made. You know, to see if I can find any mistakes that way.

Thanks

Been a while since I’ve done it. Life interference. :frowning: Maybe it was a gerber plot of mounting holes/pads I did when checking size. You could temporarily add some small pads at the extremes of the board for ‘good measure’. :wink:

You could view your Gerbers in a Gerber viewer. The Reference Gerber viewer has a decent measure function, and so no doubt do some others. I suppose it is accurate. It would have the benefit that you measure your actual Gerbers. While you are add it you can inspect the Gerbers you send off, which is always a good idea.

Ok, back to your original “requirement”: you are wanting to be able to confirm that certain dimensions on your PCB are correct.
Yes, I can see that printing the PCB out (assuming it prints correctly!!) is indeed a simple way to check dimensions.
Question: how many dimensions are you trying to measure?
(a) I’m wondering if the “add dimension” option in PCBNew would give you what you need? (I use that to make sure my PCBs are no bigger than 100 x 100). Just put them on an unused layer (eg Dwgs.User or Cmts.User) and then you can then display them or not as you like.
(b) Also, under “inspect”, there is a “measure” tool.