Arduino core for the ESP32
Clone or download
stickbreaker and me-no-dev Reduce resource requirements, Share Interrupt (#1877)
#1869 exposed a resource exhaustion issue. The current HAL layer for I2C support is designed to use a shared interrupt, But, during debugging to solve the interrupt overloading condition identified in #1588, and the generation of pr #1717, the interrupt allocation parameters were changed.  This change was unnecessary, the code will work successfully with shared interrupts.  So, there is no need to assign a private interrupt for each I2C peripheral.
Latest commit e5ea089 Sep 21, 2018

Arduino core for ESP32 WiFi chip Build Status

Need help or have a question? Join the chat at


Development Status

Latest stable release Release Version Release Date

Latest development release Development Version Development Date

Most of the framework is implemented. Most noticable is the missing analogWrite. While analogWrite is on it's way, there are a few other options that you can use:

  • 16 channels LEDC which is PWM
  • 8 channels SigmaDelta which uses SigmaDelta modulation
  • 2 channels DAC which gives real analog output

Installation Instructions

Decoding exceptions

You can use EspExceptionDecoder to get meaningful call trace.

Issue/Bug report template

Before reporting an issue, make sure you've searched for similar one that was already created. Also make sure to go through all the issues labelled as for reference.

Finally, if you're sure no one else had the issue, follow the ISSUE_TEMPLATE while reporting any issue.


Pin Functions


Sometimes to program ESP32 via serial you must keep GPIO0 LOW during the programming process