Placing wires driving me crazy?


#1

What the heck am I doing wrong?

Simple task I thought placing wires in eeschema. Three issues:

  1. I place wires and they appear to connect fine however when I run a DRC it states a no connection.

    !

  2. I place a wire and no matter what it does is shows the connection has not been made show the circle and square at the junction.

  3. If I place a junction (which make the schematic look untidy) it still reports a DRC error.

It is not just this junction, probably approx 50% connect Ok yet the others are what I have detailed above.

I looked to see if there is a “snap to” function.

I have tried all grid settings current using 1.00mil. Been so particular where the crosshair is positioned before setting the wire and dropping it.

I must be not be seeing the forest for trees…its driving me nuts!

I am running;

Running Application: kicad
Version: (5.0.0), release build
Libraries:
wxWidgets 3.0.3
libcurl/7.54.1 OpenSSL/1.0.2l zlib/1.2.11 libssh2/1.8.0 nghttp2/1.23.1 librtmp/2.3
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.60.0
OpenCASCADE Community Edition: 6.8.0
Curl: 7.54.1
Compiler: GCC 7.1.0 with C++ ABI 1011

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_ACTION_MENU=OFF
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

Any help greatly appreciated.

Thanks,
Ian


#2

First. Did you alter the default grid? Not a good idea when doing general work. It’s OK to clean up label placement and such but the default grid ensures thing fall on the grid for connections.


#3

Yes Hermit guilty as charged. I didn’t realise that the grid spacing shouldn’t be changed.

If I change them now the grid doesn’t what to snap to the component connectors. I have obviously now placed some components on various grid pitches.

Any suggestion how best to recover from here?


#4

Start over or set the grid so some spacing that you can move what you have into a compatible format. Maybe change back to default and use that as a reference? If you change back to the default and place a component then you can figure out the adjustment needed. I’ve done that before. Kind of a pain but once you get something off of the original grid it doesn’t snap back to the original if you try and move it. That offset seems to remain. At least that was the way it was in V4. I haven’t made that mistake in V5 yet. :wink:


#5

Thanks Hermit…makes sense.

Anyone know what the default grid setting is in eeschema? I have played so much with my grid spacing I forgot what the default is.

If I start a new project now to see where the setting falls it is at 1.00mil which I don’t believe was default, it was the last grid size I used which lead me to posting this thread. Nice if there was a flag that came up warning of the consequences of changing grid sizes during a schematic capture.

Anyway be nice to know what the default grid setting is?


#6

default grid is 50 mils


#7

If you really want to recover what you have done already, it is possible to edit the sch file in a text editor. I also wrote a script to align schematic elements to a grid, it is probably rather buggy.

Unfortunately KiCad gives the user too much rope in this case, since users often fall into this trap. Not sure why anyone needs 1 mil grid. A warning would be a good idea, but snapping would be even better. eeschema is due for a revamp, so it would be a good idea to post these sort of issues on the bug tracker and hope they get addressed.


#8

http://docs.kicad-pcb.org/stable/en/getting_started_in_kicad.pdf
Page 13/46: “In general, it is recommended to use a grid of 50.0 mils for the schematic sheet.”


#9

It helps with the text if you want to make the schematic ‘pretty’.


#10

Or to place / move graphic lines or polygons accurately.


#11

Why do you need accurate lines in a schematic?


#12

Maybe not on a 1 mil grid, but on a sub-50 mil grid for sure.


#13

I only got down to 1mil grid out frustration and in an endeavour to overcome the connection errors I was getting.

I have started a new project file and rebuilt back to where I was when I got myself into trouble and all is well. I can not recall exactly what caused me to hop into the grid setting and get myself into the strife early today.

Suffice to say I will not be tempted to touch the grid setting again. I am not sure that setting the grids to 50mils as recommended is as important as not changing the setting mid project.


#14

The standard is to build the symbols on the 50mil grid so they are all on the same standard/grid. Just remember to keep any symbols you build on the same standard. :wink:


#15

Even more reason to flag or one step further have a lock down function on grid settings and globally at that.


#16

BTW, a slightly related question : I didn’t find an “align to grid” function in eeschema. Is there such a function ?
Hopefully in a “keep connections” flavour ?

Altium has the option, but connections are not dragged when a component is moved. After the move :
=> You can get some wires visually touching a pin but not actually connected.
=> Or you get extra little wire segments whenever a pin moves “into” a wire (you see new connection dots).
=> Worst case : you get new, unexpected connections if a pin is moved into an unrelated wire. No kidding !

Here is a little experiment in Altium, showing the symptoms: to make things easy, I switched the grid units from imperial to metric.Then, I selected everything (symbols and wires) and “aligned to grid”.

The base is no more connected and the emitter has moved slightly “into” the existing wire (the dangling segment is hidden under the dot).

Looks like Altium’s “realign” algorithm blindly aligns to grid symbol’s reference points and segment’s ends, without any connectivity constraints. Quite lame, IMHO.

Clever Kicad developers would never have done something like this ! :sunglasses:


#17

No.

The only automated way I know of is the script what I wrote. However, it is quite primitive, and does not analyse all the connection points which is necessary as you describe above to get a proper job. To do that is relatively straightforward but not a 10 minute task. There are also corner cases to deal with like a symbol that does not fit the grid, inserting extra wires to avoid sloping wires etc.

If anyone cares to improve it, the source is on github https://github.com/bobc/kicad-utils/tree/v5/scripts/KiCheckSchematic


#18

Hi Bob,

I checked the code, thanks for the pointer.

Yes, the devil is in the details…

Could “dragging” symbols (instead of “moving”) help to automagically maintain connectivity?


#19

Do you mean by the user, or from a script? There is no API access for eeschema currently, the equivalent function would need to be done by the script.


#20

By script.

Yes, I learned that real-time interaction through Python plugins is nor implemented.

P.S. I have been unable to find the eeschema Python API doc (Google’d every keyword combination I could think of).