Are you ready for a life-changing #kicad pro tip? I had a eureka moment yesterday and am simultaneously reveling in glorious freedom while also feeling really dumb for it having taken 25 years of PCB design over various software packages to figure this out. You ready? Storytime! 🧵

(1/7)

So you know all those footprints with a polarity or pin 1 indicator? And you know how on practically every board you make, you need to move it for at least one footprint? Like it's right on top of the neighboring footprint's pad, or it's over some other unmasked region, or it's too close to its neighbor making it unclear as to which component it's meant for, or it goes off the board edge, or any more of a dozen things that make you need to move the damned marking.

(2/7)

And you know how these are graphical elements tied to the footprint? So depending on software package, maybe you have to explode/unlock footprint primitives to move it. In #kicad, you have to edit the local copy of the footprint, which you can only do in the footprint editor which doesn't provide the visual context of the PCB, so it's back and forth a few times to just get the damned mark in the right spot and bob forbid you make a layout change and have to do all of this AGAIN.

(3/7)

AND to top it all off, once you do this, you get those annoying DRC warnings about your footprint on the PCB not matching the footprint in the library. You continue on blithely ignoring these, relying on yourself to remember when you go back to this board in 6 months that they don't matter, but also thinking that one day you constantly ignoring this warning will most certainly bite you in the ass. The pain of all this is real, right?

(4/7)

Again, I don't know why this didn't occur to me anytime over the past 10 years, but yesterday something in my brain went CLICK! and I was like - why the fuck don't these act like reference designators? Reference designators I can move all over in the PCB editor without changing the footprint, and DRC don't give a shit. So wait....maybe if I create a new footprint field for polarity markings, and just put "+" and "-" as text, I could be free of this bullshit? HOLY FUCKING SHIT.

(5/7)

I could use a degree symbol or a bullet for dot-style pin 1 markings. Is there a little filled-in triangle text symbol for that style? Indeed there is (ty @ArchiteuthisFlux for quickly finding this as I was stream-of-consciousness figuring this out). Need a line for an SMT LED? Use an underscore or two or a pipe. So I present to you - freedom from bullshit local footprints that differ from libraries just because you needed the polarity or pin 1 marking in a different spot.

(6/7)

And now I'm like - why the hell don't all built-in libraries do it this way by default because then I wouldn't even need to make my own personal copy of a footprint, just to make the markings text fields, just so I can easily move them!? They've been grandfathered in as graphical objects for decades and it results in a terrible UX.

Now you may all tell me how you've already been doing this for years, or how there's this other easy way of getting around the issue. :) (7/7)

Also, I generated this thread using Splinter, which is a really excellent tool. It allows you to add images incl alt text to each individual post. Thank you @neiman ! https://splinter.hastily.cc/
Splinter - Mastodon Thread Splitter

@alpenglow you might wanna open a bug on the kicad-libraries repo, a lot of those are generated via a script and it might be possible to fix that for a large number of them relatively easily!
@stargirl That would be amazing. I’m always hesitant to open a bug report for something that’s not a bug, tho, is that the right spot for it? Should I submit it as a feature request? (I haven’t done that so I don’t know the process, but can look it up).
@alpenglow absolutely! The maintainers will reclassify or move it around if needed. You can create it here: https://gitlab.com/kicad/libraries/kicad-footprints/-/work_items
Work items · KiCad / KiCad Libraries / KiCad Footprints · GitLab

Official KiCad Footprint Libraries for KiCad

GitLab