Giter VIP home page Giter VIP logo

platform-espressif32's Introduction

Espressif 32: development platform for PlatformIO

Build Status

ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and Bluetooth. ESP32 integrates an antenna switch, RF balun, power amplifier, low-noise receive amplifier, filters, and power management modules.

  • Home (home page in the PlatformIO Registry)
  • Documentation (advanced usage, packages, boards, frameworks, etc.)

Usage

  1. Install PlatformIO
  2. Create PlatformIO project and configure a platform option in platformio.ini file:

Stable version

See platform documentation for details.

[env:stable]
; recommended to pin to a version, see https://github.com/platformio/platform-espressif32/releases
; platform = espressif32 @ ^6.0.1
platform = espressif32
board = ...
...

Development version

[env:development]
platform = https://github.com/platformio/platform-espressif32.git
board = ...
...

Configuration

Please navigate to documentation.

platform-espressif32's People

Contributors

ajlennon avatar alwint3r avatar atanisoft avatar cewbdex avatar cyberman54 avatar docwibbleywobbley avatar eerimoq avatar egnor avatar idea--list avatar igolubic avatar ivankravets avatar jason2866 avatar maxgerhardt avatar mondbaron avatar nicklasb avatar niwantha33 avatar nkaaf avatar pfeerick avatar prices avatar rgl avatar rohansingh avatar rtu-dataframe avatar seanhagen avatar sg-o avatar sria91 avatar strid3r21 avatar suglider avatar tasssadar avatar tinyu-zhao avatar valeros avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

platform-espressif32's Issues

undefined reference to `app_main'

OS : macOS 10.11.6
PlatformIO: 1.7.1(IDE), 3.2.1(Core)

use espidf-hello-world example, then come error below(I can use Arduino example normally):

Indexing .pioenvs/esp32dev/libtcpip_adapter.a
Linking .pioenvs/esp32dev/firmware.elf
.pioenvs/esp32dev/libesp32.a(cpu_start.o):(.literal.main_task+0x0): undefined reference to `app_main'
.pioenvs/esp32dev/libesp32.a(cpu_start.o): In function `main_task':
/Users/linjinhui/.platformio/packages/framework-espidf/components/esp32/cpu_start.c:169: undefined reference to `app_main'
collect2: error: ld returned 1 exit status
*** [.pioenvs/esp32dev/firmware.elf] Error 1

========================== [ERROR] Took 15.54 seconds ==========================

Linking error with bluedroid

I'm trying to use BLE with bluedroid methods but it doesn't work

The configuration seems good

#define CONFIG_BT_ENABLED 1
#define CONFIG_BLUEDROID_ENABLED 1

My code is pretty simple

#include "esp_bt_main.h"

void app_main() {
    esp_bluedroid_init();
}

The project compiles but can't be linked :

Compiling .pioenvs/esp32dev/src/main.o
Linking .pioenvs/esp32dev/firmware.elf

.pioenvs/esp32dev/src/main.o:(.literal.app_main+0x0): undefined reference to `esp_bluedroid_init'
.pioenvs/esp32dev/src/main.o: In function `app_main':

The bluedroid dependency is never compiled but I'm not finding why.

Any idea ?

My platformio.ini is fairly basic

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = espidf

can't support c99 for now?

When I try espidf-http-request, error come out below:

[Fri Jan 13 22:28:23 2017] Processing esp32dev (platform: espressif32, board: esp32dev, framework: espidf)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Collected 1 compatible libraries
Looking for dependencies...
Project does not have dependencies
Compiling .pioenvs/esp32dev/src/main.o
src/main.cpp:50:30: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]

"Host: "WEB_SERVER "\n"
^
src/main.cpp: In function 'void initialise_wifi()':
src/main.cpp:88:9: error: C99 designator 'ssid' outside aggregate initializer
};
^
src/main.cpp:88:9: error: C99 designator 'password' outside aggregate initializer
src/main.cpp: In function 'void http_get_task(void*)':
src/main.cpp:100:9: sorry, unimplemented: non-trivial designated initializers not supported
};
^
src/main.cpp:100:9: sorry, unimplemented: non-trivial designated initializers not supported
Compiling .pioenvs/esp32dev/esp32/cpu_start.o
Compiling .pioenvs/esp32dev/esp32/deepsleep.o
*** [.pioenvs/esp32dev/src/main.o] Error 1
Compiling .pioenvs/esp32dev/esp32/event_default_handlers.o
========================== [ERROR] Took 2.51 seconds ==========================

seems not support code like:

    wifi_config_t wifi_config = {
        .sta = {
            .ssid = EXAMPLE_WIFI_SSID,
            .password = EXAMPLE_WIFI_PASS,
        },
    };

partitions.bin file wrong

Hardware:

Board: Custom board with ESP32D2WDQ5
Core Installation Core 3.5.0rc14
IDE name: Visual Studio Code with Platformio IDE Extension
Flash Frequency: 80Mhz
Upload Speed: 115200

Description:

I experience problems flashing an ESP32D2WDQ5 module with Platformio. In difference to all popular boards, this ESP module has only 2 MB Flash. I have generated a custom JSON file for the board:

{
  "build": {
    "core": "esp32",
    "extra_flags": "-DESP32_DEV -DARDUINO_ESP32_DEV",
    "f_cpu": "240000000L",
    "f_flash": "80000000L",
    "flash_mode": "dio",
    "ldscript": "esp32_out.ld",
    "mcu": "esp32",
    "variant": "esp32"
  },
  "connectivity": [
    "wifi",
    "bluetooth",
    "ethernet",
    "can"
  ],
  "frameworks":  [
    "arduino",
    "espidf"
  ],
  "name": "ESP32 Custom",
  "upload": {
    "flash_size": "2MB",
    "maximum_ram_size": 294912,
    "maximum_size": 655360,
    "require_upload_port": true,
    "resetmethod": "nodemcu",
    "speed": 115200,
    "wait_for_upload_port": true
  },
  "url": "https://en.wikipedia.org/wiki/ESP32",
  "vendor": "Espressif"
}

Thus, flashing a simple sketch (see below) results in the following output, the prints are missing:

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:812
load:0x40078000,len:0
load:0x40078000,len:11392
entry 0x40078a9c
user code done

Flashing the same sketch with the Arduino IDE works well and prints as expected on the serial line.

I digged a bit into the problem and found out that the cause of my problem seems to be in the partitions.bin file. This is the flash command that I get from the verbose pio output and that does not work correctly (I broke it up into different lines for better readability):

"c:\users\tobia\.platformio\penv\scripts\python.exe"
"C:\Users\tobia\.platformio\packages\framework-arduinoespressif32@src-537c58760dafe7fcc8a1d9bbcf00b6f6\tools\esptool.py" 
--before default_reset --after hard_reset --chip esp32 --port "COM3" --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 
0x1000 C:\Users\tobia\.platformio\packages\framework-arduinoespressif32@src-537c58760dafe7fcc8a1d9bbcf00b6f6\tools\sdk\bin\bootloader_dio_80m.bin 
0x8000 D:\Dokumente\Repositories\Prototype_0_CoreBoard\.pioenvs\esp32dev\partitions.bin 
0xe000 C:\Users\tobia\.platformio\packages\framework-arduinoespressif32@src-537c58760dafe7fcc8a1d9bbcf00b6f6\tools\partitions\boot_app0.bin 
0x10000 .pioenvs\esp32dev\firmware.bin

Now, when I replace the partitions file in line 5 by the one created by the Arduino IDE. the sketch works like expected:

"c:\users\tobia\.platformio\penv\scripts\python.exe"
"C:\Users\tobia\.platformio\packages\framework-arduinoespressif32@src-537c58760dafe7fcc8a1d9bbcf00b6f6\tools\esptool.py" 
--before default_reset --after hard_reset --chip esp32 --port "COM3" --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 
0x1000 C:\Users\tobia\.platformio\packages\framework-arduinoespressif32@src-537c58760dafe7fcc8a1d9bbcf00b6f6\tools\sdk\bin\bootloader_dio_80m.bin 
0x8000 C:\Users\tobia\AppData\Local\Temp\arduino_build_862769/sketch_dec20a.ino.partitions.bin  
0xe000 C:\Users\tobia\.platformio\packages\framework-arduinoespressif32@src-537c58760dafe7fcc8a1d9bbcf00b6f6\tools\partitions\boot_app0.bin 
0x10000 .pioenvs\esp32dev\firmware.bin

Flashing the sketch to a popular NodeMCU ESP-32S (which has got 4MB flash) with platformio works as expedted.

Conclusion: the generation of partitions.bin file in Platformio does not work correctly for ESP32 chips with 2MB (internal) flash.

I don't know where and how the generation of the partitions.bin file is done and would be grateful for any help.

Sketch:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("Tick");
  delay(500);
  Serial.println("Tock");
  delay(500);
}

Toolchain still broken??? Getting >multiple definition< errors on ArduinoOta example code

Still having problems with PlatformIO and Espressif32.
Because my weatherstation project still fails to compile after the last update of framework and toolchain, I tried to just compile an examples. I chose ArduinoOTA example.
I tried to compile both with platform = espressif32 and with platform = https://github.com/platformio/platform-espressif32.git#feature/stage. Both fail with several multiple definition errors.
Also weird is that if I switch between master and staging versions every time I get:

PackageManager: Installing toolchain-xtensa32 @ ~2.50200.0
Downloading...
Unpacking...

in the compile log.
And as weird that everytime I run platformio update I get a line saying
Uninstalling toolchain-xtensa32 @ 2.50200.0: [OK]

@ivankravets any idea?
Below additional informations.

PlatformIO versions:
Home 0.3.2ยทCore 3.5.0b6

Framework, platform and library versions:

PS C:\Users\beegee\Documents\PlatformIO\Projects\171127-155820-arduino-wifiscan> platformio update
Updating tool-scons                      @ 3.20501.2      [Up-to-date]
Updating tool-unity                      @ 1.20302.1      [Up-to-date]
Updating pysite-pioplus                  @ 0.4.2          [Up-to-date]
Updating contrib-piohome                 @ 0.3.2          [Up-to-date]
Updating tool-pioplus                    @ 0.10.14        [Up-to-date]

Platform Manager
================
Platform Espressif 32
--------
Updating espressif32                     @ 0.11.0         [Up-to-date]
Updating tool-esptoolpy                  @ 1.20100.0      [Up-to-date]
Updating framework-arduinoespressif32    @ 1.3.0          [Up-to-date]
Uninstalling toolchain-xtensa32 @ 2.50200.0:    [OK]

Platform Espressif 32 (Stage)
--------
Updating espressif32                     @ 55484a4        [Up-to-date]
Updating tool-esptoolpy                  @ 1.20100.0      [Up-to-date]
Updating framework-arduinoespressif32    @ dac7ae7        [Up-to-date]

Platform Espressif 8266
--------
Updating espressif8266                   @ 1.4.0          [Up-to-date]
Updating framework-arduinoespressif8266  @ 1.20300.1      [Up-to-date]
Updating tool-esptool                    @ 1.409.0        [Up-to-date]
Updating toolchain-xtensa                @ 1.40802.0      [Up-to-date]

Platform Espressif 8266 (Stage)
--------
Updating espressif8266                   @ 08e41d9        [Up-to-date]
Updating framework-arduinoespressif8266  @ 7b09ae5        [Up-to-date]
Updating tool-esptool                    @ 1.409.0        [Up-to-date]
Updating toolchain-xtensa                @ 1.40802.0      [Up-to-date]


Library Manager
===============
Updating Adafruit DHT Unified            @ 1.0.0          [Up-to-date]
Updating Adafruit TSL2561                @ 1.0.0          [Up-to-date]
Updating Adafruit Unified Sensor         @ 1.0.2          [Up-to-date]
Updating ArduinoJson                     @ 5.11.2         [Up-to-date]
Updating DHT sensor library              @ 1.3.0          [Up-to-date]
Updating MQTT                            @ 2.2.1          [Up-to-date]
Updating TFT_eSPI                        @ 0.17.11        [Up-to-date]
Updating Ticker-esp32                    @ 1.0.0          [Up-to-date]
Updating Time                            @ 18ce15b202     [Up-to-date]
Updating WifiManager                     @ 0.12           [Up-to-date]
Updating esp8266FTPServer                @ 97888b3        [Up-to-date]

platformio.ini:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter, extra scripting
;   Upload options: custom port, speed and extra flags
;   Library options: dependencies, extra library storages
;
; Please visit documentation for the other options and examples
; http://docs.platformio.org/page/projectconf.html

[env:esp32dev]
platform = espressif32
; platform = https://github.com/platformio/platform-espressif32.git#feature/stage
board = esp32dev
framework = arduino

ArduinoOta.cpp:

#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "..........";
const char* password = "..........";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 3232
  // ArduinoOTA.setPort(3232);

  // Hostname defaults to esp3232-[MAC]
  // ArduinoOTA.setHostname("myesp32");

  // No authentication by default
  // ArduinoOTA.setPassword("admin");

  // Password can be set with it's md5 value as well
  // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
  // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

  ArduinoOTA
    .onStart([]() {
      String type;
      if (ArduinoOTA.getCommand() == U_FLASH)
        type = "sketch";
      else // U_SPIFFS
        type = "filesystem";

      // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
      Serial.println("Start updating " + type);
    })
    .onEnd([]() {
      Serial.println("\nEnd");
    })
    .onProgress([](unsigned int progress, unsigned int total) {
      Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
    })
    .onError([](ota_error_t error) {
      Serial.printf("Error[%u]: ", error);
      if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
      else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
      else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
      else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
      else if (error == OTA_END_ERROR) Serial.println("End Failed");
    });

  ArduinoOTA.begin();

  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}

Compiling log (same for platform = espressif32 and with platform = https://github.com/platformio/platform-espressif32.git#feature/stage):

[11/28/17 13:28:49] Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
 
PackageManager: Installing toolchain-xtensa32 @ ~2.50200.0
Downloading...
Unpacking...
Verbose mode can be enabled via `-v, --verbose` option
Converting WiFiScan.ino

Collected 28 compatible libraries
Looking for dependencies...
Library Dependency Graph
|-- <WiFi> v1.0
|-- <ArduinoOTA> v1.0
|   |-- <WiFi> v1.0
|   |-- <Update> v1.0
|   |-- <ESPmDNS> v1.0
|-- <ESPmDNS> v1.0
Compiling .pioenvs\esp32dev\src\WiFiScan.ino.o
Linking .pioenvs\esp32dev\firmware.elf
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
/Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/cxx/./cxx_exception_stubs.cpp:12: multiple definition of `std::uncaught_exception()'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_cat
ch.o):/builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_catch.cc:138: first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_call_terminate'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_cal
l.o):/builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_call.cc:40: first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_throw'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_thr
ow.o):/builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_throw.cc:62: first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_rethrow'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_thr
ow.o):eh_throw.cc:(.text.__cxa_rethrow+0x0): first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_free_dependent_exception'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_all
oc.o):/builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_alloc.cc:311: first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_free_exception'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_all
oc.o):eh_alloc.cc:(.text.__cxa_free_exception+0x0): first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_get_exception_ptr'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_cat
ch.o):eh_catch.cc:(.text.__cxa_get_exception_ptr+0x0): first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_end_catch'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_cat
ch.o):eh_catch.cc:(.text.__cxa_end_catch+0x0): first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_begin_catch'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_cat
ch.o):eh_catch.cc:(.text.__cxa_begin_catch+0x0): first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_allocate_dependent_exception'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_all
oc.o):eh_alloc.cc:(.text.__cxa_allocate_dependent_exception+0x0): first defined here
C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\tools\sdk\lib\libcxx.a(cxx_exception_stubs.o): In function `__cxx_fatal_excepti
on':
cxx_exception_stubs.cpp:(.text.__cxx_fatal_exception+0x0): multiple definition of `__cxa_allocate_exception'
c:/users/beegee/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib\libstdc++.a(eh_all
oc.o):eh_alloc.cc:(.text.__cxa_allocate_exception+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
*** [.pioenvs\esp32dev\firmware.elf] Error 1
 [ERROR] Took 85.93 seconds

partition table offset for flashing is apparently wrong

From my understanding, the partition table on ESP32 is supposed to be 0x8000 based on the documentation:

A single ESP32โ€™s flash can contain multiple apps, as well as many different kinds of data (calibration data, filesystems, parameter storage, etc). For this reason a partition table is flashed to offset 0x8000 in the flash.

In build/main.py:119 and the following cases for each framework, the flash address for partition table is 0x4000.

When flashing in verbose I can see the line calling esptool:

pio run -v -t upload
[...]
"/usr/bin/python2" "/home/bleader/.platformio/packages/tool-esptoolpy/esptool.py" --chip esp32 --port "/dev/ttyUSB0" --baud 115200 write_flash -z --flash_mode dio --flash_freq 80m 0x1000 "/home/bleader/.platformio/packages/framework-arduinoespressif32/tools/sdk/bin/bootloader.bin" 0x4000 "/home/bleader/.platformio/packages/framework-arduinoespressif32/tools/sdk/bin/partitions_singleapp.bin" 0x10000 .pioenvs/esp32dev/firmware.bin
[...]

This leads to something like:

user code not found

I say something like because my following attempt was to flash manually calling the same line, but using 0x8000 for partition table:

"/usr/bin/python2" "/home/bleader/.platformio/packages/tool-esptoolpy/esptool.py" --chip esp32 --port "/dev/ttyUSB0" --baud 115200 write_flash -z --flash_mode dio --flash_freq 80m 0x1000 "/home/bleader/.platformio/packages/framework-arduinoespressif32/tools/sdk/bin/bootloader.bin" 0x8000 "/home/bleader/.platformio/packages/framework-arduinoespressif32/tools/sdk/bin/partitions_singleapp.bin" 0x10000 .pioenvs/esp32dev/firmware.bin

This worked, but now, when flashing using pio run -t upload partition table do not change, and the one at 0x8000 isn't erased, so code is still executed fine.

So any module with a matching partition table data written at 0x8000 won't exhibit the issue anymore. Which makes this a pretty low priority issue I guess, and explains why it wasn't seen before, I just faced it as I used a brand new dev board directly with platformio command line without any other test prior to it.

Official DOIT ESP32 support?

Hi

I have test the board DOIT ESP32

http://www.banggood.com/ESP32-Development-Board-WiFiBluetooth-Ultra-Low-Power-Consumption-Dual-Cores-ESP-32-ESP-32S-Board-p-1109512.html?rmmds=search

I upload example blink and I have this error

ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3ffc0008,len:0
load:0x3ffc0008,len:1388
load:0x40078000,len:3608
load:0x40080000,len:260
entry 0x40080034
E (27) boot: nothing to load
user code done

Thanks

toolchain-xtensa32 for ARM

Hi,

I'm having this error on "run".

[Fri Aug 11 17:48:13 2017] Processing esp32doit-devkit-v1 (platform: espressif32; board: esp32doit-devkit-v1; framework: arduino)

PackageManager: Installing toolchain-xtensa32 @ ~1.50200.0
Error: Could not find a version that satisfies the requirement '~1.50200.0' for your system 'linux_armv7l'

How do i solve this?

ESP32 and Websocket

Websocket protocol is available for ESP8266 but I haven't seen for ESP32. Any hope on this?

MQTT Example, several correctable build errors and an execution fail, needs correction

Downloaded the Tuan MQTT example and the dependency:

  1. esp32-mqtt
  2. espmqtt
    Restructured for Platformio, all files in src.
    Build errors centered on incomplete removal of reconnect cxall back and a variable BUIDTIME that is undefined. Removed the reconnect references and the reference to BUIDTIME and obtained a clean compile after adding defines for SSID and PASSWORD variables. Did this by #include USER config file and corected varable names.
    Using an ESP32thing from Sparkfun. This example worked prior to the recent updates. Now it fails and never gets to the MQTT part.
    Log below:

Executing task: platformio.exe device monitor <

--- Miniterm on COM14 115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun 8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0008,len:8
load:0x3fff0010,len:4408
load:0x40078000,len:11072
load:0x40080000,len:252
entry 0x40080034
โ›[0;32mI (29) boot: ESP-IDF 2.210.0 2nd stage bootloaderโ›[0m
โ›[0;32mI (29) boot: compile time 13:16:38โ›[0m
โ›[0;32mI (62) boot: Enabling RNG early entropy source...โ›[0m
โ›[0;32mI (62) boot: SPI Speed : 80MHzโ›[0m
โ›[0;32mI (62) boot: SPI Mode : DIOโ›[0m
โ›[0;32mI (74) boot: SPI Flash Size : 4MBโ›[0m
โ›[0;32mI (86) boot: Partition Table:โ›[0m
โ›[0;32mI (97) boot: ## Label Usage Type ST Offset Lengthโ›[0m
โ›[0;32mI (120) boot: 0 nvs WiFi data 01 02 00009000 00006000โ›[0m
โ›[0;32mI (143) boot: 1 phy_init RF data 01 01 0000f000 00001000โ›[0m
โ›[0;32mI (166) boot: 2 factory factory app 00 00 00010000 00100000โ›[0m
โ›[0;32mI (190) boot: End of partition tableโ›[0m
โ›[0;32mI (202) boot: Disabling RNG early entropy source...โ›[0m
โ›[0;32mI (220) boot: Loading app partition at offset 00010000โ›[0m
โ›[0;32mI (1085) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512) โ›[0m
โ›[0;32mI (1086) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x1812c ( 98604) mapโ›[0m
โ›[0;32mI (1102) boot: segment 2: paddr=0x0003813c vaddr=0x3ffc0000 size=0x02ca8 ( 11432) loadโ›[0m
โ›[0;32mI (1131) boot: segment 3: paddr=0x0003adec vaddr=0x40080000 size=0x00400 ( 1024) loadโ›[0m
โ›[0;32mI (1156) boot: segment 4: paddr=0x0003b1f4 vaddr=0x40080400 size=0x12c14 ( 76820) loadโ›[0m
โ›[0;32mI (1204) boot: segment 5: paddr=0x0004de10 vaddr=0x400c0000 size=0x00000 ( 0) loadโ›[0m
โ›[0;32mI (1208) boot: segment 6: paddr=0x0004de18 vaddr=0x00000000 size=0x021f0 ( 8688) โ›[0m
โ›[0;32mI (1233) boot: segment 7: paddr=0x00050010 vaddr=0x400d0018 size=0x6a684 (435844) mapโ›[0m
โ›[0;32mI (1260) cpu_start: Pro cpu up.โ›[0m
โ›[0;32mI (1271) cpu_start: Starting app cpu, entry point is 0x40080e74โ›[0m
โ›[0;32mI (0) cpu_start: App cpu up.โ›[0m
โ›[0;32mI (1304) heap_alloc_caps: Initializing. RAM available for dynamic allocation:โ›[0m
โ›[0;32mI (1326) heap_alloc_caps: At 3FFAFF10 len 000000F0 (0 KiB): DRAMโ›[0m
โ›[0;32mI (1347) heap_alloc_caps: At 3FFC81F0 len 00017E10 (95 KiB): DRAMโ›[0m
โ›[0;32mI (1368) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAMโ›[0m
โ›[0;32mI (1389) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAMโ›[0m
โ›[0;32mI (1411) heap_alloc_caps: At 40093014 len 0000CFEC (51 KiB): IRAMโ›[0m
โ›[0;32mI (1432) cpu_start: Pro cpu start user codeโ›[0m
โ›[0;32mI (1487) cpu_start: Starting scheduler on PRO CPU.โ›[0m
โ›[0;32mI (1489) cpu_start: Starting scheduler on APP CPU.โ›[0m
โ›[0;32mI (1489) MQTT_SAMPLE: [APP] Startup..โ›[0m
โ›[0;32mI (1489) MQTT_SAMPLE: [APP] Free memory: 210708 bytesโ›[0m
โ›[0;32mI (1499) MQTT_SAMPLE: [APP] SDK version: masterโ›[0m
I (1529) wifi: wifi firmware version: 407bb27
I (1529) wifi: config NVS flash: enabled
I (1529) wifi: config nano formating: disabled
โ›[0;32mI (1529) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSEโ›[0m
โ›[0;32mI (1539) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSEโ›[0m
I (1579) wifi: Init dynamic tx buffer num: 32
I (1579) wifi: Init dynamic rx buffer num: 32
I (1579) wifi: wifi driver task: 3ffcbec4, prio:23, stack:4096
I (1579) wifi: Init static rx buffer num: 10
I (1589) wifi: Init dynamic rx buffer num: 32
I (1589) wifi: Init rx ampdu len mblock:7
I (1589) wifi: Init lldesc rx ampdu entry mblock:4
I (1599) wifi: wifi power manager task: 0x3ffd4fbc prio: 21 stack: 2560

So ffar so good, I think, to here

โ›[0;32mI (1599) MQTT_SAMPLE: start the WIFI SSID:[IOTDeva] password:[******]โ›[0m

SSID and Password are coreect and work with other applications

I (1609) wifi: wifi timer task: 3ffd6024, prio:22, stack:3584
โ›[0;32mI (1649) phy: phy_version: 355.1, 59464c5, Jun 14 2017, 20:25:06, 1, 0โ›[0m
I (1649) wifi: mode : sta (24:0a:c4:05:cf:7c)
I (1889) wifi: n:2 0, o:1 0, ap:255 255, sta:2 0, prof:1
I (2869) wifi: state: init -> auth (b0)
I (3869) wifi: state: auth -> init (2)
I (3869) wifi: n:2 0, o:2 0, ap:255 255, sta:2 0, prof:1
I (3989) wifi: n:2 0, o:2 0, ap:255 255, sta:2 0, prof:1
I (3989) wifi: state: init -> auth (b0)
I (4989) wifi: state: auth -> init (2)
I (4999) wifi: n:2 0, o:2 0, ap:255 255, sta:2 0, prof:1
I (5119) wifi: n:2 0, o:2 0, ap:255 255, sta:2 0, prof:1
I (5119) wifi: state: init -> auth (b0)
I (6119) wifi: state: auth -> init (2)
I (6119) wifi: n:2 0, o:2 0, ap:255 255, sta:2 0, prof:1
I (6239) wifi: n:2 0, o:2 0, ap:255 255, sta:2 0, prof:1
I (6239) wifi: state: init -> auth (b0)
I (7239) wifi: state: auth -> init (2)
I (7239) wifi: n:2 0, o:2 0, ap:255 255, sta:2 0, prof:1
I (7359) wifi: n:2 0, o:2 0, ap:255 255, sta:2 0, prof:1
I (7359) wifi: state: init -> auth (b0)
This latter part repeats for ever and no MQTT subscription occurs either with mosquitto or my local broker
Any help appreciated.
Thanks
Frank

Arduino: Last stage version problem

Hi,

Version: 6552413 of the Espressif 32 Stage platform is causing the esp to be stuck in a reset loop whatever the code : (TG1WDT_SYS_RESET)

Compiling with Arduino IDE using the same version works fine.

Can not upload files (and target uploadfs is missed in list in stage espressif32 platform)

Hey, thanks for a remarkable job you did, guys!

I can not upload my html file for captiva.
Previously I did it easily for esp8266 โ€” via this menu: https://puu.sh/ymUG1.png with SPIFFS upload.
But now it shows error to me (and from console the same):

*** Do not know how to make File target `uploadfs' user/proj/uploadfs). Stop.

I've tried with stage version as platform and there are some changes:
1/ Target UPLOAD SPIFFS is disappear from menu I showed above;
2/ Captiva not shown on devices. Back to "platform = espressif32" and everything is ok again;
3/ Can not compile SPIFFS which is from original github (on non-stage version of platform).

Support for WROVER 32

Is there any planned support for the Espressif dev board WROVER 32 for PlatformIO?

Currently I get some weird issues with the partition table when using board = esp32dev:

--- Enter port index or full name: 2
--- Miniterm on COM7 115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x3e (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0008,len:8
load:0x3fff0010,len:3472
load:0x40078000,len:7804
load:0x40080000,len:252
entry 0x40080034
โ›[0;32mI (43) boot: ESP-IDF 2.200.0 2nd stage bootloaderโ›[0m
โ›[0;32mI (43) boot: compile time 22:37:02โ›[0m
โ›[0;32mI (53) boot: Enabling RNG early entropy source...โ›[0m
โ›[0;32mI (60) boot: SPI Speed : 20MHzโ›[0m
โ›[0;32mI (72) boot: SPI Mode : DIOโ›[0m
โ›[0;32mI (85) boot: SPI Flash Size : 4MBโ›[0m
โ›[0;31mE (97) flash_parts: partition 1 invalid magic number 0x102aโ›[0m
โ›[0;31mE (116) boot: Failed to verify partition tableโ›[0m
โ›[0;31mE (132) boot: load partition table error!โ›[0m
user code done

Unable to install

I'm unable to install this platform, when I run:

platformio platform install espressif32

I get:

PlatformManager: Installing espressif32
Warning! Package Mirror: Got an unrecognized status code '404' when downloaded https://github.com/platformio/platform-espressif32/archive/v0.1.2.tar.gz
Looking for the another mirror...
Warning! Package Mirror: Got an unrecognized status code '404' when downloaded https://github.com/platformio/platform-espressif32/archive/v0.1.2.tar.gz
Looking for the another mirror...
Error: Can not install 'espressif32' with version requirements '*' for your system 'darwin_x86_64'

It looks as though there is a mismatch in the version numbers, in platform.json it is 0.1.2, but the archive is 1.1.2.

PlatformIO does not support Pumbaa on ESP32 Devkit, although Pumbaa says they do support it.

`
[Tue Sep 19 10:24:49 2017] Processing esp32dev (platform: espressif32; board: esp32dev; framework: pumbaa)

Verbose mode can be enabled via -v, --verbose option
Error: This board doesn't support pumbaa framework!
======================================================== [ERROR] Took 0.48 seconds ========================================================
The terminal process terminated with exit code: 1`

Here is the information on Pumbaa site:

http://pumbaa.readthedocs.io/en/latest/boards/esp32_devkitc.html

ESP32 new IDF version release support...

Espressif's released the RC2 of the 2.0 version of the SDK.

Someone should update the platform stuff there to use the new stuff. Seems to build fine with someone turning on all the key things in sdkconfig.h from their Linux menuconfig build framework and re-syncing the project after adding:

join(FRAMEWORK_DIR, "components", "aws_iot", "include"),
join(FRAMEWORK_DIR, "components", "aws_iot", "aws-iot-device-sdk-embedded-C", "include"),

...to the espidf.py file and re-syncing the projects you're building with PlatformIO for that target as they added a new set of headers.

PlatformIO UPLOAD button does only build, but no upload to device

Environment:

PlatformIO
Version Home 0.3.0ยทCore 3.5.0a15

Plattform:
Espressif32 Version 0.10.0
Espressif32_stage Version bcfaefd

Framework:
Arduino

How to recreate

Any ESP32 project (or example) will show the problem.
Select project
Press UPLOAD button (or select from Menu PlatformIO->Upload
==> Build starts
==> After build is finished nothing else happens, last message is:

Calculating size .pioenvs\esp32dev\firmware.elf
text       data     bss     dec     hex filename
415909    72348   27160  515417   7dd59 .pioenvs\esp32dev\firmware.elf
 [SUCCESS] Took 2.70 seconds

#Workaround
Open PlatformIO terminal and enter
platformio run --target upload
to build and upload

Additional info

When building for ESP8266 or Arduino Uno the behavior of PlatformIO UPLOAD button is as expected.

undefined reference to app_main

Looking forward, the best way to resolve this issue may be to provide a few examples where there is greater program complexity with multiple subdirectories that approach a real world problem environment. In this case the working example is Pcbreflux's program ESP32_mqtts_gpio. In this example there are three user defined programs. mqtt_subscribe_main.c that has app_main(), MQTTClient.c residing in the MQTTClient-C subdirectory, and 10 or so .c files in MQTTPacket subdirectory from which I've never seen a compiler error. Within each of the subdirectories there is an empty component.mk file, at the same level as the .c file. One level up at main is another copy of an empty component.mk.
In this configuration Build all will generate the following:/Users/flashpackets/esp/workspace/ESP32_mqtts_gpio/main/./mqtt_subscribe_main.c:27:24: fatal error: MQTTClient.h: No such file or directory
compilation terminated.
If the top level make file is renamed component.mk_ Build all produces:/Users/flashpackets/esp/esp-idf/components/esp32/./cpu_start.c:305: undefined reference to `app_main'

The programs are being developed on a Mac. Not that it should matter.
As it has come up in a previous post regarding this issue the results of running make V=1 are attached.
makeV1.TXT

HTTPClient build error

Hi all, I'm using Visual Code 1.13.1, PlatformIO IDE 0.4.0
I tried to build the HTTP client GET example and get this error message

HTTPClient.cpp:30:30: fatal error: WiFiClientSecure.h: No such file or directory

My platformio.ini file is:

[platformio]
env_default = esp32dev

[env:esp32dev]
platform = espressif32_stage
framework = arduino
board = esp32dev

Unable to build simplest program on 64-bit Linux

After upgrading PlatformIO I was immediately unable to build any ESP-32 applications. This was previously working. The simplest main.cpp fails to build:

extern "C" void app_main()
{
}

OS: Linux, Ubuntu 17.10, 64-bit
Atom PlatformIDE 2.0.0-rc.4
All packages up to date.

Removed all Atom community packages, restart Atom, reinstall PlatformIO and ESP-32 framework. Problem still exists.

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = espidf

Errors occur when building the above simplest program:

[Sat Nov 25 20:50:09 2017] Processing esp32dev (platform: espressif32; board: esp32dev; framework: espidf)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Collected 0 compatible libraries
Looking for dependencies...
No dependencies
Compiling .pioenvs/esp32dev/cxx/cxx_guards.o
Compiling .pioenvs/esp32dev/wpa_supplicant/src/crypto/aes-internal-enc.o
Compiling .pioenvs/esp32dev/wpa_supplicant/src/crypto/aes-internal.o
In file included from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr.h:148:0,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/ext/atomicity.h:35,
Compiling .pioenvs/esp32dev/wpa_supplicant/src/crypto/aes-unwrap.o
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:39,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/string:52,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/random:40,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_algo.h:66,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/algorithm:62,
from /home/steven/.platformio/packages/framework-espidf/components/cxx/cxx_guards.cpp:20:
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:47:9: error: 'pthread_t' does not name a type
typedef pthread_t __gthread_t;
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:48:9: error: 'pthread_key_t' does not name a type
typedef pthread_key_t __gthread_key_t;
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:49:9: error: 'pthread_once_t' does not name a type
typedef pthread_once_t __gthread_once_t;
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:50:9: error: 'pthread_mutex_t' does not name a type
typedef pthread_mutex_t __gthread_mutex_t;
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:51:9: error: 'pthread_mutex_t' does not name a type
typedef pthread_mutex_t __gthread_recursive_mutex_t;
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:52:9: error: 'pthread_cond_t' does not name a type
typedef pthread_cond_t __gthread_cond_t;
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:659:19: error: '__gthread_create' declared as an 'inline' variable
__gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:659:19: error: '__gthread_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:659:32: error: '__threadid' was not declared in this scope
__gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:659:44: error: expected primary-expression before 'void'
__gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:660:5: error: expected primary-expression before 'void'
void *__args)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:660:17: error: expression list treated as compound expression in initializer [-fpermissive]
void *__args)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:661:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:666:17: error: '__gthread_join' declared as an 'inline' variable
__gthread_join (__gthread_t __threadid, void **__value_ptr)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:666:17: error: '__gthread_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:666:41: error: expected primary-expression before 'void'
__gthread_join (__gthread_t __threadid, void **__value_ptr)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:666:59: error: expression list treated as compound expression in initializer [-fpermissive]
__gthread_join (__gthread_t __threadid, void **__value_ptr)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:667:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:672:19: error: '__gthread_detach' declared as an 'inline' variable
__gthread_detach (__gthread_t __threadid)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:672:19: error: '__gthread_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:673:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:678:18: error: '__gthread_equal' declared as an 'inline' variable
__gthread_equal (__gthread_t __t1, __gthread_t __t2)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:678:18: error: '__gthread_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:678:36: error: '__gthread_t' was not declared in this scope
__gthread_equal (__gthread_t __t1, __gthread_t __t2)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:678:52: error: expression list treated as compound expression in initializer [-fpermissive]
__gthread_equal (__gthread_t __t1, __gthread_t __t2)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:679:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:683:15: error: '__gthread_t' does not name a type
static inline __gthread_t
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h: In function 'int __gthread_yield()':
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:692:33: error: 'sched_yield' was not declared in this scope
return __gthrw_(sched_yield) ();
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h: At global scope:
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:696:17: error: '__gthread_once' declared as an 'inline' variable
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:696:17: error: '__gthread_once_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:696:35: error: '__once' was not declared in this scope
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:696:50: error: '__func' was not declared in this scope
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:696:59: error: expected primary-expression before 'void'
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:696:64: error: expression list treated as compound expression in initializer [-fpermissive]
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:697:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:705:23: error: '__gthread_key_create' declared as an 'inline' variable
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:705:23: error: '__gthread_key_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:705:40: error: '__key' was not declared in this scope
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:705:54: error: '__dtor' was not declared in this scope
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:705:63: error: expected primary-expression before 'void'
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:705:70: error: expression list treated as compound expression in initializer [-fpermissive]
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:706:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:711:23: error: '__gthread_key_delete' declared as an 'inline' variable
__gthread_key_delete (__gthread_key_t __key)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:711:23: error: '__gthread_key_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:712:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:717:24: error: '__gthread_getspecific' declared as an 'inline' variable
__gthread_getspecific (__gthread_key_t __key)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:717:24: error: '__gthread_key_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:718:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:723:24: error: '__gthread_setspecific' declared as an 'inline' variable
__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:723:24: error: '__gthread_key_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:723:47: error: expected primary-expression before 'const'
__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:723:64: error: expression list treated as compound expression in initializer [-fpermissive]
__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:724:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:729:32: error: variable or field '__gthread_mutex_init_function' declared void
__gthread_mutex_init_function (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:729:32: error: '__gthread_mutex_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:729:51: error: '__mutex' was not declared in this scope
__gthread_mutex_init_function (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:736:26: error: '__gthread_mutex_destroy' declared as an 'inline' variable
__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:736:26: error: '__gthread_mutex_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:736:45: error: '__mutex' was not declared in this scope
__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:737:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:745:23: error: '__gthread_mutex_lock' declared as an 'inline' variable
__gthread_mutex_lock (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:745:23: error: '__gthread_mutex_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:745:42: error: '__mutex' was not declared in this scope
__gthread_mutex_lock (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:746:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:754:26: error: '__gthread_mutex_trylock' declared as an 'inline' variable
__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:754:26: error: '__gthread_mutex_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:754:45: error: '__mutex' was not declared in this scope
__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:755:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:775:25: error: '__gthread_mutex_unlock' declared as an 'inline' variable
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:775:25: error: '__gthread_mutex_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:775:44: error: '__mutex' was not declared in this scope
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:776:1: error: expected ',' or ';' before '{' token
{
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:786:42: error: '__gthread_recursive_mutex_init_function' declared as an 'inline' variable
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:786:42: error: '__gthread_recursive_mutex_t' was not declared in this scope
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:786:71: error: '__mutex' was not declared in this scope
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
^
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:787:1: error: expected ',' or ';' before '{' token
{
^
In file included from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/ext/atomicity.h:35:0,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:39,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/string:52,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/random:40,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_algo.h:66,
from /home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/algorithm:62,
from /home/steven/.platformio/packages/framework-espidf/components/cxx/cxx_guards.cpp:20:
/home/steven/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr.h:151:27: error: expected declaration before end of line
*** [.pioenvs/esp32dev/cxx/cxx_guards.o] Error 1
========================================================================== [ERROR] Took 1.03 seconds ==========================================================================1

ESP32 - Clean, Build, Upload button/menu items do all build, but not clean and not upload

Not sure if this is the right place to post the problem.

Atom version: 1.19.3 ia21
PlatformIO version Home 0.3.0 Core 3.5.0a16
Espressif 32 version 0.10.0
Espressif 32 (Stage) version aba1d7d
OS: Windows XP

When I create a project in a custom folder, e.g. (B:\Projects\ESP32\TestBoard) the Clean, Build and Upload button/menu items in PlatformIO all do only a build, no clean or upload of the project.

When I create a project in the default project folder location e.g. (C:\SPB_Data\Documents\PlatformIO\Projects...) the buttons/menu items in PlatformIO work as expected.

On ESP8266 projects I can create projects in a custom folder location and the buttons work as expected.

ESP-WROVER-KIT and SparkFun BME280 library compilation failure

When trying to compile the simplest of test programs with PIO and the SparkFun BME280 library, I receive the following errors:

$ cat main.cpp
#include <stdint.h>
#include <Wire.h>
#include <SPI.h>
#include "SparkFunBME280.h"

BME280 bme;

void setup() {

}

void loop() {

}
$ pio run
[Thu Aug 10 13:53:22 2017] Processing esp-wrover-kit (platform: espressif32; board: esp-wrover-kit; framework: arduino)
--------------------------------------------------------------------------------
Collected 15 compatible libraries
Looking for dependencies...
Library Dependency Graph
|-- <SPI> v1.0 (/Users/i831533/.platformio/packages/framework-arduinoespressif32/libraries/SPI)
|-- <SparkFun BME280> v1.1.0 (/Users/i831533/src/ESP32/wrover/bme280_test/.piolibdeps/SparkFun BME280_ID684)
|   |-- <SPI> v1.0 (/Users/i831533/.platformio/packages/framework-arduinoespressif32/libraries/SPI)
|   |-- <Wire> v1.0 (/Users/i831533/.platformio/packages/framework-arduinoespressif32/libraries/Wire)
|-- <Wire> v1.0 (/Users/i831533/.platformio/packages/framework-arduinoespressif32/libraries/Wire)
xtensa-esp32-elf-ar rcs .pioenvs/esp-wrover-kit/libFrameworkArduino.a .pioenvs/esp-wrover-kit/FrameworkArduino/Esp.o .pioenvs/esp-wrover-kit/FrameworkArduino/HardwareSerial.o .pioenvs/esp-wrover-kit/FrameworkArduino/IPAddress.o .pioenvs/esp-wrover-kit/FrameworkArduino/IPv6Address.o .pioenvs/esp-wrover-kit/FrameworkArduino/MD5Builder.o .pioenvs/esp-wrover-kit/FrameworkArduino/Print.o .pioenvs/esp-wrover-kit/FrameworkArduino/Stream.o .pioenvs/esp-wrover-kit/FrameworkArduino/StreamString.o .pioenvs/esp-wrover-kit/FrameworkArduino/WMath.o .pioenvs/esp-wrover-kit/FrameworkArduino/WString.o .pioenvs/esp-wrover-kit/FrameworkArduino/base64.o .pioenvs/esp-wrover-kit/FrameworkArduino/cbuf.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-adc.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-bt.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-dac.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-gpio.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-i2c.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-ledc.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-matrix.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-misc.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-sigmadelta.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-spi.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-time.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-timer.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-touch.o .pioenvs/esp-wrover-kit/FrameworkArduino/esp32-hal-uart.o .pioenvs/esp-wrover-kit/FrameworkArduino/libb64/cdecode.o .pioenvs/esp-wrover-kit/FrameworkArduino/libb64/cencode.o .pioenvs/esp-wrover-kit/FrameworkArduino/main.o .pioenvs/esp-wrover-kit/FrameworkArduino/stdlib_noniso.o .pioenvs/esp-wrover-kit/FrameworkArduino/wiring_pulse.o .pioenvs/esp-wrover-kit/FrameworkArduino/wiring_shift.o
xtensa-esp32-elf-ar rcs .pioenvs/esp-wrover-kit/lib/libWire.a .pioenvs/esp-wrover-kit/lib/Wire/Wire.o
xtensa-esp32-elf-ranlib .pioenvs/esp-wrover-kit/lib/libWire.a
xtensa-esp32-elf-g++ -o ".pioenvs/esp-wrover-kit/lib/SparkFun BME280_ID684/SparkFunBME280.o" -c -fno-rtti -fno-exceptions -std=gnu++11 -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -Os -g3 -nostdlib -Wpointer-arith -Wno-error=unused-but-set-variable -Wno-error=unused-variable -mlongcalls -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -DARDUINO=10610 -DARDUINO_ARCH_ESP32 -DESP32 -DESP_PLATFORM -DF_CPU=240000000L -DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DPLATFORMIO=30500 -DESP32_DEV -DARDUINO_ESP32_DEV -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bluedroid -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32 -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls_port -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp -I/Users/butch/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip -I/Users/butch/.platformio/packages/framework-arduinoespressif32/cores/esp32 -I/Users/butch/.platformio/packages/framework-arduinoespressif32/variants/esp32 -I/Users/i831533/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src -I/Users/i831533/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src "-I.piolibdeps/SparkFun BME280_ID684/src" ".piolibdeps/SparkFun BME280_ID684/src/SparkFunBME280.cpp"
xtensa-esp32-elf-ranlib .pioenvs/esp-wrover-kit/libFrameworkArduino.a
.piolibdeps/SparkFun BME280_ID684/src/SparkFunBME280.cpp: In member function 'uint8_t BME280::begin()':
.piolibdeps/SparkFun BME280_ID684/src/SparkFunBME280.cpp:82:19: error: 'MSBFIRST' was not declared in this scope
SPI.setBitOrder(MSBFIRST);
^
*** [.pioenvs/esp-wrover-kit/lib/SparkFun BME280_ID684/SparkFunBME280.o] Error 1

Using the Arduino IDE, this code compiles and runs correctly.

Unable to install espressif32_stage

I'm trying to setup the stage version of this per the directions at http://docs.platformio.org/en/latest/platforms/espressif32.html#using-arduino-framework-with-staging-version and consistently get an error on build. Any help would be appreciated.


[03/02/17 19:10:22] Processing esp32dev (platform: espressif32_stage, board: esp32dev, framework: arduino)
 
PackageManager: Installing framework-arduinoespressif32

git version 2.12.0.windows.1
Cloning into 'C:\Users\steve\.platformio\packages\installing-bgtgde-package'...
framework-arduinoespressif32 @ 0.0.0 has been successfully installed!
Verbose mode can be enabled via `-v, --verbose` option
TypeError: object of type 'NoneType' has no len():
File "C:\Users\steve\.atom\packages\platformio-ide\penv\lib\site-packages\platformio\builder\main.py", line
 142:
env.SConscript("$BUILD_SCRIPT")
File "C:\Users\steve\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 541
:
return _SConscript(self.fs, *files, **subst_kw)
File "C:\Users\steve\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 250
:
exec _file_ in call_stack[-1].globals
File "C:\Users\steve\.platformio\platforms\espressif32_stage\builder\main.py", line 138:
target_elf = env.BuildProgram()
File "C:\Users\steve\.platformio\packages\tool-scons\script\..\engine\SCons\Environment.py", line 224:

return self.method(*nargs, **kwargs)
File "C:\Users\steve\.atom\packages\platformio-ide\penv\lib\site-packages\platformio\builder\tools\platform
io.py", line 56:
env.BuildFrameworks(env.get("PIOFRAMEWORK"))
File "C:\Users\steve\.platformio\packages\tool-scons\script\..\engine\SCons\Environment.py", line 224:
return self.method(*nargs, **kwargs)
File "C:\Users\steve\.atom\packages\platformio-ide\penv\lib\site-packages\platformio\builder\tools\platform
io.py", line 258:
SConscript(env.GetFrameworkScript(f))
File "C:\Users\steve\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 604
:
return method(*args, **kw)
File "C:\Users\steve\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 541
:
return _SConscript(self.fs, *files, **subst_kw)
File "C:\Users\steve\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 250
:
exec _file_ in call_stack[-1].globals
File "C:\Users\steve\.platformio\platforms\espressif32_stage\builder\frameworks\arduino.py", line 30:
"framework-arduinoespressif32"), "tools", "platformio-build.py"))
File "c:\users\steve\.atom\packages\platformio-ide\penv\lib\ntpath.py", line 65:
result_drive, result_path = splitdrive(path)
File "c:\users\steve\.atom\packages\platformio-ide\penv\lib\ntpath.py", line 115:
if len(p) > 1:
 [ERROR] Took 10.81 seconds

Gr eiainErr oe0pnce Itrutwttmoto P0) Error. and broken character

I'm Using Sparkfun ESP32 Thing. and sending websocket message.
At the shown image, I met Gr eiainErr oe0pnce Itrutwttmoto P0) Error....

It is not always raised. just somtime shown.
I can't find this at google.

What is this Error means??

And some character is broken. (broken character is English character)
At shown image, code line 146. It will print "TCP handshaking with Server Connected. "
But below the Code, at word "handshaking", 'k', 'n' are broke.
How can i fix this problem??

esp error
esp_error_wifi_connecting

Arduino as ESP-IDF component

Hi,
Copying issue from https://community.platformio.org/t/arduino-h-not-found-esp32-with-esp-idf-framework/1257 to platform-espressif32.

Currently I am building for ESP32 using PlatformIO + Atom with the ESP-IDF Framework. The Platform.ini file details are as below:
[env:esp32dev]
platform = espressif32
framework = espidf
board = esp32dev

According to the docs https://github.com/espressif/arduino-esp3217 (section: Using as ESP-IDF component) the ESP-IDF Framework can have Arduino as component (and this works with ESP-IDF using make flash). Trying the same with PlatformIO, but compiler throws an error that Arduino.h cannot be found.

Is this an issue or do I need to make some changes which I am not aware of? hope somebody can help here.

------------- Log Start -----------------
Processing esp32dev (platform: espressif32; lib_ldf_mode: deep; board: esp32dev; framework: espidf)

Verbose mode can be enabled via -v, --verbose option
Collected 0 compatible libraries
Looking for dependencies...
Project does not have dependencies
Compiling .pioenvs\esp32dev\src\main.o

Generating partitions .pioenvs\esp32dev\partitions_table.bin
Generating LD script .pioenvs\esp32dev\esp32_out.ld
Compiling .pioenvs\esp32dev\bootloader\bootloader_start.o
Compiling .pioenvs\esp32dev\bootloaderSupport\src\bootloader_flash.o
Compiling .pioenvs\esp32dev\bootloaderSupport\src\bootloader_random.o
Compiling .pioenvs\esp32dev\bootloaderSupport\src\efuse.o
Compiling .pioenvs\esp32dev\bootloaderSupport\src\esp_image_format.o
Compiling .pioenvs\esp32dev\bootloaderSupport\src\flash_encrypt.o
Compiling .pioenvs\esp32dev\bootloaderSupport\src\flash_partitions.o
src\main.c:8:52: fatal error: components/arduino/cores/esp32/Arduino.h: No such file or directory
compilation terminated.
*** [.pioenvs\esp32dev\src\main.o] Error 1
------------- Log End ------------------

Regards,
Andy

Error build when path of project have space

When a build a project in a folder (for example test space), it's not build.
The log of build is :

MBP-de-Jonathan:ESP32_LolinOLED jonathandreyer$ pio run
[Sun Aug 27 20:54:27 2017] Processing lolin32 (monitor_baud: 115200; platform: espressif32; board: lolin32; framework: espidf)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Collected 0 compatible libraries
Looking for dependencies...
No dependencies
Compiling .pioenvs/lolin32/src/app_bt.o
Generating partitions .pioenvs/lolin32/partitions_table.bin
Generating LD script .pioenvs/lolin32/esp32_out.ld
xtensa-esp32-elf-gcc: error: space/ESP32_LolinOLED/src: No such file or directory
Compiling .pioenvs/lolin32/bootloader/bootloader_start.o
Compiling .pioenvs/lolin32/bootloader/flash_qio_mode.o
Compiling .pioenvs/lolin32/bootloaderSupport/src/bootloader_flash.o
Compiling .pioenvs/lolin32/bootloaderSupport/src/bootloader_random.o
*** [.pioenvs/lolin32/esp32_out.ld] Error 1
Compiling .pioenvs/lolin32/bootloaderSupport/src/efuse.o
======================================================================== [ERROR] Took 1.29 seconds ========================================================================

[Feature] Add support for esf-idf project

I am trying to build https://github.com/MrBuddyCasino/ESP32_MP3_Decoder .
That project using component.mk, component folder in project and Kconfig, so that project is not able to build on PlatformIO without lots of modification.
I'm also checking examples from official esp32 repo, the source files are located on folder main.
Are there any plans to support esf-idf project directly or import?

Another problem is that PlatformIO does not have Kconfig support. After I run make menuconfig I got sdkconfig, I have to manually to convert it to sdkconfig.h if I want to build the project using PlatformIO. I hope there is easier way to do that.

platform.io usering espidf framework , fatal error: sdkconfig.h not found

Issue: When attempting to build an esp32 project with espidf framework from platform.io, I receive the message " fatal error: sdkconfig.h not found" and compilation stops. I am able to compile and flash successfully with the native ESP-IDF but I really would like to be able to use platform.io to do my work. However, when trying to build the sample program, I get the error as shown below. Perhaps it's just something I have mis-configured but since I am new to platform.io, I have no clue. (Hardware is sparkfun esp32 thing, platform.io 3.2.1)

================
platformio run
Compiling .pioenvs\esp32thing\bootloader\flash_encrypt.o
Compiling .pioenvs\esp32thing\bootloader\secure_boot.o
Compiling .pioenvs\esp32thing\bootloaderLog\log.o
Compiling .pioenvs\esp32thing\bt\bt.o
Compiling .pioenvs\esp32thing\driver\gpio.o
C:\users\joe.platformio\packages\framework-espidf\components\esp32\ld\esp32.ld:17:23: fatal err
or: sdkconfig.h: No such file or directory

compilation terminated.
In file included from C:\users\joe.platformio\packages\framework-espidf\components\freertos\inc
lude/freertos/FreeRTOS.h:98:0,
from src\main.c:1:
C:\users\joe.platformio\packages\framework-espidf\components\freertos\include/freertos/FreeRTOS
Config.h:73:23: fatal error: sdkconfig.h: No such file or directory
compilation terminated.
In file included from C:\users\joe.platformio\packages\framework-espidf\components\bootloader\s
rc\main\secure_boot.c:19:0:
C:\users\joe.platformio\packa
(...continues in a similar manner....)

maximum upload binary size deprecated

The maximum upload file size has changed in esp32-arduino's boards.txt. PIO seems to ignore this value and uses the value from e.g. esp32dev.json - witch has a different size.

Upload fails when upload_flags debug is set

What kind of issue is this?

  • Bug report. If youโ€™ve found a bug, please provide an information below.

Configuration

Operating system:
Linux Mint 18 Sarah
Linux 4.4.0-83-generic x86_64

PlatformIO Version (platformio --version):
PlatformIO, version 3.4.0

Description of problem

Unable to upload the compiled firmware with debug option enabled as described in specification. This prevents me of using ESP_LOGD (part of Logging library esp_log.h) to display debug messages.

Steps to Reproduce

  1. Please create hello world project using "espidf" framework for "espressif32" platform ("esp32dev" board).
  2. In platformio.ini pleae add upload_flags = --debug.
  3. Connect the device via USB and try to upload the compiled firmware with command:
platformio run --target upload

Actual Results

It ends up with error like below:

Auto-detected: /dev/ttyUSB0
Uploading .pioenvs/esp32dev/firmware.bin
usage: esptool write_flash [-h] [--flash_freq {40m,26m,20m,80m}]
[--flash_mode {qio,qout,dio,dout}]
[--flash_size FLASH_SIZE] [--ucIsHspi]
[--ucIsLegacy] [--no-progress] [--verify]
[--compress | --no-compress]
<address> <filename> [<address> <filename> ...]
esptool write_flash: error: argument <address> <filename>: Must be pairs of an address and the binary filename to write there
*** [upload] Error 2

When the upload_flags in line platformio.ini is commented, everything is fine and it ends up with "success" message.

Expected Results

It should ends up with the "success" message.

================================================================== [SUCCESS] Took 44.22 seconds ==================================================================

The content of platformio.ini:

[env:esp32dev]
platform = espressif32
framework = espidf
board = esp32dev
upload_flags = --debug

Source file to reproduce issue:

As the source code please use the example taken from here.
The goal was to replace printf with ESP_LOGD but then I need to have a possibility to enable debug mode as by default messages printed by the ESP_LOGD are not displayed.

Additional info

I tried to study the specification and the Authentication and upload options section. I followed the instructions. If I understood something wrong, could you please clarify the spec?
So in case this is not a but, could you please describe how to successfully enable debug mode in my project?
If this is a bug, any temporary workaround would be also very welcome.

Thanks!

gatts_demo.c does not compile

Hello,

I'm trying to use the gatts_demo.c (https://github.com/espressif/esp-idf/blob/master/examples/bluetooth/gatt_server/main/gatts_demo.c) example of esp-idf with Platformio (VSCode and Atom), but it does not compile. Following, the logs:

.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gap_event_handler+0x1c): undefined reference to `esp_ble_gap_start_advertising'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.example_write_event_env+0x10): undefined reference to `esp_ble_gatts_send_response'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_b_event_handler+0x64): undefined reference to `esp_ble_gatts_create_service'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_b_event_handler+0x6c): undefined reference to `esp_ble_gatts_send_indicate'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_b_event_handler+0x70): undefined reference to `esp_ble_gatts_start_service'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_b_event_handler+0x74): undefined reference to `esp_ble_gatts_add_char'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_b_event_handler+0x78): undefined reference to `esp_ble_gatts_add_char_descr'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_a_event_handler+0x50): undefined reference to `esp_ble_gap_set_device_name'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_a_event_handler+0x54): undefined reference to `esp_ble_gap_config_adv_data'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_a_event_handler+0x58): undefined reference to `esp_ble_gatts_get_attr_value'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.gatts_profile_a_event_handler+0x5c): undefined reference to `esp_ble_gap_update_conn_params'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.app_main+0x40): undefined reference to `esp_bluedroid_init'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.app_main+0x44): undefined reference to `esp_bluedroid_enable'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.app_main+0x48): undefined reference to `esp_ble_gatts_register_callback'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.app_main+0x4c): undefined reference to `esp_ble_gap_register_callback'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.app_main+0x50): undefined reference to `esp_ble_gatts_app_register'
.pioenvs\featheresp32\src\gatts_demo.o:(.literal.app_main+0x54): undefined reference to `esp_ble_gatt_set_local_mtu'
.pioenvs\featheresp32\src\gatts_demo.o: In function `gap_event_handler':
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:212: undefined reference to `esp_ble_gap_start_advertising'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:218: undefined reference to `esp_ble_gap_start_advertising'
.pioenvs\featheresp32\src\gatts_demo.o: In function `example_write_event_env':
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:275: undefined reference to `esp_ble_gatts_send_response'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:286: undefined reference to `esp_ble_gatts_send_response'
.pioenvs\featheresp32\src\gatts_demo.o: In function `gatts_profile_b_event_handler':
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:511: undefined reference to `esp_ble_gatts_create_service'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:522: undefined reference to `esp_ble_gatts_send_response'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:540: undefined reference to `esp_ble_gatts_send_indicate'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:552: undefined reference to `esp_ble_gatts_send_indicate'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:562: undefined reference to `esp_ble_gatts_send_response'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:576: undefined reference to `esp_ble_gatts_start_service'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:582: undefined reference to `esp_ble_gatts_add_char'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:594: undefined reference to `esp_ble_gatts_add_char_descr'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:624: undefined reference to `esp_ble_gap_set_device_name'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:629: undefined reference to `esp_ble_gap_config_adv_data'
.pioenvs\featheresp32\src\gatts_demo.o: In function `gatts_profile_a_event_handler':
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:334: undefined reference to `esp_ble_gap_config_adv_data'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:338: undefined reference to `esp_ble_gatts_create_service'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:351: undefined reference to `esp_ble_gatts_send_response'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:372: undefined reference to `esp_ble_gatts_send_indicate'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:384: undefined reference to `esp_ble_gatts_send_indicate'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:394: undefined reference to `esp_ble_gatts_send_response'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:405: undefined reference to `esp_ble_gatts_start_service'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:409: undefined reference to `esp_ble_gatts_add_char'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:426: undefined reference to `esp_ble_gatts_get_attr_value'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:443: undefined reference to `esp_ble_gatts_add_char_descr'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:465: undefined reference to `esp_ble_gap_update_conn_params'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:471: undefined reference to `esp_ble_gap_start_advertising'
.pioenvs\featheresp32\src\gatts_demo.o: In function `app_main':
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:489: undefined reference to `esp_bluedroid_init'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:695: undefined reference to `esp_bluedroid_enable'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:700: undefined reference to `esp_ble_gatts_register_callback'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:706: undefined reference to `esp_ble_gap_register_callback'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:709: undefined reference to `esp_ble_gatts_app_register'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:713: undefined reference to `esp_ble_gatts_app_register'
***\PlatformIO\Projects\170917-102013-featheresp32/src/gatts_demo.c:718: undefined reference to `esp_ble_gatt_set_local_mtu'

As a side note, the espidf-ble-adv example compiles and runs perfectly (board = featheresp32).

ESP Build configuration should default to enabling the stack canary.

It seems like the compilation flags for ESP32 projects differ from the defaults from the arduino-esp32 repository. In particular, arduino-esp32 apparently defaults with the stack-canary option turned on, while the platformio build has it off.

I discovered this when trying to debug an extremely confusing issue where I had a stack overflow that was corrupting the freertos internal task management structures.

Principally, it seems that projects need to be compiled with -D CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY.

See: espressif/arduino-esp32#315

Ignoring commented out "#include Arduino.h" when compiling

I'm debugging a bigger problem that I've whittled down to this example
Description:
Compiler ignores commenting in the line //#include "Arduino.h" and tries to include it anyway

Reproduce:

  • Take the espidf_httprequest example code (should work with any)
  • Add a header file in a private library (in this case lib/Common/Common.h)
  • Add single include #include "Arduino.h" (this fails as in #24, although it says it can't find common.h)
  • Change the line to //#include "Arduino.h" (This should still fail)
  • Only compiles again when the line is deleted.

image

Custom partition table

See http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables


Configuration

Operating system: Windows 7 Ultimate 64bit Service Pack 1

PlatformIO Version (platformio --version): 3.5.0rc10

Visual Studio Code Version: 1.18.0

Atom Version: 1.23.1 x64

Description of problem

Partition sizes doesn't change even if default.csv is changed.

Steps to Reproduce

Following this issue I tried to change the partition sizes on my ESP32 Dev Module.
The changed default.csv:

Name, Type, SubType, Offset, Size, Flags

nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x150000,
app1, app, ota_1, 0x160000,0x150000,
eeprom, data, 0x99, 0x310000,0x1000,
spiffs, data, spiffs, 0x311000,640K,

But after uploading the partition sizes are still the default ones:

App partition table:
SubType 10 Address 0x010000 Size 0x140000 Encryption 0 Label app0
SubType 11 Address 0x150000 Size 0x140000 Encryption 0 Label app1
Data partition table:
SubType 02 Address 0x009000 Size 0x005000 Encryption 0 Label nvs
SubType 00 Address 0x00e000 Size 0x002000 Encryption 0 Label otadata
SubType 99 Address 0x290000 Size 0x001000 Encryption 0 Label eeprom
SubType 82 Address 0x291000 Size 0x16f000 Encryption 0 Label spiffs

Then I tried the exact same procedure on Arduino IDE and the partition size changed to:

App partition table:
Type: 00 SubType 10 Address 0x010000 Size 0x150000 Encryption 0 Label app0
Type: 00 SubType 11 Address 0x160000 Size 0x150000 Encryption 0 Label app1
Data partition table:
Type: 01 SubType 02 Address 0x009000 Size 0x005000 Encryption 0 Label nvs
ype: 01 SubType 00 Address 0x00E000 Size 0x002000 Encryption 0 Label otadata
Type: 01 SubType 99 Address 0x310000 Size 0x001000 Encryption 0 Label eeprom
Type: 01 SubType 82 Address 0x311000 Size 0x0A0000 Encryption 0 Label spiffs

Going back to PlatformIO, I uploaded my code again from there and the changed partition sizes are still valid.

It seems that PlatformIO doesn't change the partition size at all. Or is my method to change the partition sizes wrong?

SOLVED: After last update platform = espressif32_stage is not working anymore

SOLUTION

Please use

[env:..]
platform = https://github.com/platformio/platform-espressif32.git#feature/stage
...

After the last update, if I have platform = espressif32_stage in my platformio.ini file I get the following error:

platformio run
[11/26/17 18:56:39] Processing esp32dev (build_flags: -O0; lib_deps: 1671; platform: espressif32_stage; board: esp32dev; framework: arduino; lib_ext
ra_dirs: B:\Projects\ESP32\ESP32Lib; upload_port: 192.168.0.106)
 
PlatformManager: Installing espressif32_stage
Error: Detected unknown package 'espressif32_stage'

platform = https://github.com/platformio/platform-espressif32.git#feature/stage
works as expected.
Is this the expected behaviour???

ESP32 toolchain broken??

I run an update today with platformio update and if I remember correct it updated the toolchain for ESP32. After the update all builds fail (even the blink example).
Error messages:

platformio run
[11/26/17 18:41:32] Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
 
Verbose mode can be enabled via `-v, --verbose` option
Collected 26 compatible libraries
Looking for dependencies...
No dependencies
Compiling .pioenvs\esp32dev\FrameworkArduino\Esp.o

Compiling .pioenvs\esp32dev\FrameworkArduino\esp32-hal-gpio.o
Compiling .pioenvs\esp32dev\FrameworkArduino\esp32-hal-i2c.o
Compiling .pioenvs\esp32dev\FrameworkArduino\esp32-hal-ledc.o
Compiling .pioenvs\esp32dev\FrameworkArduino\esp32-hal-matrix.o
Compiling .pioenvs\esp32dev\FrameworkArduino\esp32-hal-misc.o
Compiling .pioenvs\esp32dev\FrameworkArduino\esp32-hal-sigmadelta.o
Compiling .pioenvs\esp32dev\FrameworkArduino\esp32-hal-spi.o
In file included from c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr.h
:148:0,
from c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\ext\atomicity.h:35,
from c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\memory:73,
from C:\Users\beegee\.platformio\packages\framework-arduinoespressif32\cores\esp32\Esp.cpp:25:
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:47:9: error: 
'pthread_t' does not name a type
typedef pthread_t __gthread_t;
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:48:9: error: 
'pthread_key_t' does not name a type
typedef pthread_key_t __gthread_key_t;
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:48:9: error: 
'pthread_key_t' does not name a type
typedef pthread_key_t __gthread_key_t;
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:49:9: error: 
'pthread_once_t' does not name a type
typedef pthread_once_t __gthread_once_t;
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:50:9: error: 
'pthread_mutex_t' does not name a type
typedef pthread_mutex_t __gthread_mutex_t;
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:51:9: error: 
'pthread_mutex_t' does not name a type
typedef pthread_mutex_t __gthread_recursive_mutex_t;
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:52:9: error: 
'pthread_cond_t' does not name a type
typedef pthread_cond_t __gthread_cond_t;
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:659:19: error
: '__gthread_create' declared as an 'inline' variable
__gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
^

c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:659:19: error
: '__gthread_t' was not declared in this scope
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:659:32: error
: '__threadid' was not declared in this scope
__gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:659:44: error
: expected primary-expression before 'void'
__gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:660:5: error:
 expected primary-expression before 'void'
void *__args)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:660:17: error
: expression list treated as compound expression in initializer [-fpermissive]
void *__args)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:661:1: error:
 expected ',' or ';' before '{' token
{
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:666:17: error
: '__gthread_join' declared as an 'inline' variable
__gthread_join (__gthread_t __threadid, void **__value_ptr)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:666:17: error
: '__gthread_t' was not declared in this scope
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:666:41: error
: expected primary-expression before 'void'
__gthread_join (__gthread_t __threadid, void **__value_ptr)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:666:59: error
: expression list treated as compound expression in initializer [-fpermissive]
__gthread_join (__gthread_t __threadid, void **__value_ptr)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:667:1: error:
 expected ',' or ';' before '{' token
{
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:672:19: error
: '__gthread_detach' declared as an 'inline' variable
__gthread_detach (__gthread_t __threadid)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:672:19: error
: '__gthread_t' was not declared in this scope
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:673:1: error:
 expected ',' or ';' before '{' token
{
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:678:18: error
: '__gthread_equal' declared as an 'inline' variable
__gthread_equal (__gthread_t __t1, __gthread_t __t2)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:678:18: error
: '__gthread_t' was not declared in this scope
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:678:36: error
: '__gthread_t' was not declared in this scope
__gthread_equal (__gthread_t __t1, __gthread_t __t2)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:678:52: error
: expression list treated as compound expression in initializer [-fpermissive]
__gthread_equal (__gthread_t __t1, __gthread_t __t2)
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:679:1: error:
 expected ',' or ';' before '{' token
{
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:683:15: error
: '__gthread_t' does not name a type
static inline __gthread_t
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h: In function 
'int __gthread_yield()':
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:692:33: error
: 'sched_yield' was not declared in this scope
return __gthrw_(sched_yield) ();
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h: At global sc
ope:
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:696:17: error
: '__gthread_once' declared as an 'inline' variable
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:696:17: error
: '__gthread_once_t' was not declared in this scope
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:696:35: error
: '__once' was not declared in this scope
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:696:50: error
: '__func' was not declared in this scope
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
^
c:\users\beegee\.platformio\packages\toolchain-xtensa32\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr-default.h:696:59: error
....

Platform and library version:

PS B:\Projects\ESP32\ESP32-Weatherstation - EMQ> platformio update
Updating tool-scons                      @ 3.20501.2      [Up-to-date]
Updating tool-unity                      @ 1.20302.1      [Up-to-date]
Updating pysite-pioplus                  @ 0.4.2          [Up-to-date]
Updating contrib-piohome                 @ 0.3.2          [Up-to-date]
Updating tool-pioplus                    @ 0.10.14        [Up-to-date]

Platform Manager
================
Platform Espressif 32
--------
Updating espressif32                     @ 0.10.0         [Up-to-date]

Updating tool-esptoolpy                  @ 1.20000.0      [Up-to-date]
Updating toolchain-xtensa32              @ 1.50200.1      [Up-to-date]
Updating framework-arduinoespressif32    @ 1.2.0          [Up-to-date]

Platform Espressif 32 (Stage)
--------
Updating espressif32                     @ 0a02d44        [Up-to-date]
Updating tool-esptoolpy                  @ 1.20100.0      [Up-to-date]
Updating toolchain-xtensa32              @ 1.50200.1      [Up-to-date]
Updating framework-arduinoespressif32    @ 8eecfd2        [Up-to-date]

Platform Espressif 8266
--------
Updating espressif8266                   @ 1.4.0          [Up-to-date]
Updating framework-arduinoespressif8266  @ 1.20300.1      [Up-to-date]
Updating tool-esptool                    @ 1.409.0        [Up-to-date]
Updating toolchain-xtensa                @ 1.40802.0      [Up-to-date]
 
Platform Espressif 8266 (Stage)
--------
Updating espressif8266                   @ a05b810        [Up-to-date]
Updating framework-arduinoespressif8266  @ 7b09ae5        [Up-to-date]
Updating tool-esptool                    @ 1.409.0        [Up-to-date]
Updating toolchain-xtensa                @ 1.40802.0      [Up-to-date]

 
 
Library Manager
===============
Updating Adafruit DHT Unified            @ 1.0.0          [Up-to-date]
Updating Adafruit TSL2561                @ 1.0.0          [Up-to-date]
Updating Adafruit Unified Sensor         @ 1.0.2          [Up-to-date]
Updating ArduinoJson                     @ 5.11.2         [Up-to-date]
Updating DHT sensor library              @ 1.3.0          [Up-to-date]
Updating MQTT                            @ 2.2.1          [Up-to-date]
Updating TFT_eSPI                        @ 0.17.11        [Up-to-date]
Updating Ticker-esp32                    @ 1.0.0          [Up-to-date]
Updating Time                            @ 18ce15b202     [Up-to-date]
Updating WifiManager                     @ 0.12           [Up-to-date]
Updating esp8266FTPServer                @ 97888b3        [Up-to-date]
PS B:\Projects\ESP32\ESP32-Weatherstation - EMQ>  

PIO core version:

PS B:\Projects\ESP32\ESP32-Weatherstation - EMQ> platformio upgrade
You're up-to-date!
PlatformIO 3.5.0b6 is currently the newest version available.
PS B:\Projects\ESP32\ESP32-Weatherstation - EMQ>  

Python Process Still Running After ESP32 Upload

On OSX uploading to the ESP32 sometimes leaves Python processes even after quitting Atom. They were taking almost 100% CPU each and making my laptop sound like it was about to take off.

Adding new version of framework

Hello!

After having small conversation in ESP-IDF i need to work with ESP IDF v3-dev version of framework.
But platformio is excellent tool and i don't want to refuse it.

I tried to replace all content except package.json in framework-espidf folder to new dev version of framework and have a huge list of errors.

Please suggest what should i do to update plaformio esp-idf framework?
Maybe i need to edit some platformio configs?

Thnx.

Can't flash firmware on ESP32

###Issue:
Using default examples for esp32 boards, building is working, upload is not.
###Debug Error:
Looking for upload port... Auto-detected: COM7 Uploading .pioenvs\esp32doit-devkit-v1\firmware.bin usage: esptool write_flash [-h] [--flash_freq {keep,40m,26m,20m,80m}] [--flash_mode {keep,qio,qout,dio,dout}] [--flash_size FLASH_SIZE] [--spi-connection SPI_CONNECTION] [--no-progress] [--verify] [--compress | --no-compress] <address> <filename> [<address> <filename> ...] esptool write_flash: error: argument <address> <filename>: [Errno 2] No such file or directory: 'C:\\Users\\Alberto' *** [upload] Error 2 [ERROR] Took 8.11 seconds

Errors installing; platformio platform install espressif32

Hi.

I'm facing this issue:


PS D:\Visual Studio 2017\Projects\OurSecurity\Blynk> pio update
Updating tool-scons @ 3.20501.2 [Up-to-date]
Updating tool-unity @ 1.20302.1 [Up-to-date]
Updating pysite-pioplus @ 0.4.2 [Up-to-date]
Updating contrib-piohome @ 0.4.0 [Up-to-date]
Updating tool-pioplus @ 0.11.0 [Up-to-date]

Platform Manager

Platform Espressif 8266 (Stage)

Updating espressif8266 @ 4f59cef [Up-to-date]
Updating framework-arduinoespressif8266 @ eb49406 [Up-to-date]
Updating tool-esptool @ 1.409.0 [Up-to-date]
Updating toolchain-xtensa @ 1.40802.0 [Up-to-date]

Library Manager

PS D:\Visual Studio 2017\Projects\OurSecurity\Blynk> platformio platform install espressif32
PlatformManager: Installing espressif32
Downloading [####################################] 100%
Unpacking [####################################] 100%
espressif32 @ 0.11.0 has been successfully installed!
PackageManager: Installing toolchain-xtensa32 @ ~1.50200.2
Downloading [------------------------------------] 0%
Please manually remove file C:\Users\Jorge\.platformio\packages\_tmp_installing-sfpzza-package\toolchain-xtensa32-windows-1.50200.2.tar.gz
Warning! Package Mirror: [Error 32] The process cannot access the file because it is being used by another process: 'C:\Users\Jorge\.platformio\packages\_tmp_installing-sfpzza-package\toolchain-xtensa32-windows-1.50200.2.tar.gz'
Looking for other mirror...
Downloading [------------------------------------] 0%
Please manually remove file C:\Users\Jorge\.platformio\packages\_tmp_installing-tfrkxm-package\toolchain-xtensa32-windows-1.50200.2.tar.gz
Warning! Package Mirror: [Error 32] The process cannot access the file because it is being used by another process: 'C:\Users\Jorge\.platformio\packages\_tmp_installing-tfrkxm-package\toolchain-xtensa32-windows-1.50200.2.tar.gz'
Looking for other mirror...
Error: Could not install 'toolchain-xtensa32' with version requirements '~1.50200.2' for your system 'windows_amd64'.
If you use Antivirus, it can block PlatformIO Package Manager. Try to disable it for a while.
PS D:\Visual Studio 2017\Projects\OurSecurity\Blynk>


I've tried to uninstall my antivirus ant the result is the same.
Can you help?

Thanks in advance.
Regards,

Jorge

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.