Circuit Break Podcast #422: Wizard Trust Falls for PCB Footprints

Podcast Title: Wizard Trust Falls for PCB Footprints

Release Date: 2024-03-19

Episode: #422

Our hosts discuss Parker’s recent transition from Eagle to KiCad, facing challenges with library management and device layer integration. They discuss the new MacroFab Quote Wizard and our first entry to the MacroFab Food Device Design Derby Challenge! This leads to a discussion of comparing air fryers to convection ovens for fried food fun. The episode delves into adopting LibrePCB as an alternative EDA tool and the integration of Eagle into Fusion 360. Join us for an exploration of the evolving EDA tool landscape and practical design tips.



Podcast Audio:

Podcast Notes:

🚨Contest Announcement 🚨

Introducing a new Circuit Break contest! This contest is themed around building food-related electronic projects. We’re offering over $5,000 in cash prizes, themed trophies, and free prototyping from MacroFab. The deadline to submit is March 31st, 2024. Thanks to Mouser Electronics for sponsoring the contest prizes!

Discussion Highlights

  • MacroFab Quote Wizard Release: The new MacroFab Quote Wizard assists in early project planning and cost estimation even without complete data.
  • Dutch Fried Foods: We’ve received our first food contest submission! Victor Koppen from the Netherlands has submitted a pocket air fryer!
  • Convection Ovens vs. Air Fryers: The technical and culinary differences between convection ovens and air fryers.
  • Transitioning from Eagle to KiCad: Parker discussed the challenges and lessons learned transitioning from Eagle to KiCad for PCB design.
  • Creating Libraries in KiCad: Addressed the difficulties in mapping multiple pads to a single pin in KiCad’s library system.
  • Integration of Eagle into Fusion 360: The implications of merging Eagle with Fusion 360 for design file sharing and collaboration.
  • Multiple Package Limitations in KiCad: Challenges discussed include dealing with multiple packages for a single symbol in KiCad, compared to Eagle.
  • Library Management in EDA Tools: Challenges associated with large libraries and symbol-footprint associations.
  • Adopting SQL Databases in KiCad: Debating the efficiency and practicality of using SQL databases for device layer management in KiCad.
  • Exploring LibrePCB as an Alternative EDA Tool: The episode evaluated LibrePCB’s features and library management in comparison to KiCad.
  • Community Poll: We want to hear from you, our listeners, what is your view on designing your own parts? Head over to forum.macrofab.com for a poll on trusting footprints or designing your own library.

Relevant Links

Both KiCad and LibrePCB had some presence at FOSDEM earlier this year, they both gave a presentation about the state of their respective projects, if you are curious:

KiCad seems to have a rock solid foundation, I don’t think they are scared of changing patterns, just that they have a roadmap and are prioritizing other stuff, at least that’s the feeling I got. The project lead, Wayne, is a sound bloke, classic nerd you ask him a question he speaks for hours, you should get him on the podcast, he’d be a really cool guest. :slight_smile:

1 Like

Yeah I listened to the LibrePCB FOSDEM talks but I didnt see KiCad’s. Will have to give that a listen.

I have reached out to KiCad before to get someone on the podcast but didn’t receive any response.

Urban who is the developer on LibrePCB is contemplating coming on the podcast :slight_smile:

Very interesting to hear about your initial reactions to KiCad! Coming from Altium (and previously Protheus ages ago) we’ve been moving more and more of our projects into KiCad over the last few years wherever it makes sense, mainly for the same reasons as you regarding shareability and also version control, CI/CD etc. Funny enough my experince has been really good and quite the opposite from yours ever since v7.

Regarding library management i’m not sure i understand the issue presented, or maybe i’m just used to a different workflow from my past tools… For the “generic inductor” example, i place the generic inductor symbol on the schematic, hit E and bring up its footprints list - which is grouped by footprint library/device type, is searchable and can also be filtered by pin count/keywords etc, either within each library or globally.
Or whenever there’s some specific part that i’ll be using more than once, i’ll just duplicate the symbol, give it a proper name and have the associated footprint saved as the default footprint option for this symbol.

Selecting components on a schematic works just as expected for me, by just clicking on them? Did you happen to accidentally uncheck the
Preferences → Schematic editor → Selection → “Clicking on a pin selects the symbol” option or something? Or what am i missing?

Btw, the “drag select” behaviour is one of my favourite things in KiCad - if you make the selection by dragging to the right, only the fully enclosed items will be selected, while if you drag to the left, any item touched by the selection will be selected. I wish every desktop app did this :smiley:

My apologies that no one responded. I looked through archives and don’t see any e-mails. Did you try another way?

Best way to reach the team for this kind of thing is pr@kicad.org

1 Like

Will contact after recording tonight’s podcast Seth! Thanks for reaching out :grin:

I agree! This seems to be something tools with a CAD background does. I do wish KiCad (maybe I am missing it) had a lasso style selection like Eagle and Fusion does. Both those programs have the inclusive/exclusive drag select.

1 Like

Great topic! I work at a startup that switched from Altium to EAGLE because of cost. Now with over 100 designs in EAGLE and several products we’re watching the doomsday clock tick towards June 6, 2026 when EAGLE is no longer supported.

Our default plan was to keep letting Autodesk boil the frog and transition to Fusion Electronics but having done a few designs with it, were frustrated by how sluggish it was compared to EAGLE. Definitely going to listen in on Parker’s KiCAD journey. I would be curious what folks experiences are with LibrePCB!

P.S. In terms of footprints we try not to make our own parts to save time but have had some nasty surprises on SnapEDA (mirrored parts or wrong pad pitch/size). I have found the ones Digikey links within their catalog to be good. At least it seems like someone there has reviewed it. In general if we’re importing 3D party parts we check it against the datasheet and stick it in our “checked” master (unfortunately) EAGLE library when the board comes back and its okay. Our volume is small though (QTY ~20) so a bad footprint won’t necessarily sink us.

Yeah I would really like Autodesk to get Fusion Electronics working better but my primary reason for not going with it is I want to be able to share my designs which will be basically impossible with that tool going forward.

We use 3rd party tools to do our artwork in the AND!XOR group so learning KiCad is needed regardless. LibrePCBs library management is such a breath of fresh air and I am really liking it. My effort right now is becoming more proficient in KiCad however till atleast August this year :wink:

Once current projects are finalized I will be taking a harder look at LibrePCB and see what is possible on the art importing aspect.

1 Like

About the Dutch and fried foods… my colleague and I visited the Philips campus in Eindhoven a few times like 20 years ago. The engineering team we worked with were great people, and during our first trip, they took us out to really nice restaurants every night for the first few days. Places specializing in Japanese, Italian, Chinese, Argentinian, etc. The Agentinian one was really interesting — you picked a side of beef from among a dozen that were hanging on hooks behind the counter, and your steak was cut from that one — kind of like picking a lobster from a tank, but on a bigger scale.

After a few days of this, we were privately talking and realized we had not been to any Dutch restaurants, and wondered how we could politely bring this up. We didn’t want to complain, becuase the places they were taking us to were mouth-watering delicious. Finally we got up the courage to ask, and our question kind of stunned them — kind of a deer-in-the-headlights moment. When they recovered from their stupor, they started laughing and explained… “Dutch food is so bland and boring, it would never occur to us to go to a restaurant to eat Dutch food, and in fact, there aren’t many such places at all”.

Eventually they took us to the cafeteria on the campus and we feasted on local “Ducth” food. I think it wasn’t so bland and boring for us, simply because it was new. But man was it heavy. As you mentioned in the podcast, almost everything was fried in some manner. After such a lunch, I don’t know how people manage to stay awake in the afternoon.

1 Like

About the schematic symbol to footprint pin mapping, I’m really torn there. Traditionally, schematics aren’t meant to contain all the precise PCB assembly information as we commonly use them today. There was/is the concept of a mapping between symbols on the schematic and parts in the assembly. One simple but outdated example is a design that has one schematic but two (significantly) different assemblies: a PCB and a wire-wrapped board. In this example, the schematic doesn’t change but the mapping changes and the footprints may well change.

My normal work flow is that I assign footprints to symbols in the schematic, not the symbol part. There are exceptions, of course, when a particular part is so unique that it has a unique symbol and footprint. But most of the time, the part information is blank in the symbol and filled in using the schematic tool.

My needs are not that specialized, and for the common things I use the standard KiCad library as a starting point. Generally I maintain my own “main” library, let’s say the stumbler lib, for parts I would use across all of my designs. These can be unique parts I’ve build myself, or generic parts like resistors which I’ve pulled in from the standard KiCad library. I also make libraries unique to a particular customer and/or client that holds all special parts related to their boards. Furthermore, and this is not necessary anymore(?), I make an additional per-board library akin to the KiCad cache library. This is mainly for portability (or used to be… I think all parts/symbols are now self-contained in the sch / pcb files these days)

About the specific N to 1 pin to pad issue, mostly I’ve followed the “stack the pins in the schematic” approach, or when the number of repeating pins is few, the explicit duplicate pins approach. YMMV

1 Like

When I was using Eagle I had my own libraries, never used anything included or from somewhere else. With KiCad I am rebuilding our groups current library as its a mismatch from all over and none of it is in the same style or formatting.

The library management is still eating at me on the inside and not having “atomic” parts (device layer) built into the tool is probably gonna cause me to switch to another EDA tool for my own projects. There are 3rd party tools that do this for KiCad but all it takes is KiCad to change something in the formatting and then the tool doesn’t get updated due to abandonment and that work flow is busted.

Since the podcast I have done some schematic work with KiCad and that experience has been better. Works just like you would expect which I guess is a positive :slight_smile:

This coming weekend is routing so we shall see how footprint placement and trace routing goes.

I am trying to give KiCad its fair shake here.

To paraphrase Bjarne Stroustrup slightly, “There are only two types of part library management systems: the ones people complain about and the ones no one uses.”

https://www.stroustrup.com/quotes.html

1 Like

Hah, well I guess no one really uses KiCad’s library management then cause most people say im wrong in my complaints about it :smiley:

Well you’re complaining so we have proof “someone” uses it. But ya, coming from a Cadence and Eagle background I have to admit the KiCAD library system just seems a bit off. It’s workable for sure but it sets off my “something is wrong” spidy sense the entire time I’m working on the layout.

But I have to admit. For making a pair of $5 2 layer 2" square PCBs that your going to hand assemble anyway, it’s hard to beat the efficiency of KiCAD. I suppose I could probably get the same productivity in Eagle, because it also lets you break all the rules. But being able to skip Gerber generation with the plugins or just dropping board files into the Web GUI is pretty nice.

1 Like

Lol! I’d love to know more about this issue, or i guess i’ve been using all other EDA tools in the wrong way too. At this point i’ve made well over 100 boards in KiCad and still haven’t stumbled on this specific issue, so what am i doing wrong according to your ideal workflow?

KiCad is not wrong. (and my joke insinuated there isn’t a universal “right”) It’s just different. And not what I’m used to.

Let me give a practical example: The SOT23-6 package. This package could contain an LDO, opamp, two discrete transistors, a PIC10 microcontroller, who knows… However, in KiCAD, the package will only have pins 1 to 6. In the schematic symbol, I can put pins 1 to 6, and then in the text of the symbol, put the names next to those, which works fine. Or I can duplicate the SOT23-6 symbol and give it the schematic names. On the next project, I decide to use the same opamp in SC70 with an alternate pin numbering. Do I make a new schematic symbol with SC70 numbering or SC70 footprint symbol to match the SOT23 numbering? Either way works, but my library is getting cluttered with all these redundant symbols. And heaven help me if a DFM change requires changing the “SOT23” symbol. (Versioning helps a ton here)

It’s much nicer to have a native layer in the library that glues the schematic symbol to the footprint. This way, I only need one schematic symbol and one footprint in the library, and various mappings between the two are indexed by the manufacturer part number, which I need to store anyway.

Again, it’s not catastrophic that KiCAD doesn’t have it. But it is nicer, IMHO.

2 Likes

Thanks for the example, totally makes sense and would be nice to have for sure!

1 Like

I substantially agree with the sentiments expressed in this podcast, but I’m gonna to chime in with a minority opinion on the topic of footprints.

I believe it is essential to know how to make you own symbols and footprints. Now just how to do it, but be comfortable making them. As comfortable as you are making schematics and PCB designs.

I do make all my own non-standard parts. I may download one from the internet, say SnapEDA, but I always check it and usually modify it slightly.

Where I differ is when it comes to “standard” parts. I know that’s a loose term, but it’s not important to explain my reasoning. Considering the nature of most boards that I do as a hobbyist or prototyping for my clients, and also how quick and cheap it is to make new PCBs these days, I am less concerned about the footprints of standard parts from the vendors library (1). From previous work long ago, I know there are tons of IPC guidelines for recommended footprints, depending on the intended application (3 or 4 levels?). I don’t own these specs. And if I did, in my case, I would be better off spending my time on the project design and not worrying about the nitty gritty details of land sizes or calculating the minimum bend radius of my component leads, and calculating its mass to determine if additional staking is needed. These are all HUGELY important things for various applications and/or production volumes. If I encounter those, I then deal with confirming or editing my library footprints accordingly.

I don’t think there is any documented guarantee that the KiCad libraries have been vetted against IPC standards. But from what I’ve anecdotally read here and there, the team that maintains those libraries puts a lot more care and attention into them than I want to, for the vast majority of my projects. YMMV. Especially if you work in a production or say aerospace environment.

About symbols, I do usually copy selected symbols from the KiCad library into my own “master” symbol library. Just for personal preferences. I pick the style resistor and capacitor symbols I like so I don’t have to wade through the ones I don’t want.

When it comes to symbols, I tend to stick with standard symbols for the common items. But when it comes to things like MCUs and FLGAs, I am custom all the way — per design. I start with a standard symbol, and go to town rearranging the I/Os according to the physical layout needs of my schematic. This might require breaking it into additional blocks (beyond the usual power / signal blocks). I am a strong believer in “nice” schematics that present the flow of the design in a sensible and easy to follow manner. I absolutely HATE what I call “visual net lists” — a bunch of parts with stubby wires and labels, no actual connected flow. You might as well just type in the net list directly. At least that is easier to read, search, and edit. This is hill I’m willing to die on.

I have more to say, but that’s all for now. :sunglasses:
I have a book in mind for some years now about drawings for electronics engineers. Currently shopping for publisher / sponsors ( Any suggestions message me ).

(1) Obviously, the cost of making a new board to fix a footprint error could be significant in terms of schedule slippage and/or loss of expensive parts.

1 Like

@TheStumbler The reason I make all my own footprints, including “standard” ones is so the symbols and footprints all match my particular style. Silkscreen widths, bounding boxes, courtyards, ect. In Eagle I even wrote a script to automatically make my symbols text elements match. Its the small things that really make the output truly a work of art.

1 Like