Improved Pin names for Mbed boards

Mbed OS 6.10 introduces a new standard for the definition and usage of pin-names.

We’d like to capture here feedback and interest for contributions in this area.

Update: we’ve published a blog post with an overview and link to relevant resources

I’ve seen a lot of discussions on github, that sounds great! Can you post some documentation to review here, it’s a bit hard to find what’s the most up to date


  • I welcome change names of USBTX / USBRX to CONSOLE_TX / CONSOLE_RX it seems to be more clear.
  • Also the rules about position of SPI,I2C and UART on corresponding pins of Arduino header is good.
  • What I not understand is long and pointless ARDUINO_UNO_XXX prefix for all pins. From my point of view all interested people know the masks Dxx and Ax are from the Arduino header.

BTW, it seems most non-Arduino boards with Arduino header not corresponding with Arduino Uno header. Non-Arduino boards use pin name D14 and D15 for I2C but according to Arduino Uno Rev 3 are D14 and D15 assigned to analog pins A0 and A1. The I2C is assigned under pins D18 and D19 which are also A4 and A5.

BR, Jan

Thanks Jan for the feedback.

We discussed with the working group on how to approach pin-names, specifically for the Arduino Uno connector. The main problem was the lack of portability of applications that make usage of the Arduino Uno pins.

Some boards don’t have Arduino Uno connectors. Other have, but aren’t really compliant.
There might be other connectors (e.g. PMOD, Click, etc) and we want to differentiate these pins.

Regarding the SCL/SDA pins, the Rev3 standard defines them near the USB connector as shown in the developer guide, hence it shouldn’t be a problem. Perhaps @facchinm and team want to comment?

Dx/Ax pins continue to be available as generic signals, although we won’t be able to ensure that all applications will work well with all boards due to the diversity of connectors. Hope it helps?