Code Monkey home page Code Monkey logo

arduino-esp32's Introduction

Arduino core for ESP32 WiFi chip

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

Using 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):

    curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py && \
    sudo python get-pip.py && \
    sudo pip install pyserial && \
    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 && \
    wget https://bootstrap.pypa.io/get-pip.py && \
    sudo python get-pip.py && \
    sudo pip install pyserial && \
    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

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).

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

        //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

arduino-esp32's People

Contributors

me-no-dev avatar minyk avatar lamloei avatar volca avatar sweet-peas avatar h-lk avatar hirotakaster avatar ivankravets avatar eroniki avatar nazt avatar gitter-badger avatar whatnick avatar palatis avatar wemos avatar

Watchers

neophack avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.