KiCad Schematics Font is a Deal-Breaker => Feature Sponsorship?

I started tinkering with PCBs a month ago and back then had purchased CircuitStudio for €500. Now recently I wanted to connect a $5 CPU to $2 RAM and I was honestly surprised that CircuitStudio cannot handle the length-matched routing that I should be using. I asked their support about it, and they told me that it’s a professional feature and they quoted me roughly €10000 (incl. taxes) for a permanent license upgrade to Altium Designer.

For a beginner/hobbyist like me, that is of course completely insane.

So here I am, evaluating alternative software options. EAGLE is disqualified for their subscription model. I don’t want to spend time creating files now that I won’t be able to open in 3 years time or - even worse - where I don’t know how much I will have to pay to be able to open them in 3 years.

When I tried out KiCad, I was pleasantly surprised by the PCB editor and its Altium import. I could open a CircuitStudio board and it looked OK, exported just fine and was ready to be modified. The only thing I had to import manually was to set up the clearance design rules.

However, the KiCad schematics editor looks like a deal-breaker to me. Maybe it’s just me, but I really struggle to read that font. Also when printing out the schematics, stuff remains barely legible. And there’s no option to change it. I saw that this has been a feature request since 2018 and it has recently been moved out of v6 to the future roadmap:


I’m a C++ programmer by trade, so I could probably patch in the font support that I need myself. But I don’t have that much time and I’m hoping that designing hardware will turn out to be a relaxing hobby, not more coding work. Plus I really have no understanding of the KiCad codebase (yet) and it’s huge.

But apart from this issue, I’d be happy to switch from Altium to KiCad. The PCB editor is great, schematics editing works well, and it has all the routing functions and plugin support that I’ll ever need - both of which are extremely pricey pro features with Altium.

Of course, I could also do the schematics in Altium, then import to KiCad, do the PCB routing in KiCad and then switch back to Altium. But I’m not sure I want to utilize the free and open KiCad to support their corporate grip on the market.

So I am wondering if maybe there are enough others who are also struggling with the schematics font so that we could do a group fundraiser to get this feature boosted in priority.

From what I understand, some KiCad development is supported by CERN, but they’ll build what they need. And some generic improvements are funded by generic sponsors. And then there’s the KiCad Services Corporation which will directly fix/improve features for their commercial users. So in theory, this should be purely a matter of figuring out how much in bounty to offer to get this done and then raising sufficient funds.

What do others think?

3 Likes

I think you should first try tweaking font thickness if you find it illegible when printed. The font itself is not that bad really.

Of course support of standard vector fonts is a needed feature but it just hasn’t been prioritized yet, as you mentioned.

1 Like

Ola is working on it for PCBs, somewhere in that MR was mentioned that on the schematic side it is more complicated, but I didn’t look into the details of why that is.

1 Like

I have gotten used to the KiCad font.
The biggest *&^%$#@! is probably not the font itself, but the way it is rendered when the letters get small, and the workaround I’ve gotten used to is to just zoom in a bit more.

I also find the way anti-aliasing is handled in KiCad quite bad, and makes text harder to read. I rather have crisp edges, and this makes the “supersampling” anti-aliasing unusable, because it smears everything around. I also find the “subpixel antialising” unusable because it does something very weird with the with of lines in Eeschema:

Here the same area at the same scale with Eeschema / Preferences / Preferences / Common / anti-aliasing turned off:

I normally zoom in to about this level when reading text:

I have a set of quite old HP LP2465 (61cm diagonal 1920x1200pixels) monitors. If you have a monitor with more pixels the issue is also smaller.

For printing. I’ve never had a problem with a A4 sheet printed on A4 paper. Printing an A3 sheet on A4 paper does not work well ink KiCad (It did in the previous EDA program I used, but KiCad prints a bit more schematic on an A4 Sheet).

@craftyjon Thank you for pointing this out :slight_smile:

I did search GitLab for issues and forks before, but I had not seen this one.

@paulvdh Thanks for pointing out the different rendering modes.

For me, it appears that “Subpixel Antialiasing” slightly distorts the fonts and lines, thereby making things even more difficult to read.

“Supersampling” on the other hand just makes everything blurry. I’m using a 27" 4K screen so there should be plenty of pixels around, but apparently there still aren’t enough.

That said, my main grievances with the font are:

  1. Glyphs are too similar to each other. One file I opened had a 10kO resistor, but in KiCad the 0 and O really look the same, apart from some weird distortion.

  2. Some glyphs have corners where there shouldn’t be corners and for some reason that really messes with my brain. For example, the top of the big O is slightly pointy or hat-ish and then it looks like a capital U circumflex to me Û

  3. The font looks different at different zoom levels. In large, the 1 has a round shape at the top left. When I zoom out, that becomes a straight line. This seems to happen around the same time when line width changes from 1px to multiple px, and it gives me this “what just happened? did stuff jump around?” feeling when I zoom in and out.

Font size change

  1. For some reason, the KiCad font looks and feels significantly smaller, despite using up roughly the same amount of pixels as the Altium font.

10kO Screen A4 Altium KiCad

I agree that zooming in makes things better, but that comes with its own issues. When I zoom out enough so that I can see the full STM32H743 schematic symbol on my 27" 4K screen, then the font is already so small that I cannot read it anymore. On the other hand, I can still conveniently read everything with Altium.

So the KiCad font forces me to decide between either reading the pin labels OR seeing all pins, but I cannot do both.

The reason for that and other problems like “glyphs have corners where there shouldn’t be corners” is that KiCad “font” is graphic line segments, Kicad renders not normal fonts but graphics, and it’s not (and won’t be) optimized for text rendering. Altium probably uses normal outline fonts and 3rd party font rendering engine, just like about any application or UI or graphics library which renders fonts. That’s what has been discussed for a later version of KiCad, too.

1 Like

Just a side note to clean up/simplify things a little, for a 10k ohm resistor, you can mark it as 10k instead of 10kO, and a cap as 100n instead of 100nF. Never seen kO notation before, and I would guess can confuse things with looking like a 0. The for small resistances can use 75R.

1 Like

If I remember correctly, it was stated somewhere that the lead developer wanted to do this himself.

Wayne said something like that, although not strictly he wants to do it, but I understood it requires much knowledge about internals of KiCad and details to be solved, so someone who already knows KiCad well enough should probably do it. But after that comment Ola has gone forward with his merge request (linked by craftyjon above). Let’s see if he can solve the problems and keep the quality high so that his work could be accepted.

By “Wayne”, are you referring to “Wayne Stambaugh” from the KiCad Services Corporation?

From what I read in Ola’s merge request, he did have a prototype for eschema but is for now focussing only on the PCB editor.

But yes, I’ll take a look if his draft version works “good enough” for me.

For the record, even though you want the feature now in a sense. We simply cannot add it to v6 even if we wanted to because we are extremely behind schedule and are still looking at quite some many weeks of feature freeze to go. Honestly I personally don’t see v7 development starting until the end of the year <.<

It looks I didn’t remember everything correctly, here’s the original message: https://gitlab.com/kicad/code/kicad/-/issues/2441#note_357250120.

Wayne Stambaugh, the Kicad project leader, yes.

Thanks everyone for the replies and explanations so far.

@marekr I understand that there’s no way to get this into the main stable version immediately, even with payment.

But from what I have learned so far, it should be possible for me or one of my more knowledgeable colleagues to combine what others like @rockola have built into a fork off nightly that kind of works if you are on a system that has supersampling and the GL renderer. I also saw that the grid and colors are highly configurable. So I see a realistic chance to end up with a version that can open Altium designs and display them with a similar quality level.

Also, if I now ask around if someone can help me build it, that’ll hopefully not disturb the V6 work much. I might need help at some point in the future to compile an installer from my fork, but that’s roughly it.

But if there are others like me who truly struggle with the current text rendering and would otherwise disqualify KiCad for it, then just having a prototype and screenshots might be good enough to bring more users, attention and potentially funding into the KiCad project.

Altium and Autodesk are quickly losing users due to their forced subscription models. And both of them appear to have abandoned the $500 to $1000 enthusiast / hobbyist market. There’s a gap opening up and I would be happy to see it being filled by open source software. Today’s enthusiasts may grow up to be tomorrow’s professionals.

Getting back to the V6 feature freeze, is the issue that the project is lacking developers in general? Or is it more that some team members only work part-time on KiCad, which would imply that sponsorship could improve the situation?

Considering this is a free, open software project I think the maturity of the project is quite remarkable. At some point server owners asked themselves, “Why am I paying Big Bux Company big bucks for the software AND paying them for customization to it when I need it?” At that point they looked at Linux and thought, hmm…

I can see Kicad reaching that point for small companies soon. It might just be a matter of exposure and over coming inertia. Also, I don’t know if it’s been mentioned in this thread, the PCB font has more to do with some bottom end board makers and needing to cater to the lowest common denominator if I recall the discussion correctly. :frowning:

1 Like

@hermit I believe the PCB font is OK. Altium and EAGLE also default to using a stroke font for their PCB silkscreen text. Plus on the PCB side, it appears that you can import SVG if you really need custom text or custom glyphs. And I’m not going to try reading PCB silkscreen without a magnifying glass anyway.

My issue is purely that I struggle to read the component values in the schematic view. There, I think it wouldn’t even be a big issue if it looks different from one machine to the next, as long as it remains in roughly the same position so that people know which label belongs where.

1 Like

EDIT: make sure to view the picture at full resolution when comparing.

Here’s a before/after image of the exact same demo schematic with the default stroke font and when SCH_PAINTER is patched to force it to use a vector font. I’ll admit that there are slight alignment issues due to the new font having different sizing and also due to it being proportional (meaning i is smaller than m). But in my opinion, it’s the difference between undecipherable (purple text on the left) and comfortably readable.

While looking into this, I also noticed that the OpenGL antialiasing has some unfortunate rounding choices which causes it to smear 1px lines over into 2 pixels, thereby actually reducing overall image clarity. The screenshot above has a fix for that applied.

I’m guessing that the antialiasing fix for that would be a good candidate to cherry-pick into V6 while my forced font changes probably aren’t. I also haven’t checked if those changes affect or break anything outside of Eeschema.

6 Likes

Submit a MR please

Must admit that the Vector version looks amazing. Is it a dedicated vector font?