CircuitPython for the Metro ESP32-S2 uses different pin names than you may be used to. Many CircuitPython boards use the D prefix for digital pin names, such as D1 or D12. The pin names for the Metro ESP32-S2 use the IO prefix, such as IO1 or IO12.

The pin numbers on the Metro ESP32-S2 match the ESP32-S2 'low level chip pin numbers' that ESP32 users are most familiar with. The pins are not numbered like other typical Metro-shaped boards, so where you may expect pin 0 to be, its actually IO5.

We're not yet using D prefix names to avoid the confusion of having D-prefix names not match the IO pins.

The following pins have both the standard CircuitPython pin name and the IOx pin name available:

  • Analog pins A0-A5
  • Default I2C port SCL & SDA
  • Default SPI port SCK, MISO, MOSI
  • Default hardware Serial port RX, TX
  • LED (red LED)
  • NEOPIXEL (built in RGB LED)

Pin Name Diagram

The following diagram shows the standard CircuitPython pin names, the IO pin names, the singleton names and the debug/DFU pins.

This guide was first published on Nov 04, 2020. It was last updated on Jul 24, 2024.

This page (CircuitPython Pin Names) was last updated on Mar 08, 2024.

Text editor powered by tinymce.