I like PlatformIO, but unfortunately, they do not support newer versions of 
the arduino-esp32 framework which are required for newer hardware 
(financial disagreement with espressif). 
Since I use espressif MCUs with the arduino-esp32 framework in all my nixie 
projects, I’m currently looking for alternatives. I found these options:
- Arduino IDE
- PlatformIO using pioarduino
- pioarduino extension for Visual Studio Code
- ESP-IDF extension for Visual Studio Code
- ESP-IDF Eclipse plugin
I have not made a decision yet, but I spent some time migrating the 
firmware of a project to the ESP-IDF extension for vscode. Maybe the 
following will be useful for someone. It’s not a tutorial, just some 
reformatted notes on how it worked for me. As always use at your own risk.

Using the ESP-IDF Extension for Visual Studio Code with the arduino-esp32 
component
-----------------------------------------------------------------------------------

+ Install Visual Studio Code
+ Install the ESP-IDF extension
+ Click "Configure ESP-IDF extension" and select EXPRESS
 - Set download server to github
 - Select the latest version of ESP-IDF that supports the latest version of 
the arduino-esp32 component
  (https://github.com/espressif/arduino-esp32/releases)
 - Click install

+ After installation create an ESP arduino project as follows:
 - Click "Components Manager" or run command "Show ESP Component Registry"
 - Search and select arduino-esp32
 - Go to examples, select hello_world and click "Create Project from this 
example"
 - Build the project
 - Close vscode and rename the project directory to the desired project name
 - Start vscode and use "open folder" to open the project folder
 - Copy the source files (c, cpp, hpp) to the main directory
 - Create an include directory
 - Copy the header files to the include directory

+ Edit CMakeList.txt in the main directory:
 - Register all c, cpp and hpp files in the directory, ignore h files
 - Specify include directories 
 - Specify requirements

For example:

idf_component_register(SRCS 
    "main.cpp"
    “driver.cpp”
    "helper.hpp"

    INCLUDE_DIRS "." "../include" 
        "../components/Adafruit_BusIO" 
        "../components/RTCLib" 

    REQUIRES arduino-esp32 
    REQUIRES nvs_flash
    )

+ Manually add arduino libraries:
 - Use command "Create New ESP-IDF Component"
 - Enter the name of the component, e.g. RTCLib
 - Delete everything in the components\RTCLib directory except CMakeList.txt
 - Manually copy the library code files (c, cpp, h, hpp) to the 
component\RTCLib directory
 - Edit CMakeList.txt file

Example CMakeList.txt file for RTCLib:

idf_component_register(SRCS 
    "RTClib.cpp" 
    "RTC_DS1307.cpp"
    "RTC_DS3231.cpp"
    "RTC_Micros.cpp"
    "RTC_Millis.cpp"
    "RTC_PCF8523.cpp"
    "RTC_PCF8563.cpp"

    INCLUDE_DIRS "." "../Adafruit_BusIO"
    REQUIRES arduino-esp32)

If the library depends on other libraries add an idf_component.yml file, 
for example:

dependencies:
  # Define local dependency with relative path
  Adafruit_BusIO:
    path: ../AdaFruit_BusIO

Some sdk options: (change with the "SDK Configuration Editor")

+ Compiler options for debugging, performance and size:
 - Assertion Level
 - Optimization Level

+ Arduino options (not set if creating the arduino project manually without 
using the example):
 - Kernel
   set ConfigTICK_RATE_HZ = 1000
 - TLS Key Exchange Methods
   Select "Enable pre-shared-key ciphersuites"
 - Arduino Configuration
   Select "Autostart Arduino setup and loop on boot"

+ A useful terminal command:
 - idf.py update-dependencies

+ Some useful vscode shortcuts:
 - Ctrl-Shift-P to "Show and Run Commands"
 - Alt-Shift-F  to format code 

I used this to do a clean reinstall on windows: 

+ vscode:
 - uninstall vscode
 - delete directory "%userprofile%\AppData\Roaming\Code"
 - delete directory "%userprofile%\.vscode"

+ esp-idf extension:
 - delete directory "%userprofile%\.espressif"
 - delete directory "%userprofile%\esp"


-- 
You received this message because you are subscribed to the Google Groups 
"neonixie-l" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion, visit 
https://groups.google.com/d/msgid/neonixie-l/4d21066a-5674-462d-ac57-1f3e7abe3eean%40googlegroups.com.

Reply via email to