I seem to be having a problem tuning the skew on a few differential pairs. Some work, some don’t. The problem is if I click on the positive OR negative trace, BOTH report as being too long (The difference it reports is also different depending on which side I click.)
I have had this problem before and usually it was because a colinear trace piece or just be remaking the pair but this time it won’t go away and I’m not sure what to try…
EDIT: the routed lengths are 25.6327mm for P and 24.8934mm for N (0.7393mm delta). Full length 28.8727 and 28.1434 (0.7293 delta)
EDIT2: I also did some surveying of the other Differential pairs I have and several of them will report “too long” on one side and “tuned” on the other. I am using the _P and _N naming convention. Could it be a problem with KiCad not recognizing pairs properly?
Thanks for the reply. The spec I have shows pairs should be tuned to ±25mm and 0.15mm inside pairs.
Is there a way to tune everything at the same time? That might get KiCad out of whatever hole it seems to be stuck in…
My current theory is that somewhere internally the nets are messed up. Is there a cache or something I can clear for the board? I have reset the computer and tried in KiCad 6.99 with no luck. It may be because I changed to a Mini from Micro connector footprint and moved it. I forget what I did, but it updated all of the surrounding traces to the pads they were now wrongly touching and it set the net of the trace according to that. Which obviously was wrong… I deleted all of the traces and remade them, but perhaps something is still off? A bug maybe?
Routing seemed to go fine, but when I try to tune some pairs both claim they are longer than the other. For other pairs, one claims it is tuned while the other says it is too long. Only one or two pairs actually show the same number for both polarities. Very odd…
Of course this was a last minute change, too and now when I am supposed to be sending the design out I am stuck and don’t really know how to proceed!
EDIT: I tried the clean up tracks and vias tool a few more times (I usually use this fairly frequently to get rid of little sections hidden in a trace) and it seemed to help one of the pairs, but not all of them. One pair that I just noticed has a routed and full length difference of about 1mm. if I click with the skew tool, it shows they are off by 6mm! even worse, if I click on the lead I drew with the regular trace tool to connect it to the via/pad it says it is off by 32mm!!! if I click on the lead it still says it is the same net/netclass and the same routed and full length as the rest of the trace. Something is seriously wrong with this tool…
To make the process of identifying issues faster, consider posting your project as an attachment to the issue. You can set your issue to confidential when you make it so that only the developers can see it.
Can you make a test case out of this, zip it up and post it here first?
Probably several people will have a look at it and when someone else looks at it then you can get more certainty whether it’s a bug or some kind of user error or misinterpretation of a function.
Such a test case is also valuable for the developers on gitlab, and anything “mere users” can do to lessen the workload on the developers is a real contribution to the KiCad project in general.
Preferably, such a test case is a s simple as possible. For example just a HDMI connector and some HDMI driver chip, and all the rest of the schematic can be deleted.
I had already made a detailed report there. There doesn’t seem to be any interest there. I understand they are busy but this seems like a very important feature to be broken… There is a known issue regarding overlapping trace segments that has been reported for over a year and has not been addressed so I am not holding my breath.
In the meantime for anyone else suffering from this bug, my solution was to calculate the length of the longer trace and then use the length tune on the shorter one vs. using the skew tool. If you use the length tune tool on the longer trace it will usually give you a good length that you can then set in the tool and then use on the shorter trace. be careful though SOMETIMES it is off, so make sure to double check the final lengths to make sure they are correct afterwards. Also, after doing this, usually the skew tool will report that either both traces are longer or shorter than the other, but the number for the difference should at least match. If you read my bug report it shows that there seem to be several ways KiCad arrives at a trace length depending on the tool used and none of them seem to agree.
I have a feeling it is just a matter of when new features were added, the measuring functions were not re-used but likely new ones were created, possibly by different programmers. Essentially each tool has it’s own, but slightly different kind of tape measure and they don’t seem to be calibrated correctly.
I will try to make a test case later to help further development of the program, but right now I have to do some catch up for the time lost with this bug…
OK, I have deleted most of the non important elements and erased the length tuning. It is not exactly the same as the measurements I took above but it definitely showcases some errors. The HDMI and CSI interface pairs near the bottom of the board have lots of instances where clicking on one half will report completely different length than the other side.
Meanwhile, the Ethernet pairs above seem to be just fine. There are even a few with small overlaps, yet it seems ok? Weird…