Platforms Specifics

Provided here is specific information and details pertaining to supported platforms and its performance on Atmosphere. Due to limitations or design restrictions built into some hardware, there may be unexpected behavior when using these platforms with Atmosphere.

Espressif ESP32

The Espressif ESP32 is a hybrid Wi-Fi and Bluetooth Low Energy (BLE) chip used in several products and IoT solutions.

Wi-Fi/BLE Co-existence Limitations

The ESP32 can operate both Wi-Fi and BLE at the same time, however, it greatly disrupts the stability of the BLE connection to the device. As a result, Atmosphere’s embedded framework automatically disconnects from a Wi-Fi connection whenever a BLE connection is established.

This prevents any cloud events directly sent from the embedded device from getting to the cloud on the primary embedded cloud interface. Once the device’s BLE connection is disconnected, it automatically reconnects over Wi-Fi.

Unavailable ADC2 During Wi-Fi Connection

The ESP-IDF SDK (and possibly the ESP32 hardware) has a limitation where a Wi-Fi connection interferes with the device’s ability to read data from an ADC pin reading from ADC channel 2.

The I/O pins affected by this include the following:

  • IO27
  • IO26
  • IO25
  • IO15
  • IO14
  • IO13
  • IO12
  • IO4
  • IO2
  • IO0

If you wish to use any of these pins for ADC, you must not have Wi-Fi enabled at the time you attempt to make a reading from them. These pins do continue to work as expected while BLE is running.

For more information on this issue, view the forum post on Espressif’s website at Espressif ESP32 Forum: “When will support for ADC2 (with Wi-Fi) be added?”

There is currently a conversation on the Arduino-ESP32 GitHub tracker that addresses this as well: GitHub: Arduino-ESP32 Issues 102.