Before I go into the details, I have observed this in KiCAD 7.0.5 on Ubuntu and also for disclosure, I have worked as EE for many years and worked with a variety of EDA tools, including Eagle, Altium, DipTrace etc. but I am relatively new to KiCAD. For a few months I have used it on and off to maintain a few existing projects for the company I joined recently. There always were a number of nagging messages from KiCAD, but nothing that seemed life threatening and I was under time pressure, so I put up with it. The boards came out fine.
Now I am starting a new major project and I have started to set up a clean parts library and generally get my act together with KiCAD. So my tolerance for unresolved errors and warning messages has officially worn out. Of course this is where the trouble starts.
One warning message I am consistently getting when updating the board from the schematic is a complaint for every single power symbol in the design, that it is not being driven by a power output pin. Checking out how power symbols were implemented I discovered that the pins are declared as power input. Never sure how a particular group of implementers thinks about these things I researched the issue and found clear messages that power symbol pins should be declared a power output. So, clearly my predecessor had made a mistake. Easily fixed, I changed the respective power symbol definitions. and updated the entire darn schematic. Updating the PCB from the schematic I found that the nagging messages had indeed disappeared. Great success, one down 36 more to go … no, wait a minute, now none of the pins connected to a power symbol are connected to anything!!!
Power symbols are of course a special breed in any EDA package. Any two normal pins connected together are assigned their own net. Not so with power symbols. Each power symbol gets assigned its own net based on its name and all pins connected to one of those get connected to that net. So the tool has to treat the pins different from all others and typically some special rules exist that need to be followed to make this work out. In KiCAD part of that rule seems to be that power symbol pins need to be declared power input pins. By my experience some of those rules are bit more bone headed than others, so I don’t want to judge. Obviously it’s hard.
So the question I was leading up to is, is KiCAD really this inconsistent that it can’t handle its own power symbol definitions when doing electrical rule checking or is there (more likely) something I am doing wrong? and if so, what might that be? In my searches I found someone referring someone else to go read up on the documentation for power symbols in the KiCAD manual, but without link. A search for such a place turned up empty…
Obviously this is no life or death situation. I’ll get the board done and I will be able to live with the warning messages if I have to, but any insight into this phenomenon would none the less be much appreciated.
First: Update KiCad. Increments in the third number are bug fix updates, and the current version is V7.0.10. I’m guessing that over 300 bugs have been fixed in between those two versions. There are also no compatibility issues. It’s only bug fixes and there is no reason to hold back.
Yes, this is correct. I don’t know what sort of research you did, but apparently you stumbled upon bad advise. The confusion likely started with “Power Symbols” such as a schematic symbol for a voltage regulator (such as an LM7805) and power symbols such as a +5V.
KiCad is not “inconsistent with power symbols”. The biggest difference with other EDA packages is that KiCad attempts to check whether there is a schematic symbol that is capable of delivering power.
The fix for you is to read on how the PWR_FLAG symbol works. This has been mentioned many times, and it is a big source of confusion for people starting with KiCad.
In general, a short overview:
Only devices which deliver real current into a net should have a pin type set to Power Output, such as voltage regulators.
A net should never have more then one power output. This would likely overload one of the connected voltage regulators.
Power Symbols such as Vcc, +5V and GND are not able to deliver power by themselves. Their function is not much more then fancy labels that connect wires together. They are set to the Power Input type, because power must come from elsewhere.
PWR_FLAG symbols are used for power nets that are not directly connected to a power output. For example, power may come from a connector, or there may be a fuse or ferrite bead after a voltage regulator that breaks the power net.
Sometimes I think that a link in “Help” to “Kicad Docs.” would be better than the link to “Getting Started…”
Six mouse clicks to reach the Schematic Docs is a bit much if you’re new and finding your way.
To find the above: Open Kicad > Help > About Kicad > http://Kicad.org > Documentation
Open the Schematic Docs. Scroll to “Inspecting the Schematic” for other information on this subject.
Thanks a bunch for your advise. As for bug fixes, I don’t think that would help here. The real problem is obviously that I find myself deep in the woods without a map and errant voices telling me to turn this way or that … but anyway I’ll update as you suggest.
As for the research, there was little to none before I was in trouble. As stated, I started in a new company and took over existing projects from my predecessor (no longer at the company) and I was then new to KiCAD. Time pressure to get product out the door was high … My research in the beginning consisted of finding out how he had defined the power symbols (yes, stuff like GND , 5V etc. to create power nets, not voltage regulators). I got the term ‘power symbol’ from the checkbox in the properties dialog. I still assume that needs to be checked. God knows where he had that stuff from. Now that the first board is out the door I don’t exactly have a relaxing time, but I got a little room to breathe. Time to get my bearings.
In my searches I found quite a few mentions of power symbols, but mostly bits and pieces form folks that themselves seemed only half knowledgeable and that was sometimes conflicting. Anyway what you write sounds reasonable and I’ll search for help on ‘PWR_FLAG’. That nugget I didn’t know about.
In Altium, Power symbols are completely different from anything else. They’re called ‘power ports’.
In Kicad, I note they are a specific type of schematic symbol with specific electrical attributes
Tell me - in Kicad, are schematic symbols with power attributes always global or sometimes local ? I read in the help file under complex hiearchy section " The only connections between the root sheet and the subsheets are global power connections made with [power symbols](https://docs.kicad.org/master/en/eeschema/eeschema.html#power-symbols)."
so, clarification for me pls : * do the power symbols acquire global visibility in all hiearchy types in Kicad ? *
I ask the question because in Altium, its a bit different :
If the project is "Flat " - nets and power ports are global.
If the project has “Normal hierarchy” - nets are local and power ports are global.
By this I mean that there is no need to use inter sheet connectors to use them.
Then, there is a third type- ‘strict hierarchy’ where power ports are local to that sheet only.
KiCad does not (at the moment) have schematic configuration options that change the rules of how connectivity works. So there is no equivalent to this Altium “flat” vs “* hierarchy”: Power symbols always create global nets in KiCad.
Well, I found that of course. That is easy. But it is only the top level starting point to all of help. I was referring specifically to “…the documentation for power symbols…”. there wasn’t any topic I could find that explained how this works.
Given all the confusion around this topic and how many people are struggling with it, I find something like a ‘Getting started with power symbols’ write up, perhaps right in the getting started with KiCAD guide would be a welcome thing.
Directly from the Schematic editor documentation. I don’t know what you would need to make it any clearer.
Power symbols are symbols that are conventionally used to represent a connection to a power net, such as VCC or GND. In addition to being a visual indicator that the attached net is a power rail, power symbols make global connections: two power symbols with the same pin name connect to each other anywhere in the schematic, regardless of sheet.
And that’s fine. I’ve never used Altium strict hierarchy, nor do I use flat.
In fact, from my very strict and disclipined POV, there is only one type I use- Normal Hierarchy. (net names are local, power symbols global). It enforces structured connectivity for nets.
I know that many ops prefer the simple life and flat suits them. For me that potentially leads to unconnected objects (nets that I forgot to connect that would otherwise generate an ERC error because they lacked a explicit connection to another sheet) .
As your questions mostly targets the internals/creation of power symbols I would recommend the chapter about the library editor, section " Creating Power Symbols". All information answered in this thread could also be found in the documentation, so it’s only a matter of reading all information. Admittedly this might be boring, because it’s much information.
As you said you have experience with eagle:
handle power symbols in kicad like supply symbols in eagle. Copy existing power symbols, rename the internal pinname for the name of the power-net.
@mf_ibfeew@gkeeth yes, that is what I was looking for. It didn’t enter my mind looking under the schematic editor, as this is about defining symbols. But anyway this seems to have all I was looking for. Including the other weird thing I found, which is that the pins seemed to be all defined invisible. I couldn’t figure why that was done but had a suspicion that was part of the special conventions about power symbols. This must be the place I saw mentioned some place but failed to locate.
Strange that all sorts of searches inside the info website and google searches did not find this place. Sometimes it really comes down to using just the right search term(s).
One last comment to add. So the section under the schematic editor “Creating Power Symbols” appears to contain all the gory details, which is exactly what I was looking for. It also suggests, as some commenters here have as well, to start by copying an existing power symbol.
This is of course what I did, and probably what most people would do naturally, for simplicity sake. The problem here is that if one does that with a power symbol library that did not originally come with KiCAD (as in my case) and that library or any particular symbol in it one happens to copy contains a mistake, that problem is perpetuated. Not having originally defined the symbols and thus lacking understanding of the details, one is quite helpless in fixing any problems that crop up as a result.
Personally I prefer understanding these things in depth.
That may have been a small part of the problem, but I’m guessing that a bigger part is:
It takes some time to get get to know (and work efficiently) with any program with the complexity of KiCad. And when you combine that with time pressure to “get things done” you have a recipe for frustration. With a bit more experience with KiCad it’s easy to spot such problems, and then either:
Fix those non-custom symbols.
Use: Schematic Editor / Tools / Edit Symbol Library Links to replace the “defective” power symbols with symbols from the default library.
Add some PWR_FLAG symbols in the right locations.
(Or a combination of the above).
I hope (expect) you KiCad experience will become more pleasant for you too when you’ve gained some more experience.
Yep. As I wrote somewhere in this thread, I am in the process of fixing all that -as time permits- but I am doing quite well actually. Monday is again ‘power symbol day’. With the correct information at my fingertips I am sure it’s fixed in less than an hour.
About the rest: to be honest, KiCAD is a much more pleasant experience than any of the other EDA tools I have used. I am sure I will grow to love it.