ESP32 C3 Supermini Pinout

The ESP32 C3 Super-mini with this pin-out is working find with me.

There is one important exception I found on this link: https://docs.espressif.com/projects/esp-idf/en/v4.3.5/esp32c3/api-reference/peripherals/adc.html, it stated the following notes:

  • Since the ADC2 module is also used by the Wi-Fi, reading operation of adc2_get_raw() may fail between esp_wifi_start() and esp_wifi_stop(). Use the return code to see whether the reading is successful.

  • A specific ADC module can only work under one operating mode at any one time, either Continuous Read Mode or Single Read Mode.

  • For continuous (DMA) read mode, the ADC sampling frequency (the sample_freq_hz member of adc_digi_config_t) should be within SOC_ADC_SAMPLE_FREQ_THRES_LOW and SOC_ADC_SAMPLE_FREQ_THRES_HIGH

  • ADC2 continuous (DMA) mode is no longer supported, due to hardware limitation. The results are not stable. This issue can be found in ESP32C3 Errata https://www.espressif.com/sites/default/files/documentation/esp32-c3_errata_en.pdf. For compatibility, you can enable CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 to force use ADC2.

  • ADC2 oneshot mode is no longer supported, due to hardware limitation. The results are not stable. This issue can be found in ESP32C3 Errata https://www.espressif.com/sites/default/files/documentation/esp32-c3_errata_en.pdf. For compatibility, you can enable CONFIG_ADC_ONESHOT_FORCE_USE_ADC2_ON_C3 to force use ADC2.

I used WiFi, I2c, Analog and Digital pins in one application all according to this pin-out, but avoiding using GPIO5 as ADC or not using it at all because it gave all kind of troubles.

I used Visual Studio Code and this platformio.ini is working fine for me:

  [env:esp32c3_supermini]
  platform = espressif32
  board = esp32-c3-devkitm-1
  board_build.mcu = esp32c3
  board_build.f_cpu = 160000000L
  framework = arduino
  build_flags =
   -D ARDUINO_USB_MODE=1
   -D ARDUINO_USB_CDC_ON_BOOT=1
   -D ARDUINO_ESP32C3_DEV=1