Pcbnew - Inconsistencies between shove tool, clearance rule and collisions highlighting

I am teaching myself the use of KiCad. I’ve been spending over 2 weeks figuring some of the routing tools to little avail.

I have set a clearance rule of 0,05 in for my default net class (the only one I am using). I have manually connected a bunch of tracks crossing each other through vias (only 2 layers). Using either Shove or Walk around resulted in the program going haywire while visibly attempting to calculate something, without ever resulting.

I figured I could then simply use “Highlight collisions” and manually arrange my tracks to respect the 50 mils clearance, which didn’t seem so bad, like this: http://i.imgur.com/gT2YeI8.png

Which gave me the following: http://i.imgur.com/Bccbgb8.png

I went from the more inside tracks and work my way toward the outisde. However when running DRC I realized no tracks respected the 0,05 clearance. http://i.imgur.com/3XUpSDb.png giving an “ErrType(5)-Track near vi” error http://i.imgur.com/HvvbJaq.png

Confused, I made a drawing with a 0,05 width and compared it to the actual clearance, proving I was wrong even if no collisions was detected: http://i.imgur.com/8lLa4tZ.png

I gave another go at the Shove mode while dragging that particular via and sure enough it did move the offending track next to it: http://i.imgur.com/zi5dl4p.png

However when I placed the drawing to compare, it still showed to be too short: http://i.imgur.com/QjmdmPy.png
… and the new placement still failed DRC again: http://i.imgur.com/7pqYaxt.png


Here’s an overview of that particular area which I am trying to route: http://i.imgur.com/DQCa9tM.png I am running Windows 7, stable build 7601, version 4.0.2 from the installer. OpenGL canva

I have several questions but I would like to focus on how to align my track so that they will pass DRC and respect the 0,05in clearance. I don’t mind manually placing them (since Shove or Move around goes haywire) but I would like to get an indicative of how close I am to the tolerance. Any help would mean the world to me; I am quite eager to learn to use KiCad but I’m pulling my hair a bit here. Thanks!

You can lay down tracks in stages. (Go part of the way and left click to fix the previously chosen path.) This should speed up the solving time a lot.

I try to use shove only on rare occasions. Mostly only if i have to insert a via where there is no space left. (Using it excessively generates quite “interesting” results.)

Regarding your resulting problem:
Maybe the solver is not capable of spacing out so many tracks with conflicting violations at once.
I never tried to route with “allow DRC violations” turned on. But even without that, sometimes tracks can be to close to other tracks or vias/pads. (Most of the time the problem existed between tracks and vias/pads.) In most cases the difference between passing the DRC and violating it was optically indistinguishable. I fear there might be some sort of floating point problem hidden somewhere. (I use nightly builds and i don’t know if this problem exists in the stable version or even in current nightly builds. I haven’t designed a pcb within the last two month.)

For me the solution was always the following:
Delete conflicting tracks. Start from the inside out with walk around. (But only go part of the way in one go. Fix the track in between by left clicking.)
(Maybe use shove to get some space.)
DRC check in between.
Repeat if necessary.

Would be nice to have track clearance shown… but doesn’t seem to work in my similar aged BZR6608 version here either. Maybe the more recent nightlies have this in OpenGL (Default Canvas does show them)?

Hi,

Could you share (or send us in private) the PCB file that shows these problems?

Cheers,
Tom

I have noticed that when I place tracks in opengl I get drc errors. Then nudge the area with the push and shove router and the errors all go

I don’t know how to easily share my file so I just uploaded it here on google drive. It looks like a mess now since I tried to shove and walk around to experiment. The arrangement and pinout of my connectors is necessary (otherwise I wouldn’t be doing it this way…) and so is the spacing (I set 50 mil, but 30 mil needed actually). As you will notice in the file, I get repeatedly “ErrType(17)- Two track ends too close” which I understood is different than the two parallels track too close. I have no idea what this errors means; it kind of implies my track is ending but you will see it is not.

Rene: I find it more usable indeed to lay down track by parts, instead of dragging some immense length then having the solver wobble it around. I tried going from the inside and walking around, only it still doesn’t pass DRC.

Andy: Indeed it makes sense not to see the clearance, assuming the push-n-shove router works correctly and does not allow clearance violation. That’s what I’m hoping to do, but even though I made sure to keep unchecked “Allow DRC violations”, it reports DRC violations.

davidsrsb: Indeed what I am trying to achieve.

I realized that using the interactive router will almost never give a DRC violation when it comes to track clearance (I check using a 50 mil wide shape and sure enough it fits). They mostly come from a via or oddly enough the ErrType(17) error described above.

Update: This demonstrates (http://i.imgur.com/6NzgCRJ.png) that the via pad clearance is not taken into account but the track clearance is (left). Nudging the track just enough so it clears is obviously not enough so the via clears. There must be something wrong with my via pad clearance.

Thanks all

Andy: Indeed it makes sense not to see the clearance, assuming the push-n-shove router works correctly and does not allow clearance violation. That’s what I’m hoping to do, but even though I made sure to keep unchecked “Allow DRC violations”, it reports DRC violations.

In a short test, have seen once the Shove Router release a trace solution, that then fails DRC.
The problem seems to be a rounding one, as visually is close to being ok.

What is needed to help solve this sort of bug, is to have DRC report the actual violation distance.

A reported value also allows designers to workaround with a round-up on their settings, and gives designers better quality feedback.

Hi, I have the same problem to yours.

My diff pair settings are, width=0.16mm, clearance=0.24mm. The problem might be that floating point comparison is not accurate. The solution is change clearance a little bit smaller, for example, clearance=0.239999mm will solve this “tracks end too close” problem.

links to the bug: DRC violation with differential pair router