Where is the documentation for how to define a bus in 6.x?

I made a minor update to a schematic that has two buses (address, data), and ERC throws a bunch of errors saying that a given net is graphically connected to but is not a member of the bus.

So how do I update the buses so they play nice in 6.x? Documentation is still written for 5.x.

(6.0.4, macOS)

The question is very unspecific. So as general answer look at the busses-section of the documentation:

A short summary for bus-definitions can also be found in every label-properties-dialog. There is a shortcut to “Syntax help” which also shows some basic types of bus-definitions

1 Like

I don’t think the question is unspecific. KiCad buses do require net labels for every entry. Therefore they are connected anyway. Buses only serve aesthetic purposes. You can cut the bus short and do not need to connect the bus sections. Having said that if you connect net names not complying with KiCad bus namimg convention (name ending with numbers at the end with no replicated number) you will get the warning ‘signal connected to bus but does not belong’ warning messages do appear. One can simply ignore them. However, in version 6 there is an item called Bus Definitions in the tools menu where you can assign net names to a given bus name. I have tried it and it seems do the bus assignment. However, I have not been able to attach this bus name to bus sections by labels, hierarchical labels or global labels as one would naturally expect. This menu seems to be very useful and correct way to handle buses provided there is a way to attach the constructed bus lists (with the net names assigned in the menu) to physical bus sections on the schematic. I will be obliged if someone can explain.

You can ignore them, but the appearance of those messages should already have made it clear that KiCad is aware of connections to buses.

There is some more info in this thread:

And I attached a little test project which brings a bus though a hierarchy in this thread:

KiCAD 6 bus naming needs two elements:
All bus entry/exit connections must be labelled. This is no different from earlier versions.
The bus itself must be labelled. There are two ways to do this:
1: If you have a data bus with the entry/exits D0, D1, D2 … D7, the bus could be labelled D[0…7].
2: If you have a bus with entry/exits like TX, RX, CTS, RTS, the bus can be labelled {TX RX CTS RTS} or SERIAL{TX RX CTS RTS}.
Note the difference between square brackets and curly brackets.
This will get rid of ERC Warnings.

Cheers.

EDIT: the really smart editor on this web page unfortunately converts a double-point (. .) to an ellipsis (…). Double-point for the data bus example is correct.

2 Likes

Thank you very much for explaining the use of curly brackets for non sequential bus entries. What I am wondering is since this can be done by the Bus Definition utility of V6 why can’t we simply use the bus name? The bus class for the alias in question is already defined in KiCad anyway. Thanks again.

Here I’m over my head. I’m just a user, not a developer.

KiCad leaves it up to you which method you want to use.
A Vector bus (with the square brackets and two dots) are the simplest.
A Group bus has all the names spelled out between curly braces, but when you want to use such a bus on multiple pages (or just shorten it’s name) you can use the Alias system and then just use the alias name on the bus itself.

It’s all explained in the manual: Schematic Editor / Help / Help and then chapter 6.5.3 (Or just search for “bus” in the manual).

1 Like

Thanks again. I tried it with the following results.

  • As before labeling of each entry and exit ensures connectivity. Connection to bus do not matter
  • However, if the bus is not named then one gets the ‘Connected to bus no net’ message as would be expected.
  • Naming the bus with correct entry definition gives the checking advantage whether any wrong entries are connected to the bus.
  • You do not need to define the bus at the hierarchical origin necessarily but must define a section of it with global labels somewhere (once only - preferably on the actual sheet). All error ERC messages disappear and the netlist file seems to look fine
  • This is what we also had before V6. I played with the bus definition utility of V6 but doesn’t seem to have any effect on above operations. I am working on it. Probably (and hopefully) the utility will let us define the bus once there and let us just use the name without any brackets and log lists at all! There must be some V6 user manuals somewhere. Thanks and best regards to all.
1 Like

p.s. I have just noticed Paul’s help and ch. 6.5.3 comment. I will look into these sources. Thanks.

Thanks for your effort and feedback, that’s helpful to me as well, especially the hierachical part. I haven’t worked with that before.

I’ve been playing a bit more with these buses.
If you have a bus with named members, then you can right click on the bus, and choose “Unfold from Bus” and select a name from the list, and I think this is new in KiCad V6.
image

I’ve also added some aliases to my example, and grouped them under the name “BBUUSS”. And these aliases can be used as a separate bus, or as a part in a group bus.
Note the: Music.Gretl name.

The example is just two instances of a hierarchical sheet, connected on the root sheet, but with the Truck and BUS signals cross-linked. The example is free from ERC violations.

2022-07-06_asdf_hierarchical.zip (13.6 KB)

2 Likes

Thanks very much for the information Paulvdh I have checked the bus definition from the manual (not available in my installation but can reach it on the web). Everything works perfectly with ‘Bus Definition’ option. All that’s needed is to create the bus label with the alias inside curly brackets. Much preferable to vector or group bus definitions. If any modifications are needed for the bus doing it once at the definition table is all to it. Sequential nets members and single group members are also mixable as with labels. ‘Unfold bus signal’ option with ‘C’ shortcut key is also a very efficient time saver.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.