arduino-esp32/docs/esp-idf_component.md
Pranav Cherukupalli e6ba0f6281 DOCUMENTATION: Moved installation instructions to separate page (#561)
* DOCUMENTATION: Moved installation instructions to separate page

* Added Fedora to contents table
* Added Issue/Bug Report section to README
* Some minor improvements

* DOCUMENTATION: Rename directory doc to docs

* Also move ISSUE_TEMPLATE.md to docs directory

* DOCUMENTATION: Use current repo's files

* This makes it consistent instead  of having few local and few pointing to
  espressif/arduino-esp32 by all linking to local files

* DOCUMENTATION: Fix hyperlink to issue/bug template in contents

* DOCUMENTATION: contents: supress platform specific installation instruction
2017-08-17 16:14:01 +03:00

2.0 KiB

To use as a component of ESP-IDF

  • 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