Seen from the cable side it might look right, but seen from the IC side SSTX in an INPUT and SSRX in an OUTPUT. Since our PCB check has to run on the board and not on the cable, the libs needs to be fixed.
How do I report this?
I wouldn’t call all the the USB3 symbols ‘wrong’. As you note it’s a matter of perspective. If you don’t like their perspective, spawn new ones from your preferred perspective.
I don’t think it’s matter of perspective. There are two devices and device A’s Tx goes to device B’s Rx. Inside each device, however, the receptacle’s Tx goes to MCU Tx and Rx to Rx. The USB standard dictates the naming convention of the pins, it’s not a matter of our perspective.
So, if we have an MCU with Tx it must be type Output by definition. And this is the catch: we are talking about device internal data flow. The Tx of the receptacle doesn’t transmit to the other components of the circuit, it receives.
In the end we are not talking about viewpoints, we are talking about how KiCad ERC system and pin types work. There can be only one Output in each net. By definition the MCU Tx is this output. The other end in the schematic must therefore be Input for ERC to work correctly, and the receptacle symbol above is wrong. The USB standard gives us the pin names (Tx contra Rx) and KiCad ERC system gives the pin types (Output contra Input), there’s no room for other perspective or viewpoint.
Does this really change anything? As far as I can see, this is similar to describing an A<->B cable. In the A side there’s Tx which becomes Rx in the B side, and vice versa. But inside each device the logic is still the same: connector Tx goes to MCU Tx, Rx to Rx.
Pin 5 is Tx on B, but Rx on A. But both pin types are set to output, so that does not look right.
I never used USB3 in a design, but as I understand it. SSTX is an output on the IC, then an input on the pad of the connector, and an output on the connector part of the connector.
So this does not work for the B connector. Following KiCad’s ERC rules, it creates an ERC violation for two outputs connected together, and this is indeed an error in the symbol.
Never trust a stock library, double check with mfg. drawings, always.
Make you own symbols and foot prints, according to mfg. specs.
Save edits in your own custom lib.
Export your used parts with each project to a project specific library. Years later thing can be different, don’t ask me how I know.
Input and Output can mean two things: Destination or direction.