Alternate pin functions

From @dbrgn on Wed Jul 18 2018 16:07:09 GMT+0000 (UTC)

Are there any conventions on what alternate pin functions to list in a symbol?

For example, for the blue pill:

…I used the following descriptions:

However, the selection is quite arbitrary. For example, I included SPI and I²C but not CAN.

I wonder if we could solve this using either a convention, or even in the library format somehow. What if every pin could contain alternate functions that are tagged with the subsystem somehow? Then maybe someone developing a project that uses I²C and UART will see the corresponding pin functions, but someone working on a project that uses the CAN bus will see only those alternate functions instead.

Copied from original issue:


From @ubruhin on Wed Jul 18 2018 20:04:26 GMT+0000 (UTC)

Yeah maybe it would make sense to introduce a new concept for alternate functions. But keep in mind that this would be on Component scope, not on Symbol scope.

For the moment I would go with either completely without alternate function (just name pins “PA0”, “PA1” and so on) or maybe with slashes as separator (e.g. “PA0/CTS2/WKUP”)…

From @hephaisto on Wed Jul 18 2018 20:09:23 GMT+0000 (UTC)

There is already a similar system available: Having multiple symbol variants. Maybe it would be suitable to modify this system a bit? I was thinking about having e.g. a (SCK+MISO+MOSI)-Symbol that references three pins, but the same pins could also be referenced by a (GPIOA1+A2+A3)-Symbol.
The current system isn’t flexible enough for that, though.

From @ouabache on Thu Oct 25 2018 03:35:18 GMT+0000 (UTC)

You should also consider that with FPGA’s the chip designer doesn’t pick the pinout. They give the PCB designer a package and a list of pads and the board designer picks the pins. LibrePCB could develop a tool that let the board designer create the UCF file for the FPGA design.

John Eaton

It would be great if alternate pin functions would be a separate piece of information attached to the pin with a way to control what’s actually displayed. It probably makes sense to also allow the board designer to select actual pin function(s) used in his design as the rest is basically noise in most cases. I imagine allowing to show that information in an easy to understand way would be a huge boost to usability. Consider if the following different views were possible:

  • the symbol shows only the name of the pin.
  • the symbol shows the name of the pin and also the active function(s).
  • the symbol shows the name of the pin and also all possible functions (maybe an explosion view like the blue pill image above, enabled by some shortcut).

The schematics would be clean most of the time and yet if needed you could show all the information that’s present in the component and make decisions based on that.


Don’t forget that Symbol is drawn first :

And when you will activate some function it could look like that :

But yes alternate function information will help schematic comprehension.

And tooltips with alternate functions, can also be a simple option to solve this problem.

That’s a cool idea, although those won’t show up when printing the schematics. But might still be very useful for the schematics design phase.

Is there any guideline for pin naming of alternate function pin.
Do not find anything in documentation.


Right now we just use slashes to separate functions: PF6/nRESET or PF6/NRST.

For more discussion on inverted signals, see

It could be good if it was possible to load scripts, that can set all alternate pin functions.

Then it could load a ioc file from STM32CubeMX, and set all pin functions for you. That could be good as it is a standard for STM32 development.

People could also create other scrips that can set pin names for you automatically.