Go to file
copercini b46f1e2e3c Support self signed certificates (#291)
* Support self signed certificates

Fix for https://github.com/espressif/arduino-esp32/issues/265

mbedtls_ssl_conf_authmode was defined before mbedtls_ssl_config_defaults causing several bugs when no CA certificate is defined.

* Implement Arduino's log facility

Replace printf by ESP log handling

* Remove \n from debug messages

log_ doesn't need \n to break line.
2017-03-31 00:01:09 +02:00
cores/esp32 Make I2C work reliably with interrupts 2017-03-26 00:27:27 +02:00
doc Update windows.md 2017-01-19 16:03:37 +02:00
libraries Support self signed certificates (#291) 2017-03-31 00:01:09 +02:00
package move to binary esptool. Run get.py/get.exe to get it! 2017-01-19 15:58:29 +02:00
tools Catch exception if host is not found 2017-03-11 09:07:25 +02:00
variants Fix compilation issues is certain situations. 2017-03-19 11:27:58 +02:00
.gitignore move to binary esptool. Run get.py/get.exe to get it! 2017-01-19 15:58:29 +02:00
.travis.yml update travis and build script to not fail 2017-02-05 19:58:27 +02:00
appveyor.yml Initial version of build script for @PlatformIO; CI integration for Linux, macOS and Windows (#153) 2017-01-28 14:19:56 +02:00
boards.txt add DFRobot FireBeetle-ESP32 support (#239) 2017-03-05 10:30:12 +02:00
component.mk fix IDF library includes 2017-03-10 15:00:15 +02:00
Kconfig IDF add some defaults and allow Arduino to run in single-core mode 2017-02-28 23:36:05 +02:00
Makefile.projbuild Add some Arduino defines to IDF 2017-02-16 00:18:03 +02:00
package.json Initial version of build script for @PlatformIO; CI integration for Linux, macOS and Windows (#153) 2017-01-28 14:19:56 +02:00
platform.txt Add Ota and mdns (#257) 2017-03-11 07:15:44 +01:00
programmers.txt initial import 2016-10-06 07:09:44 -06:00
README.md Add hint (#170) 2017-02-05 14:48:13 +02:00

Arduino core for ESP32 WiFi chip

Build Status

Need help or have a question? Join the chat at https://gitter.im/espressif/arduino-esp32

Development Status

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

Using through Arduino IDE

###Instructions for Windows

Instructions for Mac

  • Install latest Arduino IDE from arduino.cc

  • Open Terminal and execute the following command (copy->paste and hit enter):

    mkdir -p ~/Documents/Arduino/hardware/espressif && \
    cd ~/Documents/Arduino/hardware/espressif && \
    git clone https://github.com/espressif/arduino-esp32.git esp32 && \
    cd esp32/tools/ && \
    python get.py
    
  • Restart Arduino IDE

Instructions for Debian/Ubuntu Linux

  • Install latest Arduino IDE from arduino.cc

  • Open Terminal and execute the following command (copy->paste and hit enter):

    sudo usermod -a -G dialout $USER && \
    sudo apt-get install git && \
    mkdir -p ~/Arduino/hardware/espressif && \
    cd ~/Arduino/hardware/espressif && \
    git clone https://github.com/espressif/arduino-esp32.git esp32 && \
    cd esp32/tools/ && \
    python get.py
    
  • Restart Arduino IDE

Decoding exceptions

You can use EspExceptionDecoder to get meaningful call trace.

Using PlatformIO

PlatformIO is an open source ecosystem for IoT development with cross platform build system, library manager and full support for Espressif ESP32 development. It works on the popular host OS: Mac OS X, Windows, Linux 32/64, Linux ARM (like Raspberry Pi, BeagleBone, CubieBoard).

Building with make

makeEspArduino is a generic makefile for any ESP8266/ESP32 Arduino project. Using make instead of the Arduino IDE makes it easier to do automated and production builds.

Using as ESP-IDF component

  • Download and install esp-idf

  • Create blank idf project (from one of the examples)

  • in the project folder, create a folder called components and clone this repository inside

    mkdir -p components && \
    cd components && \
    git clone https://github.com/espressif/arduino-esp32.git arduino && \
    cd .. && \
    make menuconfig
    
  • make menuconfig has some Arduino options

    • "Autostart Arduino setup and loop on boot"
      • If you enable this options, your main.cpp should be formated like any other sketch

        //file: main.cpp
        #include "Arduino.h"
        
        void setup(){
          Serial.begin(115200);
        }
        
        void loop(){
          Serial.println("loop");
          delay(1000);
        }
        
      • Else you need to implement app_main() and call initArduino(); in it.

        Keep in mind that setup() and loop() will not be called in this case. If you plan to base your code on examples provided in esp-idf, please make sure move the app_main() function in main.cpp from the files in the example.

        //file: main.cpp
        #include "Arduino.h"
        
        extern "C" void app_main()
        {
            initArduino();
            pinMode(4, OUTPUT);
            digitalWrite(4, HIGH);
            //do your own thing
        }
        
    • "Disable mutex locks for HAL"
      • If enabled, there will be no protection on the drivers from concurently accessing them from another thread/interrupt/core
    • "Autoconnect WiFi on boot"
      • If enabled, WiFi will start with the last known configuration
      • Else it will wait for WiFi.begin
  • make flash monitor will build, upload and open serial monitor to your board

ESP32Dev Board PINMAP

Pin Functions

Hint

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