ESPDuino-32

The ESPDuino-32 is an ESP32-based development board from DOIT. This is a standard ESP32 development board but includes the added benefit of having an Arduino-compatible footprint able to connect with Arduino expansion boards.

Project Specifics

Having both BLE and Wi-Fi connectivity options, ESPDuino-32 projects include the following protocol elements:

BLECharacteristicElement icon for the element library

BLE Characteristic

BLEConnectionElement icon for the element library

BLE Connection

Wi-FiConnectionElement icon for the element library

Wi-Fi Connection

As is standard with any project type that uses Wi-Fi, cloud elements are accessible from both the Embedded and Application tabs in Atmosphere Studio.

Hardware Specifics

Some devices may have limitations or design restrictions that cause unexpected behavior when used with Atmosphere. Specific information and details pertaining to the ESPDuino-32 and its performance on Atmosphere is noted below.

  • ADC2 is not accessible, since it conflicts with the Wi-Fi. This means that pins IO4, IO0, IO2, IO15, IO13, IO12, IO14, IO27, IO25, and IO26 cannot be used as analog input pins.

Default Pin Mapping

Atmosphere configures each peripheral to a default pin for every supported device, based on ideal pairing of pins and their usage. The default pin configuration is set for convenience and enables each peripheral to work naturally without needing to be modified.

All pins can be used as general purpose input/output (GPIO) unless otherwise specified.

ESPDuino-32 projects start with the following pin configuration:

Pin Table

Pin Description Notes
ESP32_UART1_TX UART1 TX Pin Maps to IO4
ESP32_UART1_RX UART1 RX Pin Maps to IO5
ESP32_UART2_TX UART2 TX Pin Maps to IO1
ESP32_UART2_RX UART2 RX Pin Maps to IO3
ESP32_I2C_SDA I2C SDA Maps to IO21
ESP32_I2C_SCL I2C SCL Maps to IO22
ESP32_SPI_MOSI SPI MOSI Maps to IO23
ESP32_SPI_MISO SPI MISO Maps to IO25
ESP32_SPI_CLK SPI CLK Maps to IO19
D2 Arduino Connector D2 Maps to IO26
D3 Arduino Connector D3 Maps to IO25
D4 Arduino Connector D4 Maps to IO17
D5 Arduino Connector D5 Maps to IO16
D6 Arduino Connector D6 Maps to IO27
D7 Arduino Connector D7 Maps to IO14
D8 Arduino Connector D8 Maps to IO12
D9 Arduino Connector D9 Maps to IO13
D10 Arduino Connector D10 Maps to IO5
D11 Arduino Connector D11 Maps to IO23
D12 Arduino Connector D12 Maps to IO19
D13 Arduino Connector D13 Maps to IO18
A0 Arduino Connector A0 Maps to IO2
A1 Arduino Connector A1 Maps to IO4
A2 Arduino Connector A2 Maps to IO35
A3 Arduino Connector A3 Maps to IO34
A4 Arduino Connector A4 Maps to IO36
A5 Arduino Connector A5 Maps to IO39
ESPDUINO32_D2 Arduino Connector D2 Maps to IO26
ESPDUINO32_D3 Arduino Connector D3 Maps to IO25
ESPDUINO32_D4 Arduino Connector D4 Maps to IO17
ESPDUINO32_D5 Arduino Connector D5 Maps to IO16
ESPDUINO32_D6 Arduino Connector D6 Maps to IO27
ESPDUINO32_D7 Arduino Connector D7 Maps to IO14
ESPDUINO32_D8 Arduino Connector D8 Maps to IO12
ESPDUINO32_D9 Arduino Connector D9 Maps to IO13
ESPDUINO32_D10 Arduino Connector D10 Maps to IO5
ESPDUINO32_D11 Arduino Connector D11 Maps to IO23
ESPDUINO32_D12 Arduino Connector D12 Maps to IO19
ESPDUINO32_D13 Arduino Connector D13 Maps to IO18
ESPDUINO32_A0 Arduino Connector A0 Maps to IO2
ESPDUINO32_A1 Arduino Connector A1 Maps to IO4
ESPDUINO32_A2 Arduino Connector A2 Maps to IO35
ESPDUINO32_A3 Arduino Connector A3 Maps to IO34
ESPDUINO32_A4 Arduino Connector A4 Maps to IO36
ESPDUINO32_A5 Arduino Connector A5 Maps to IO39

Internal ESP32 Pins

All internal pins can be accessed using the following nomenclature: IO[PIN] OR GPIO_NUM_[PIN]. For example, pin 12 can be accessed via IO12 or GPIO_NUM_12.

The default pin for any peripheral can be changed within an element's properties, from an element that references that particular peripheral.

Peripherals

Below is information regarding the ESPDuino-32’s exposed peripherals.

I2C

I2C1

This I2C bus is exposed via pins IO21(SDA) and IO22(SCL).

SPI

SPI1

This SPI bus is exposed via pins IO23(MOSI), IO25(MISO), and IO19(CLK).

UART

UART1 (USB Debug Console)

This UART is exposed via the micro-USB connector on the ESPDuino-32 or pins IO4(TX) and IO5(RX).

UART2

This UART is exposed via pins IO1(TX) and IO3(RX).

ADC

ADC2 cannot be used, since it conflicts with the Wi-Fi. The following pins can be used for analog input:

  • IO36
  • IO37
  • IO38
  • IO39
  • IO32
  • IO33
  • IO34
  • IO35

PWM

Any GPIO pin can be used for PWM output.

Programming Method

Programming the ESPDuino-32 involves using the programmer interface in Atmosphere Studio to install embedded firmware.

Setup Configuration

Prior to programming an ESPDuino-32, ensure you have the following setup configuration:

  • The ESPDuino-32 is connected to the computer via USB to an available communication port.
  • The computer has the necessary connectivity protocols enabled (Bluetooth Low Energy, Wi-Fi, etc.).
  • The Atmosphere IoT Agent is installed on the computer and running. The Atmosphere IoT Agent is a local application that runs in the system tray and acts as an intermediary between the computer’s connectivity protocol drivers and the browser running Atmosphere.
  • An Internet connection is maintained.
  • The project to be programmed has been compiled.

Programming Instructions

With setup complete, you can program the ESPDuino-32:

  1. From Atmosphere Studio’s Embedded tab, click the Program Firmware button from the tab’s toolbar. This displays the Program Firmware window.
  2. Under Device Port, select the communication port the device is connected to.
  3. Click Program to start programming. When complete, you’ll receive a notification stating the device is programmed with the project’s embedded firmware.

When complete, the ESPDuino-32 is programmed with the project’s embedded firmware.

Guides and Tutorials

Get started using the ESPDuino-32 with Atmosphere by walking through the following guides:

ESPDuino-32 Guides
Getting Started with ESP32

Demo Projects

Atmosphere includes a variety of ESPDuino-32 demo projects for users of all levels. Check them out by clicking the demo’s name to open the project in Atmosphere.

Name Description
ADT7410 Temperature Demo Demonstrates the Analog Devices ADT7410 temperature sensor by reading the temperature every 15 seconds, then sends the data to the cloud.
ADXL343 Tap Logger Demo Demonstrates the tap detection functionality of the ADXL343 by sending detected tap data to the cloud.

Resources

The following additional resources and downloadable files are available for the ESPDuino-32: