Having an issue with a pin conflict flagged by the ERC in the schematic.
It seems to think two power outputs are connected to the same net, however they are connected to two power parts with different labels (3V3 and 1.5V)…
See image
Any idea how I can create separate power nets for arbitrary power levels?
Thanks!
Check the definition of the 3.3V symbol; the pin should be a “Power IN”. If it is a “Power OUT” then that would conflict with the OUT pin of your IC.
It’s power in. The issue is that for some reason it thinks that the 1.5 and the 3.3 are connected to the same power net but you can see from the schematic that they are not… Os the fact that the symbols both have different labels enough or so I need to uniquely identify them in some other way?
Ahh worked it out!
The two were indeed connected. I thought I could just drop the power part and rename it to given it a different net. Turns out I needed to create a new part on the library (by copying the old one).
Is there a better way to do this???
Unfortunately no, but it’s easy enough to copy/edit/save a symbol and even if your project had 20 different supply voltages it wouldn’t be such a big problem.
There must be a bit more to it. I have three nets, +5V, +10V and -5V that ERC considers connected. I have three separate symbols in my library.I looked at the schematic and library files, and extracted the relevant symbols. The results are below. They look okay, but there has to still be something wrong (probably in my understanding!):
****** From Schematic *************
$Comp
L +5V #PWR0273
U 1 1 55B2AD86
P 5550 2700
F 0 “#PWR0273” H 5550 2790 20 0001 C CNN
F 1 “+5V” H 5550 2790 30 0000 C CNN
F 2 “” H 5550 2700 60 0000 C CNN
F 3 “” H 5550 2700 60 0000 C CNN
1 5550 2700
0 1 1 0
$EndComp
$Comp
L -5V #PWR0275
U 1 1 55B2AE6D
P 9500 2750
F 0 “#PWR0275” H 9500 2840 20 0001 C CNN
F 1 “-5V” H 9500 2840 30 0000 C CNN
F 2 “” H 9500 2750 60 0000 C CNN
F 3 “” H 9500 2750 60 0000 C CNN
1 9500 2750
0 1 1 0
$EndComp
$Comp
L +10V #PWR0277
U 1 1 55B00963
P 6650 3600
F 0 “#PWR0277” H 6650 3690 20 0001 C CNN
F 1 “+10V” H 6650 3690 30 0000 C CNN
F 2 “” H 6650 3600 60 0000 C CNN
F 3 “” H 6650 3600 60 0000 C CNN
1 6650 3600
1 0 0 -1
$EndComp
***** From Library *****
+5V
DEF +5V #PWR 0 40 Y Y 1 F P
F0 “#PWR” 0 90 20 H I C CNN
F1 “+5V” 0 90 30 H V C CNN
F2 “” 0 0 60 H V C CNN
F3 “” 0 0 60 H V C CNN
DRAW
X +5V 1 0 0 0 U 20 20 0 0 W N
C 0 50 20 0 1 0 N
P 4 0 1 0 0 0 0 30 0 30 0 30 N
ENDDRAW
ENDDEF
-5V
DEF -5V #PWR 0 40 Y Y 1 F P
F0 “#PWR” 0 90 20 H I C CNN
F1 “-5V” 0 90 30 H V C CNN
F2 “” 0 0 60 H V C CNN
F3 “” 0 0 60 H V C CNN
DRAW
X +5V 1 0 0 0 U 20 20 0 0 W N
C 0 50 20 0 1 0 N
P 4 0 1 0 0 0 0 30 0 30 0 30 N
ENDDRAW
ENDDEF
+10V
DEF +10V #PWR 0 40 Y Y 1 F P
F0 “#PWR” 0 90 20 H I C CNN
F1 “+10V” 0 90 30 H V C CNN
F2 “” 0 0 60 H V C CNN
F3 “” 0 0 60 H V C CNN
DRAW
X +5V 1 0 0 0 U 20 20 0 0 W N
C 0 50 20 0 1 0 N
P 4 0 1 0 0 0 0 30 0 30 0 30 N
ENDDRAW
ENDDEF
This is a screen-scrape. It is a pretty large project. I will try to bring it down to the simplest possible that shows the problem.
This simplified version also shows the problem. A screen scrape and the project files attached. I am a relative noob, so I hope these are what is needed!
RFX002_M5.sch (36.6 KB)
simplified-cache.lib (12.0 KB)
simplified.pro (1.6 KB)
I checked it over… what version of KiCAD are you running?
The power symbols for 13.8V, 12V, 5V, -5V and GND must have been messed up a bit.
I replaced them all with symbols out of the power library from r6097.
The errors then vanish (see attached project).
Left are some minor probs, for example MC79M05BDTG on pin 1 wants something to drive it or LM392-N pin 2 has the same problem on this sheet, but maybe it driven from somewhere else…
simplified.zip (12.7 KB)
Thanks for the answer.
I am using Version(2015-09-08 BZR 6170, Git 6269158)-product,release build.
Win 7, 64-bit pro.
I assume r6097 must refer to an earlier release? Maybe I can find it somewhere.
I see that the symbols for the cache you sent have an extra line in them, in the DRAW-ENDDRAW block. It does have the name in there, so maybe it is the problem.
I copied them across- I noticed that line starting with X had +5V in very case. After straightening that ll out, it still does not get rid of the ERC errors.
I now notice there are a large number of parts with RESCUE in the name, like this:
L GND-RESCUE-RFX002_EER_Modulator #PWR0274
They weren’t there before, and I can’t seem to find what they mean. Maybe I should write a Python script to find them and eliminate them? Is this a safe thing to do?
If I eliminate the RESCUE parts, I get hundreds of red rectangles with two question marks in each. If I put the RESCUE parts back, it sort of looks okay, but if I examine them using E, then it puts a long string on the schematic, along these lines:
+10V-RESCUE-RFX002_EER_Modulator
Instead of simply +10V. Apparently this is a really hard problem, I appreciate the suggestions, but right now I am simply taking stabs in the dark!
These RESCUE parts seem to be a real problem. Once they are in your cache, there seems to be no way to get rid of them. If you eliminate them or re-name them, you get the red rectangles with question marks. There ought to be a way to tell EESCHEMA to use the parts from my library instead of any in the cache that have RESCUE in them. My project is 6 pages with around 400 parts, so starting from scratch here is not an option.
OTOH I am getting much better at using Notepad++ and writing Python scripts!
You didn’t mix the file/project I uploaded with the one you have been working on, did you? And you have a backup of the stuff you’re working on, right?
As for why your KiCAD is doing things differently to mine, no idea, sorry.
I think when I opened your file mine said something about your symbols being from some older version or something…
Ok, reloading it:
The following libraries were not found:
C:\RFeX\EER2015\CAD\EER_lib
C:\RFeX\EER2015\CAD\C0402_X8R
C:\RFeX\EER2015\CAD\C0603_C0G
C:\RFeX\EER2015\CAD\C0603_PPS
C:\RFeX\EER2015\CAD\C0603_X8R
C:\RFeX\EER2015\CAD\C0805_PPS
C:\RFeX\EER2015\CAD\C0805_X8R
C:\RFeX\EER2015\CAD\C1206_X8R
C:\RFeX\EER2015\CAD\C1210_X7R
C:\RFeX\EER2015\CAD\C1210_X8R
And then it want’s me to rescue some components… see pic attached.
After that the schematic opens and there are boxes with questionmarks for all the GND symbols there.
I wish I had backed it up before accepting the “RESCUE” help! Now I have around 150 or so components with the long names containing RESCUE. It looks like if I move the cache to the bottom of the library list, and my desired symbols to the top, then I can open each schematic file in my project with Notepad++ and do a Find/Replace on all the offending strings, that will sort of reset things. I still have to go through and check to see if the string in the F 1 line agrees with the name on the L line…
I see there is a “Reset to library defaults” option when editing, but that means clicking on every component! It would be nice if there was a way to do this for the entire project (this is, in effect, what I am doing using a text editor). So a few days delay in the project while I get this straightened out.
A lot of this is spending time experimenting, like the blind men and the elephant, trying to figure out what EESCHEMA is doing. For instance, I see that the library list is repeated at the top of the file for every schematic in a project- my impression was that this was set once for the entire project, but maybe that is not so? I will have carefully check and see whether you have to set the library list (and its order) for each schematic in the project. That would have huge implications. And what happens if you edit the order of the libraries manually, and they get out of sync?
Anyway, thanks for looking at this, at least it appears I am not missing anything totally obvious.
Okay, that was easier than I thought- Notepad++ has a “Replace in all open files” feature. So I opened all 6 of my schematics, and it did not take long to search for anything that had “rescue” in it and do a Replace in all the files. So finally the ERC passes more-or less cleanly, except for the parallel gates! (Which I will ignore). Yay!
(and now I will do a backup!!!)