I wish easier way to match differential pair track lengths

A late Christmas present would be an easy way to tune/balance the length of each track of a differential pair.
Also tuning the whole length of a diff pair does not work well here.

Can you post screenshots, and/or an example project where you find the existing tools not easy to use or not working well?

Very good. I’ll take off our own parts, but I’ll have late lunch first. And they say its new year, and the time is 20.41, so not immediately.

Regards
Leif

I don’t do high speed designs and don’t use length matching except for some short experiments, but the last time I tried (a year or maybe two ago) it felt very clunky. The basic functionality of adding serpentine tracks to do length matching is present, but modifying them afterward because of other changes in routing was very cumbersome. One of the difficulties with this is that KiCad still can’t handle arcs in tracks very well.

I do not report (much) on this, because it’s a part I don’t know much about and feel others should be in a better position to improve this.

Edit:
Oops, mixing up differential pair routing and length matching. Apparently I’m loosing focus again, time to go do something else…

@paulvdh there is already an issue for making the tuning shapes editable after they are created. But, that has nothing to do with differential pairs specifically, so I’m also curious to hear more details about the original post.

I don’t understand the problem you’re having as matching lengths of, say Two tracks, is straight forward (if you now how to use the tools).

We’ve had similar posts before

Example below shows:
• track#1 = 127mm
• track#2, lengthen’d from 81mm to match #1 length of 127mm.

I guess I’ll leave it here with this:

If you have Two Tracks of Different Lengths and want to use the 'Differential Pair" tuning tool (though, that’s not needed to tune one track to another track’s length), then, you MUST define those two Track with the same Net Name and end them with + and - (or _P and_N).
Notice the Track names…

Then, you can use the Diff Pair tool, vid shows it
(Note: enter ‘0’ to make the lengths the same or enter a Value to add length to the track being tuned…

Sorry about my unclear wording, but I have had difficulties both with tuning differential routes/lines/tracks, and then making both lines of diff pair at same length. Now it looks like Raspberry Pi DSI display bus is not so picky about matching of lengths of clock and data pairs. But it it is very picky about wires in diff. pair.
Regards Leif
at 0.26 01.01.2023

maybe this will help

There were a bunch of bugfixes related to length tuning in the 6.99 nightly version.

Can you check if the issues you encounter are fixed in the nightlies, since you didn’t mention anything specific?

Note that if you save the project in 6.99, you won’t be able to open it in 6.0.

(I’ve received your example project)

To BlackCoffee
In your video it looks very easy. Here when I try, first nothing happens, then too much.
How did you get that info about a track. And it should easier to select the whole Track/net, especially when the track is long, and does not fit in the screen.

Yes. It is getting late here and I didn’t try to tune anything. That test project is not important, I could try 6.99 with it. But later this year.

Yes, it is as easy as it appears.

I’m at a loss in understanding your difficulty but, it’s a straight forward process - just need to ensure the settings and tools, track selection are recognized (thus, you may see my Mouse cursor jumping around (my hand movements) and re-selecting/clicking…

Selecting the Whole Track: Yes, window-boxing it is the way to go but, sometimes the starting point is within the item’s boundary (the Tracks boundary) so, I missed grabbing it and thus, a re-select.

After Tuning, a tack is broken unto segments, thus, needing more focus on selection and easier to miss grabbing something.

Does not fit in the screen? Zoom-In/Zoom-out… Pan and Window-Box…

How do I get the Info about the Track? You asked this in previous post and the answer is same, I use my Plugin (see link below dsa-t posted the link to it, as I have previously done in other posts…
can also use the ‘Inspect>Net Inspector’ if track is on net. Review your posts and my answers…

Sounds like one of the bugs that got fixed. In 6.0, you have to play with amplitude and spacing more to get what you want.

Looks like this plugin is from Kicad Trace Length Plugin - YouTube, also KiCAD RF tools has a Track Length plugin

Try U hotkey (Select/Expand Connection)

I installed 6.99
Some notes:
I found only length matching plug, and it has same problem as before, some kind of error message.

When I select a net/track and expand the selection with U, the track is selected, but I can’t immediately see its length.

There is a net inspector at inspect menu. Track lengths are there. If I click a track it is selected on the pcb screen but the display does not pan there. If I click a net on the pcb, it is not selected in the net inspector.

I’ll write down the lengths I want, and continue from that

But, I rerouted some routes/tracks and they became quite good. Both tracks in a pair are very close. We’ll see. I’ll try with copy of actual work file.

Edited.

If you press and hold the left mouse button over the toolbar icon, you’ll see more tools:
image

If you want to know the sum of lengths of selected track segments, then you’ll have to use one of the plugins currently.

If you select a single track segment, then the message bar will show something like this:

image

You’ll usually want the “Full Length” from the first variant and “Router Length” from the second.

The lengths in the tuning tools are calculated by finding point-to-point paths (from one pad/junction/end to another). It’s important that the connections are exact, otherwise you’ll get miscalculations (use U to check).

If you presume you have a point-to-point path, but the length in the message bar doesn’t match the length shown in length tuning tools, then usually there’s a stub somewhere along the track line, or the connections are not exact.

Both the message bar and the length tuner calculations will clip the track segments that are coming in/out of pads, and add the via lengths based on distance between corresponding layers.
On the contrary, the Net Inspector dialog will just sum up all track segment lengths and via heights.

Tuning path of the length tuner shown as a blue line:

If the track doesn’t connect to the pad center exactly, an incorrect path will be used:

Track length plugins are useful for cross-checking the length tuner calculations (also be aware of via heights)

If you want to see the path the length tuner is tuning (graphics like in the above screenshot), you can create a text file named kicad_advanced (without extension) in %APPDATA%\kicad\6.99 or %APPDATA%\kicad\6.0 folder and put this content in it, then restart KiCad:

ShowRouterDebugGraphics=1

Hi
There is a problem with that plug-in or an exception.
image
If I understand this correctly, it complains about track class.

Diff routing seems to work well when there is plenty of room to route those tracks, but sooner or later it runs out of room. It is not not easy to fit two huge (relatively) vias in a tight place, and that seems to cause problems. The diff router should balance the pair during routing.

In general, it would help if a user could select the text in the info area at bottom of screen, and copy for instance lengths in the clipboard.

By the way, is there a good screen capture software to make a short video of routing.

I use OBS Studio (It’s possible to bind a hotkey to start/stop recording).