Print Accuracy - Blurring Defects and Poor Results

TL:DR :- Windows messes up PDF files somehow.
Use Plot function instead of Print. Plot output as SVG.
Load your SVG file into Inkscape and increase dpi resolution at this stage as multiples of the displayed dpi.
Print SVG in Inkscape using Microsoft PWG Raster Driver. Change the driver through the properties of your Printer in Devices and Printers. (Make a copy of printer and change the copy)

The Issue:

So I notice that no matter how hard I try, when I come to print out some artwork, even in the preview the result is highly inaccurate with legs misaligning with pins and a complete lack of consistency. There are blurred blobs and random spacing between pins. There are almost greyscale edges along tracks and pins.

When I attempt to actually print the artwork the Printer itself enchances those defects.

I tested the printer by drawing a series of 0.01mm to 0.05mm graphic lines. There is only a slight difference when you reach 0.05mm from the values below. So my printer’s accuracy is ~0.04mm line thickness. Its clear, non-bleeding etc. This is quite accurate for a £40 printer.

Does Kicad produce the print result Via the printer driver or does it handle things its own way and then pass it off?

I do have a (cheap laser) printer, but I don’t use it much.

I’m guessing that by “artwork” you are referring to the PCB.

KiCad can do both. With: Pcbnew / File / Print you generate raster output which is send directly to the printer, and with Pcbnew / File / Plot you can generate vector output in a bunch of different formats and save them to files to be printed (or post processed, etc) with other programs.

Consumer level printers are not designed for very accurate output.
If inaccuracies are less then 1% then it likely is your printer hardware. If inaccuracies are over 2% then it’s likely some software setting, such as a “Fit to page” function. KiCad has this function built in, but when you click on Print it sends the data to your printer driver, and that is dependent on your OS. Your printer driver may have (and very likely has) it’s own scaling settings.

I don’t know what your “Blurring” looks like. My printer driver (On Linux) also has a “Print to File” option, and it can save print jobs in either .pdf, Postscript, or SVG format. So it looks like KiCad gives the vectors to the printer driver, and the printer driver rasterizes it’s input if needed.

I’ve tried Plotting to PDF also. The results are worse.

My print driver has various options including non-compression, no lossage etc but none of them seem to matter. The problem is apparent before I send the data to the print driver. I think the printout MAY actually be faithful.

In the PCB editor when you zoom out to certain levels, the same defects can be seen visually. I’d hoped this was just only but it seems its the same pixel artefactation appears in the printouts.

These traces are ‘Snapped to’ the pad. You can see the misalignment.

Visual Defect

Other defects are produced by the rounded edges of the traces. I can’t seem to sharpen them up at all. I dont really want rounded edges.

I may have stumbled on some ‘Fix’.

When I generate the Preview, Plot, whatever… its blurry.

When I change my printer settings to fine etc from the Print Popup within Kicad and do the process again, it comes out a little clearer when I did a PDF plot. I could be miscontrued and I’ll have to test this theory.

Settings :
Finest.
Contrast : Full, Intensity : Full
No Loss printing
Disable Application Colour Profile.
Maximum ‘Print Unit’
Disable Data Compression
Greyscale.

Now the Plot output looks a lot sharper.

Now to try an actual printout…

Its an improvement but still not there.

The pins are coming out with better definition but I need to oversize my courtyards and reliefs.

I do NOT recommend using 2x3 16-TQFN.

Your screenshot is completely unusable.
I do not see any “blurriness” in Pcbnew itself. It just works with vectors and those are accurate. I usually turn anti-aliasing off (Pcbnew / Preferences / Preferences/ Common / Antialiasing) because it make edges more clearly defined.

Rounded edges are on purpose in KiCad. They are a feature that makes PCB production more reliable (especially for the solder stencil)

I suspect there is a language / translation issue here which makes it difficult to get on the same wavelength of what is going on here.

When I produce an output, if I zoom in to see the smaller stuff there is blurring and misalignment, probably due to defects in downscaling. In the editor itself I get misalignment when I scroll out.

Its hard to determine what is an error of the print driver and what is an error or Kicad.

The screenshot above (reposted) shows the PCB Editor itself and what happens to my pins when I zoom out. This comes through onto a printout also. The errors exist within Kicad before the data has even reached the printer.

The rounded edges produce many defects in the printout as the software attempts to antialias on downscaling. The results are not pretty.

Your screenshot is a bit bigger now, but it still far too small to evaluate it properly.
The top green oval is because the track is drawn on the grid, while the pad to which it connects is not on the grid. There are several ways to fix this. The best way is to draw the track correct the first time.

Another way is to hover over the horizontal segment next to the pad, then press d for drag and then move your mouse cursor to the center of the pad. It should then snap to the pad, and the track should then have the same Y- coordinate as the pad.

I can not see what you mean by the lower green oval.
Your screenshot does look blurry, but that is because of JPG compression.

I need to re-iterate that the track to Pin is not misaligned. It was drawn starting at the pin with which the track tool snaps the to centre of the pin. This misalignment happens when I zoom out the view and is consequently visible on the output.

You dont need much from the screenshot. The misalignment is clearly visible but not real as such that it only exists in this defect.

The second oval shows how the line spacings of the courtyard is not consistent. Visual information simply disappears and a ‘ripple’ appears in spacings.

dspic33

This is Kicad’s idea of a dsPIC33 footprint with some traces and caps. There are a lot of obvious defects that shouldnt occur and are not an error of graphics software.
AA is switched off.

Even just noticed that the Cap pads seem mismatched in size.

So I loaded the output image in Paint.NET. The problem seems to be an issue relating to the Base Pixel Resolution, probably on my OS. I wonder if I use DSR scaling and scale down from a higher resolution it may provide me with more accuracy.

Standard pixel resolution is not high enough to allow proper scaling and spacing for slightly size mismatched components On Win 10. The result is that periodically, the pins run out of Real Estate to be able to continue the same spacing and compensate by producing a Thin Leg or Reduced Separation.

From such a low resolution screenshot I can not see whether it’s “real” or an “artifact”.
The best way to judge that is if you post the PCB file itself.

The (apparently) uneven pin spacing of the dsPIC is very likely an artifact of your monitor. KiCad itself works with vectors and with nanometer resolution. If you zoom further out, then the monitor resolution is too coarse to show all pads. If this bugs you then go buy a “HiDPI” monitor (Which I consider a waste of money myself, but it’s a personal preference).

Your use of “output image” concerns me. What is the file format of that “output image” and how do you make it? If you want artwork to pint (for for example etching at home) then you should never use an intermediate pixel based format. Send vectors to your printer driver, and let your printer driver generate the pixels for the printer.

UM…Print? Kicad? Its what Ive been talking out. There are no special options available in Kicad.
The only other Output Image Kicad produced in the context of what Ive been talking out is PDF with Plot. You already know this.

Im literally here explaining to you. When you zoom in on the PCB everything is not only aligned but using the exact same Widths and ‘Snapped to’ each other. When you zoom out the artefacts appear. Of Course I expected these to be just screen visual defects but they actually transfer to the printout.

There are no options to decide what Kicad sends or not. Its all Printer Driver.
This leads me to the conclusion that in Windows, my screen resolution might be contributing if it alters the Pixels Resolution which is defining rather directly, my possible pin spacings on the printout.

Also, this in kinda the point. Using these tiny sizes does get pretty low res. I’m practically working in pixels but I’m not knowing what it is that defines the size of my pixels. I know my printer can produce finer result that this, because Ive tested it. So where-in does the inaccuracy lie?

I’m pretty sure that KiCad sends vectors to your printer driver, and what your printer driver does with them is outside of the scope of KiCad.

If you’re trying to print PCB’s with 0.3mm GBA’s on a 8-pin dot matrix printer and try to home-etch that you’re also out of luck.

This may seem like a silly example, but I don’t know what sort of printer you have. It’s also possible you have a buggy printer driver, or windoze does some weird “enhancement” to your artwork output that messes things up. Drivers for video cards can also do strange things, such as anti-aliasing, subpixel sampling and possibly other things. There is simply no way of correctly diagnosing your issues from the descriptions you write down of your own interpretations.

1 Like

Aye, I understand. It would appear that it is a Windows issue and not one with Kicad. It’s simply Kicad using what’s available to it to produce my output as an accurate representation of what my final result will be. In this respect, its spot on.

The DSR scaling on Nvidia GFX card (which begins with x4 desktop resolution and scales it down from there) does serve to eliminate the In-Program Visual defects. Unfortunately this does not translate through to the printout. So, it must be with the Base DPI/Resolution factors of my Printer to which Kicad reads and responds to.

I’ll see if I can find some Universal Driver for the printer. I bet Linux users dont experience this issue.

Microsoft PWG Raster Class Print Driver produces more accurate results…BY FAR.

Still not perfect and it has ZERO options but a higher fidelity in the result.

With the Microsoft PWG RCPD selected as the driver I selected RAW data format handled by Canon driver (winprint the other option).

Interestingly, this was printed in 300dpi setting. After using it afew times, just like magic a new option opened up and I could change the option to 600dpi. Still doesnt use the 1200 (1200x4800) of my printer but its still looking a lot better.

This is a test-file with a 80-TQFP and caps/traces and on the right is a Hand-Fudged 16-TQFN with planes and keepout wrapped in a zone. I created this file so I could optimise the printer and find out my working limits withn the program.

Sorry, not a great pic but that TQFN is 2x3mm and my phone camera is a bit dud. Blue because I had to take it in ‘incandescent mode’ for the light levels.

Not quite usable yet but I’m nearly there. Some of the inaccuracy comes from the Grain on the paper which should not be an issue when I print to Acetate.

An interesting defect in the PDF software chose to double the size of the image on the paper rather than ‘resort’ to actually using 600dpi. Even on that massive image it still managed to oversize the pads. Im going to try a better PDF software. Being able to accurately print the Plots would be the best way to go. Its abyssmal at the moment.

1 Like

I think I’m experiencing this between PDFs. I bet its some super-obscure option buried deep within one of the new and pointless settings menus they decided to split off and run concurrently to the control panel.

I did another test.

I opened my PDF output from the Plot function.

I selected Print in my PDF viewer and selected ‘Print to PDF’.

The result was that the gaps between my Capacitor Pads disappeared in the new PDF image.

In order for accurate printing to ever work, the PDF#2 has to absolutely match PDF#1.

Any ideas on how to deal with Windows 10 to make this happen, are very welcome.

There’s also this :

BEST RESULTS SO FAR:

Plot -> Output as .SVG Format

Open .SVG File through Web-browser

Print .SVG File Through Browser Using Microsoft PWG Raster Driver

The SVG files seem to not be adjusted or affected by Windows or the other software in any way.

FWIW

Attached is a 45 X 50 mm board printed using the Kicad Print !:! to my relatively low cost Canon Laser. I did change the laser driver setting to “CAD”.

There are a few lines that end abruptly, this is because I’ve not finishes with the last round of changes.

Kicad 5.99
Windows 10
Canon Imageclass 6030W

Scanned at 600 DPI Grayscale:

When measured with a machinist’s ruler the board outlines were within 0.1 mm of the 50 mm dimension and with no measurable error on the 45 mm dimension. (each read with a 5x eyeloop)

Here is another FWIW:
I have an old HP1200 laser printer. I have drawn my design in Visio. Then in Visio I save as a .png file with typically 600 DPI resolution. Then I open the .png file with IRFANVIEW and print to my laser printer. I have used this as a template for hand cutting metal stock. Of course the scale is somewhat bigger than fine pitch pcb artwork but so far as I can tell, the laser prints are very accurate. For example making adapter brackets to fit oversized wheels to an old lawnmower. Very happy with the results of this method.

Another utility which may be more powerful (but bigger learning curve) than IRFANVIEW is GIMP. My take is that GIMP can convert almost any format to almost any other format. So perhaps you could produce an SVG out of KiCad and then either print or convert the format using GIMP.

1 Like