Platform espressif32

Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.

For more detailed information please visit vendor site.

Packages

Name Description
framework-arduinoespressif32 Arduino Wiring-based Framework (ESP32 Core)
framework-espidf Espressif IoT Development Framework
framework-pumbaa Pumbaa Framework
framework-simba Simba Framework
tool-espotapy ESP8266 OTA utility
tool-esptoolpy Espressif ROM Bootloader utility
toolchain-xtensa32 xtensa32-gcc

Warning

Linux Users:

  • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”, doing this issuing a sudo usermod -a -G dialout yourusername.
  • Install “udev” rules file 99-platformio-udev.rules (an instruction is located in the file).
  • Raspberry Pi users, please read this article Enable serial port on Raspberry Pi.

Windows Users: Please check that you have correctly installed USB driver from board manufacturer

Frameworks

Name Description
Framework arduino Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
Framework espidf Espressif IoT Development Framework. Official development framework for ESP32.
Framework pumbaa Pumbaa is Python on top of Simba. The implementation is a port of MicroPython, designed for embedded devices with limited amount of RAM and code memory.
Framework simba Simba is an RTOS and build framework. It aims to make embedded programming easy and portable.

Boards

Note

Adafruit

ID Name Platform Debug Microcontroller Frequency Flash RAM
featheresp32 Adafruit ESP32 Feather Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

Aiyarafun

ID Name Platform Debug Microcontroller Frequency Flash RAM
node32s Node32s Espressif 32   ESP32 240 MHz 1024 Kb 112 Kb

April Brother

ID Name Platform Debug Microcontroller Frequency Flash RAM
espea32 April Brother ESPea32 Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

DFRobot

ID Name Platform Debug Microcontroller Frequency Flash RAM
firebeetle32 FireBeetle-ESP32 Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

Electronic SweetPeas

ID Name Platform Debug Microcontroller Frequency Flash RAM
esp320 Electronic SweetPeas ESP320 Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

Espressif

ID Name Platform Debug Microcontroller Frequency Flash RAM
esp32dev Espressif ESP32 Dev Module Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

Hornbill

ID Name Platform Debug Microcontroller Frequency Flash RAM
hornbill32dev Hornbill ESP32 Dev Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb
hornbill32minima Hornbill ESP32 Minima Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

IntoRobot

ID Name Platform Debug Microcontroller Frequency Flash RAM
intorobot IntoRobot Fig Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

MakerAsia

ID Name Platform Debug Microcontroller Frequency Flash RAM
nano32 MakerAsia Nano32 Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

NodeMCU

ID Name Platform Debug Microcontroller Frequency Flash RAM
nodemcu-32s NodeMCU-32S Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

Noduino

ID Name Platform Debug Microcontroller Frequency Flash RAM
quantum Noduino Quantum Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

Onehorse

ID Name Platform Debug Microcontroller Frequency Flash RAM
onehorse32dev Onehorse ESP32 Dev Module Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

SparkFun Electronics

ID Name Platform Debug Microcontroller Frequency Flash RAM
esp32thing SparkFun ESP32 Thing Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

WEMOS

ID Name Platform Debug Microcontroller Frequency Flash RAM
lolin32 WEMOS LOLIN32 Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

Widora

ID Name Platform Debug Microcontroller Frequency Flash RAM
widora-air Widora AIR Espressif 32   ESP32 240 MHz 1024 Kb 288 Kb

Over-the-Air (OTA) update

There are 2 options:

platformio run --target upload --upload-port IP_ADDRESS_HERE or mDNS_NAME.local
[env:myenv]
upload_port = IP_ADDRESS_HERE or mDNS_NAME.local

For example,

  • platformio run -t upload --upload-port 192.168.0.255
  • platformio run -t upload --upload-port myesp8266.local

Authentication and upload options

You can pass additional options/flags to OTA uploader using upload_flags option in Project Configuration File platformio.ini

[env:myenv]
upload_flags = --port=8266

Available flags

  • --port=ESP_PORT ESP8266 OTA Port. Default 8266
  • --auth=AUTH Set authentication password
  • --spiffs Use this option to transmit a SPIFFS image and do not flash the module

For the full list with available options please run

~/.platformio/packages/tool-espotapy/espota.py -h

Usage: espota.py [options]

Transmit image over the air to the esp8266 module with OTA support.

Options:
  -h, --help            show this help message and exit

  Destination:
    -i ESP_IP, --ip=ESP_IP
                        ESP8266 IP Address.
    -p ESP_PORT, --port=ESP_PORT
                        ESP8266 ota Port. Default 8266

  Authentication:
    -a AUTH, --auth=AUTH
                        Set authentication password.

  Image:
    -f FILE, --file=FILE
                        Image file.
    -s, --spiffs        Use this option to transmit a SPIFFS image and do not
                        flash the module.

  Output:
    -d, --debug         Show debug output. And override loglevel with debug.
    -r, --progress      Show progress output. Does not work for ArduinoIDE

Using Arduino Framework with Staging version

PlatformIO will install the latest Arduino Core for ESP32 from https://github.com/espressif/arduino-esp32. The Git should be installed in a system. To update Arduino Core to the latest revision, please use platformio platform update command.

  1. Install Espressif 32 (Stage) development platform
platformio platform install https://github.com/platformio/platform-espressif32.git#feature/stage
  1. Set platform to espressif32_stage in Project Configuration File platformio.ini. For example,

    [env:esp32dev]
    platform = espressif32_stage
    board = esp32dev
    framework = arduino
    
  2. Try to build project

  3. If you see build errors, then try to build this project using the same stage with Arduino IDE

  4. If it works with Arduino IDE but doesn’t work with PlatformIO, then please file new issue with attached information:

    • test project/files
    • detailed log of build process from Arduino IDE (please copy it from console to http://pastebin.com)
    • detailed log of build process from PlatformIO Build System ( please copy it from console to http://pastebin.com)