Inter-sheet reference error

We are using Kicad to document a ride-on model railway signalling system and are using our own laptops to work on Kicad projects of different parts of the system. We find inter-sheet references very helpful but, if we are to continue using them, we need to fix the problem described below, which is only afflicting some of our computers

We have recently upgraded from V7 to V8.0.1. The problem is occurring on a Windows 10 computers and a Linux computer. We’ve been using our private Github repository so we are all using the same version of the Kicad projects.

We are using Kicad buses to represent cables. In the following screenshots, cable CT1 is highlighted, the sheet numbers can be seen in the Schematic Heirarchy on the left of the screenshots as 1, 2 and 6 but the problem is that inter-sheet references are showing sheets 1, 3 and 5.

Here’s the zipped project file. This project was added to the repository unzipped before we updated to Kicad V8 and this zip file has been created by copying those files onto my laptop and opening then closing the project from Kicad 8.
ACR Tunnel-2024-08-07_114010.zip (74.4 KB)

On the problem Windows 10 computer we have tried quite a few things to investigate this, including uninstalling Kicad and its Windows app files then reinstalling it, so Kicad 8.0.4 is now on that computer but the problem persists.

For the problem Windows 10 computer the “Copy Version Info” is:

*Application: KiCad Schematic Editor x64 on x64*

*Version: 8.0.4, release build*

*Libraries:*

*wxWidgets 3.2.5*

*FreeType 2.12.1*

*HarfBuzz 8.3.0*

*FontConfig 2.14.2*

*libcurl/8.5.0-DEV Schannel zlib/1.3*

*Platform: Windows 11 (build 22631), 64-bit edition, 64 bit, Little endian, wxMSW*

*OpenGL: Intel, Intel(R) Iris(R) Xe Graphics, 4.6.0 - Build 31.0.101.4255*

*Build Info:*

*Date: Jul 17 2024 03:26:47*

*wxWidgets: 3.2.5 (wchar_t,wx containers)*

*Boost: 1.83.0*

*OCC: 7.8.1*

*Curl: 8.5.0-DEV*

*ngspice: 42*

*Compiler: Visual C++ 1939 without C++ ABI*

*Build settings:*

For the Linux computer the "Copy Version Info" is:

*Application: KiCad Schematic Editor x86_64 on x86_64*

*Version: 8.0.4, release build*

*Libraries:*

*wxWidgets 3.2.5*

*FreeType 2.13.2*

*HarfBuzz 8.1.1*

*FontConfig 2.15.0*

*libcurl/8.8.0-DEV OpenSSL/3.1.6 zlib/1.3.1 libidn2/2.3.4*

*libpsl/0.21.2 nghttp2/1.58.0*

*Platform: Freedesktop SDK 23.08 (Flatpak runtime), 64 bit, Little*

*endian, wxGTK, X11, pop, x11*

*OpenGL: AMD, AMD Radeon RX 6900 XT (radeonsi, navi21, LLVM 17.0.6, DRM*

*3.57, 6.9.3-76060903-generic), 4.6 (Compatibility Profile) Mesa 24.1.3*

*(git-0c49f54c76)*

*Build Info:*

*Date: Jul 17 2024 04:02:12*

*wxWidgets: 3.2.5 (wchar_t,wx containers) GTK+ 3.24*

*Boost: 1.85.0*

*OCC: 7.7.2*

*Curl: 8.8.0-DEV*

*ngspice: 43*

*Compiler: GCC 13.2.0 with C++ ABI 1018*

*Build settings:*

What can we do?

Mod: Edited your version info to put in a code block so that it’s easier to read.

First some general remarks.

Your way of drawing a schematic is … unusual. You are using a hierarchical design, but you are not using hierarchical labels or hierarchical sheet connectors. And as a result, it is not really a hierarchical design. If you use hierarchical labels (and hierarchical sheet connectors) then routing through the hierarcy is ensured.

When you use global labels, then they are visible everywhere. When you use an alias list in a global label, then all labels of that alias list become global labels on each sheet the global label is used. This is not mentioned in the manual. I discovered this a few days ago. More about this subject in: Tying Globals to Buses across Pages - #12 by paulvdh

When you see things like this:
image
it means KiCad does not recognize the connection. The green circle on the bus connector is an “open end”, and the colored square on the label also indicates the label is not connected. (The “not connected” square of labels have weird colors sometimes. bit of a nuisance / mini bug).


Inter-Sheet Reference Bug.

First, yes, it looks like a bug to me. At first I suspected it was related to the alias list, but then I created two global labels “asdf”. I put one on page 6 and the other on page 2.

The label on page 2 points to page 5:
image

The label on page 6 points to page 3:
image

And following the links indeed go to the wrong page.
I also tried renumbering all pages to “double digit numbers” but the problem persists:

I think this should be reported on gitlab. I do recall some bugs that have been fixed related to page numbering, but can’t remember any specifics.

Regarding this issue, I made a comment on:

I think it’s related, but I’m not sure.

Thanks. I’ve tried reporting things on Gitlab before but their log-on sequence only seem to be relevant to people who want to join one if their teams and take part in one of their projects. At you suggestion I’ve tried again and stopped at the same point. All I want to do is report the problem. How do I do that?

Not so. It’s possible to use your account to report issues, you don’t have to join any projects or have any of your own.

I have account at Gitlab but I have never joined anything there and didn’t took part in any project.
Among favorite links in Opera I have this one:

Don’t know where from I got this but to go to gitlab I always use it and only it. I think that if you start somewhere else you may be can be lost were to go. I have never tried it.
After Signing In I just click [New Issue] button on the right and fill bug report.
I am doing it manually as I do it from Win7 PC so no KiCad V8 here.

Once (year or so ago) I reported a bug from Win10 PC so having KiCad there. Those time I started it from KiCad menu: ‘Help’-‘Report Bug’ and it also was successful.

You do need an account at gitlab and you have to be logged in but as far as I know those are the only restrictions. It has been years ago that I did this though. I vaguely remember a change on gitlab which made authentication more difficult, but I already had an account and this did not affect me.

KiCad kind of forces one to do this approach, as Inter-Sheet references only work on global labels. But when do you need inter-sheet references? On hierarchical schematics. This design decision forces users to decide between inter sheet references for better readability in printed schematics, or the correct use of hierarchical labels for better readability in kicad itself.

Im standing at exactly this problem in some of my projects. For example, my recration of the Commodore High Speed Graphik board for the PET line of computers: GitHub - InsaneDruid/Low-Speed-Graphik: A 100% compatible replica of the HSG graphics board for the CBM 8032, 4016 & 4032 (12 inch monitor)) I really would love to have inter sheet references to aid readability in the pdf (and also in Kicad itself, to not rely on the net highlighter and the detour over the main page when navigating connectoons), but its impossible to do it right, at least at the moment. Plus the current bug making inter sheet references completely unusable at the moment due to them leading to the wrong pages.

I cloned that low-speed graphic project and had a look at the schematic. The schematic of this project looks very good. Well organized and readable.

Sidenote, “CBM8032” finds Robert Henke on youtube: https://www.youtube.com/watch?v=CY1RAs7x74w

It is not clear to me how inter sheet references would help much for that schematic. It’s only one level of hierarchy and you can easily navigate through the hierarchy either by double clicking on a sheet, or by clicking on sheet names in the hierarchy navigator. How do page numbers help (much) in such a case?

If I had to choose, I would use hierarchical labels (nearly) always, as drawing a schematic in a hierarchical way automatically adds structure, and I find this much more important then page numbers. Also, if you (ab) use global labels as hierarchical labels you’re pretty much stuck with them. If you want inter-sheet references in hierarchical labels, it’s better to upvote:

Edit: In addition
Currently, inter-sheet references are broken. After a bunch of detective work I got quite close to the root cause and made it easy to reproduce, so I created a gitlab issue for it:

1 Like

For navigation in KiCad itself it would not add tremendous amounts of benefit. Sure. But when printed out or also just for the pdf version it would be night and day. For those cases the depth of the hierarchy doesn’t really matter, but sheet count itself does. So more for uses where the Schematic is not purely for developing the PCB, but also for documentation, or cases where the schematic itself is the main goal of the project (like bit-preserve/Commodore at main · baldengineer/bit-preserve · GitHub ) or cases where reverse engineered schematics of vintage computer parts are used to trouble shoot the original. For that, it would be really nice to have inter sheet references, like for example commodore drew in all its schematics.

Thanks for all the contributions.
We’re like two of the cases that InsaneDruid describes. The schematic editor is being used to document the existing site wiring at the model railway, so we won’t be going to PCBs and also, we need the printouts on site for troubleshooting because sometimes we don’t bring our laptops to site.
Pauldvh - thanks for putting this on GitLab and also for the GitLab issue about inter-sheet references for hierarchical labels. We had initially considered using hierarchical labels but dropped the idea because that wouldn’t put inter-sheet references on the printed documentation.

Yea - seems that something went wrong with Kicad 8.0.5 and intersheet references. See vid here: https://www.youtube.com/watch?v=kom5-ANQk6g

Was this fixed in 8.0.6?

Take a look at the GitLab issues linked above . . . are they still open or closed ?

Looks closed but Seth mentions 8.0.7 milestone. So we’ll see. I hope they make it so that it also zooms and/or highlights the port on the page it jumps to…

The fix for this issue was committed 2 days ago, so it will be in the next release (8.0.7). If there is some further functionality you’d like the devs to consider, please add a feature request in Gitlab (KiCad / KiCad Source Code / kicad · GitLab).