2 busses get merged together

I have a problem on KiCad 8.0 where RX and TX lines are merged into a single TX and a single RX line, despite being on 2 different busses

You have local labels (over on the right of your screenshot) that connect them together.

All labels with the same name on the same sheet will be merged together.

Your bus labels on the left also don’t seem like they are actually bus labels. Maybe your intent was to define a bus containing TX and RX? In that case, your bus labels should be something like UART0{TX RX} and net labels should be UART0.TX and UART0.RX

Further reading: Schematic Editor | 8.0 | English | Documentation | KiCad

Thanks for the reply
That unfortunately creates another problem at a different point in the design where I need to cross between power domains


is it possible to keep the names of these signals without KiCad combining them into one net since they are parts of different busses?

No, that’s not how KiCad works. I recommend reading the user manual chapter I linked to about how electrical connections and labels work.

Euhm, yes, sort of.

You can name the bus itself. If you name the buses AAA and BBB, then the actual names become AAA.M0, AAA.M1, AAA.M2, BBB.M0 etc. Look in the manual for syntax details.

Unfortunately that does not work and nets are still only named M0, M1 and M2. This makes me wonder why busses are almost purely graphical and there aren’t bus scoped labels?

What @paulvdh wrote is the same as what I wrote in meaning: you can only keep KiCad from combining them together if you name them differently. Paul suggested naming the bus to differentiate them.

It does work if you do it correctly. Without screenshots or attached files of what you have tried, it is hard to say why it didn’t work for you.

Buses are not purely graphical, but also KiCad has a rule that any same-named labels on the same sheet connect together. Buses do not change this rule.

this is what I tried


but I now realized I propably misunderstood and still would have to change labels for individual signals

But why? I think a bus scoped label would fit into the current system. After all, there is a global scoped label, a sheet scoped label which can be brought to it’s parent sheet and a purely sheet scoped label (unless it’s a part of a bus with a higher scoped label), so I think it would make sense for a bus scoped label to exist.

The short answer is, because it has always been this way. There are many KiCad schematics out there that rely on the behavior of shorting together all instances of the same label on a given sheet, whether they are attached to a bus or not.

Your buses are not correctly labeled in the screenshot above, which will prevent bus-related ERC and bus unfolding from working. I recommend you read the manual chapter I linked earlier.

Indeed. Up to KiCad V5 the blue bus lines were purely eye candy, and KiCad completely relied on the labels, and from KiCad V6 on wards, this syntax is not legal anymore. If you run ERC you will get errors like: Warning: Net /M0 is graphically connected to bus / but is not a member of that bus.

In the new syntax, you have to label the bus itself too. It’s not very difficult, but it’s also not very intuitive, so read the manual part about buses as craftyjon suggests.