Code Monkey home page Code Monkey logo

esp-at's People

Contributors

adityahpatwardhan avatar donghengqaz avatar esp-coco avatar fayey avatar heyinling avatar krzychb avatar luxin812 avatar mahavirj avatar natashali-espressif avatar simple12360 avatar songjiaxiu-espressif avatar ustccw avatar wangyuxin-esp avatar wujiangang avatar xcguang avatar xiewenxiang 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp-at's Issues

Top makefile, directly use the submodule

The esp32-at project already has an ESP-IDF as a submodule, which should be used to compile the >project, in order to avoid any compatibility issues (e.g. compile failure or running problems, etc.).

Why not just do this?

diff --git a/Makefile b/Makefile
index 841ffd3..6cf8edd 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@
 
 PROJECT_NAME := esp-at
 EXTRA_CFLAGS += -DSDK_GIT=IDF_VER
-include $(IDF_PATH)/make/project.mk
+include $(PWD)/esp-idf/make/project.mk
 
 print_flash_cmd:
        echo $(ESPTOOL_WRITE_FLASH_OPTIONS) $(ESPTOOL_ALL_FLASH_ARGS) | sed -e 's:'$(PWD)/build/'::g'

Specify connections for server

When device is in server mode, it can happen that at some point, all connections are used for server and there is no support to use client mode at that time.

What we should have option to set is which connections are available for server.

Correct me if I'm mistaken, but current server approach is like this:

  • User enables server at specific port
  • ESP creates new connection and listens at specific port
  • When connection is accepted, ESP creates new empty connection to listen on same port
  • And so on, which means there is always one connection active and ready to accept new connection, except if we reached max connections.

We should be able to limit the number of connections and for example only allow server to use them:

  • uC sends AT+CIPSERVERCONN=1,0,80
  • uC sends AT+CIPSERVERCONN=1,1,90
  • uC sends AT+CIPSERVERCONN=1,2,100

These 3 commands would enable connections 0,1,2 only for server at ports 80, 90, 100. If ESP got more than 3 connections at a time, they should wait before one of these 3 is available again. LwIP does support multiple ports where it accepts the connection so this should be able also here with AT.

If we then try AT+CIPSTART=1,... from uC, we should got an error because connection is reserved for server only! In this case, we can use connections 4,5 for client.


This allows us to have better control from uC, specially on devices with small amount of RAM.
On top of RAM control, it also allows you to prepare MCU, just like ESP prepares with LwIP stack which connections and callbacks are used before actual data are ready.

I'm waiting for your response!

+IPD design issue

+IPD — Receives Network Data
this is a command (including packet-data) send by ESP32 in which the other side uC (or whatever) have no control of when will be send.

Since this is async (uC cannot control), this could cause problem to uC when comes at unexpected time.

The number of bytes that will be transmitted also isnt controlled at all by the uC.

Where as ESP32 AT+CIPSEND command have provision on number of bytes that can be transmitted (2KB max) and ESP32 get to send '>' to tell when it is ready to enter packet acceptance stage.

Due to the poor AT command design (+IPD), it will not be possible to use DMA properly with UART in uC side.

It would have been better that, the +IPD should have been similar to AT+CIPSEND. the uC would poll at interval to fetch data.

something like would be better:

  • uC send AT+IPD=<link ID>,<len>
  • ESP32 send <available-length>[,<remote IP>,<remote port>]
  • uC send >
  • ESP32 send the <packet data bytes....>

Though this is a complex negotiation but far better to use for uC interrupt driven processing and when bulk data is there uC can utilized DMA too.

The Things here are outdated!

Hi espressif

we wait now long time for fixes
open the LIBS - ALL!

We are in OpenSource!

The Things here are outdated and hangs extremly!

best wishes
rudi ;-)

compile failed - Include err

Hi All,

I've been trying to compile the esp32_at example with no success.
All the paths have been set properly.
I have all the necessary tools to compile (I think) because I have managed to compile examples from the esp_idf repo before changing the IDF_PATH to the esp_idf that embedded in the esp32_at directory.

The error is as follows:

from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/ext/atomicity.h:35, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:39, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/string:52, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/random:40, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_algo.h:66, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/algorithm:62, from /relevant_path/esp/esp32-at/esp-idf/components/cxx/./cxx_guards.cpp:20: /relevant_path/esp/xtensa-esp32-elf/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; ^ /relevant_path/esp/xtensa-esp32-elf/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; ^ /relevant_path/esp/xtensa-esp32-elf/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; ^ /relevant_path/esp/xtensa-esp32-elf/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; ^ /relevant_path/esp/xtensa-esp32-elf/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; ^ /relevant_path/esp/xtensa-esp32-elf/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; ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:101:1: error: 'pthread_once' was not declared in this scope __gthrw(pthread_once) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:102:1: error: 'pthread_getspecific' was not declared in this scope __gthrw(pthread_getspecific) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:103:1: error: 'pthread_setspecific' was not declared in this scope __gthrw(pthread_setspecific) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:105:1: error: 'pthread_create' was not declared in this scope __gthrw(pthread_create) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:106:1: error: 'pthread_join' was not declared in this scope __gthrw(pthread_join) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:107:1: error: 'pthread_equal' was not declared in this scope __gthrw(pthread_equal) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:108:1: error: 'pthread_self' was not declared in this scope __gthrw(pthread_self) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:109:1: error: 'pthread_detach' was not declared in this scope __gthrw(pthread_detach) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:111:1: error: 'pthread_cancel' was not declared in this scope __gthrw(pthread_cancel) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:113:1: error: 'sched_yield' was not declared in this scope __gthrw(sched_yield) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:115:1: error: 'pthread_mutex_lock' was not declared in this scope __gthrw(pthread_mutex_lock) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:116:1: error: 'pthread_mutex_trylock' was not declared in this scope __gthrw(pthread_mutex_trylock) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:120:1: error: 'pthread_mutex_unlock' was not declared in this scope __gthrw(pthread_mutex_unlock) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:121:1: error: 'pthread_mutex_init' was not declared in this scope __gthrw(pthread_mutex_init) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:122:1: error: 'pthread_mutex_destroy' was not declared in this scope __gthrw(pthread_mutex_destroy) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:124:1: error: 'pthread_cond_init' was not declared in this scope __gthrw(pthread_cond_init) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:125:1: error: 'pthread_cond_broadcast' was not declared in this scope __gthrw(pthread_cond_broadcast) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:126:1: error: 'pthread_cond_signal' was not declared in this scope __gthrw(pthread_cond_signal) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:127:1: error: 'pthread_cond_wait' was not declared in this scope __gthrw(pthread_cond_wait) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:128:1: error: 'pthread_cond_timedwait' was not declared in this scope __gthrw(pthread_cond_timedwait) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:129:1: error: 'pthread_cond_destroy' was not declared in this scope __gthrw(pthread_cond_destroy) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:131:1: error: 'pthread_key_create' was not declared in this scope __gthrw(pthread_key_create) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:132:1: error: 'pthread_key_delete' was not declared in this scope __gthrw(pthread_key_delete) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:133:1: error: 'pthread_mutexattr_init' was not declared in this scope __gthrw(pthread_mutexattr_init) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:134:1: error: 'pthread_mutexattr_settype' was not declared in this scope __gthrw(pthread_mutexattr_settype) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:135:1: error: 'pthread_mutexattr_destroy' was not declared in this scope __gthrw(pthread_mutexattr_destroy) ^ /relevant_path/esp/xtensa-esp32-elf/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*), ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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*), ^ /relevant_path/esp/xtensa-esp32-elf/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*), ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:661:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:667:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:673:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:679:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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 ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h: In function 'int __gthread_yield()': /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:692:33: error: '__gthrw_sched_yield' cannot be used as a function return __gthrw_(sched_yield) (); ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h: At global scope: /relevant_path/esp/xtensa-esp32-elf/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)) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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)) ^ /relevant_path/esp/xtensa-esp32-elf/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)) ^ /relevant_path/esp/xtensa-esp32-elf/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)) ^ /relevant_path/esp/xtensa-esp32-elf/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)) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:697:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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 *)) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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 *)) ^ /relevant_path/esp/xtensa-esp32-elf/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 *)) ^ /relevant_path/esp/xtensa-esp32-elf/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 *)) ^ /relevant_path/esp/xtensa-esp32-elf/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 *)) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:706:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:712:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:718:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:724:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:737:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:746:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:755:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:776:1: error: expected ',' or ';' before '{' token { ^ /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/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) ^ /relevant_path/esp/xtensa-esp32-elf/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 /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/ext/atomicity.h:35:0, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:39, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/string:52, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/random:40, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_algo.h:66, from /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/algorithm:62, from /relevant_path/esp/esp32-at/esp-idf/components/cxx/./cxx_guards.cpp:20: /relevant_path/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr.h:151:27: error: expected declaration before end of line /relevant_path/esp/esp32-at/esp-idf/make/component_wrapper.mk:210: recipe for target 'cxx_guards.o' failed make[1]: *** [cxx_guards.o] Error 1 /relevant_path/esp/esp32-at/esp-idf/make/project.mk:386: recipe for target 'cxx-build' failed make: *** [cxx-build] Error 2

I'll much appriciate your reply

Guru Meditation Error: Core 0 panic'ed (abort)

Hello,

My ESP32 stopped working; I've tried several of the example scripts. All of them yield the following errors:

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_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:2036
load:0x40078000,len:9988
load:0x40080000,len:252
entry 0x40080034
assertion "state == EntryState::WRITTEN || state == EntryState::EMPTY" failed: file "/Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/nvs_flash/src/nvs_page.cpp", line 315, function: esp_err_t nvs::Page::eraseEntryAndSpan(size_t)
abort() was called at PC 0x401040ff
Guru Meditation Error: Core  0 panic'ed (abort)

Backtrace: 0x40008155:0x3ffc9740 0x40007d16:0x3ffc9760 0x400f6b65:0x3ffc9790 0x400f7161:0x3ffc97d0 0x400f739a:0x3ffc9840 0x400f7a50:0x3ffc98a0 0x400f6284:0x3ffc9900 0x400f5f42:0x3ffc9950 0x400f5f8e:0x3ffc9970 0x400d1163:0x3ffc9990 0x4010406a:0x3ffc99b0 0x400d9489:0x3ffc99e0

CPU halted.

Thanks!

Josh

wifi: invalid magic number 3f40815a: Guru Meditation Error: Core 0 panic'ed (abort)

I'm trying to flash ESP32 with the esp32-at project on the WROVER-KIT dev board and this is the following error I'm getting:
I (1713) cpu_start: Pro cpu up.
I (1724) cpu_start: Single core mode
I (1738) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (1761) heap_alloc_caps: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM
I (1782) heap_alloc_caps: At 3FFBAB28 len 000254D8 (149 KiB): DRAM
I (1803) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (1824) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (1846) heap_alloc_caps: At 400938A4 len 0000C75C (49 KiB): IRAM
I (1867) cpu_start: Pro cpu start user code
I (1923) cpu_start: Starting scheduler on PRO CPU.
I (2149) uart: queue free spaces: 10
E (2151) wifi: invalid magic number 3f40815a, call WIFI_INIT_CONFIG_DEFAULT to i
nit config
E (2151) wifi: wifi_init 1306 ret=258
ESP_ERROR_CHECK failed: esp_err_t 0x102 at 0x40119413
0x40119413: at_queryCmdCipsntptime at ??:?

Guru Meditation Error: Core 0 panic'ed (abort)

I tried erase_flash but still keep getting this error and the monitor window loops forever. Please help!

I can flash the board with other programs like the esp-idf examples but I really need the AT commands to work so I can finish my projects. Thanks for the help in advance!

-Kaustubh

wifi: invalid magic number 1,

I noticed a closed issue had this same problem but wasn't resolved.

This is a brand new install of ESP-IDF in past week. I followed the directions for the installing of ESP-AT.

Here is a partial screen shot of what I am getting.
image
After this it gives a Backtrace and reboots.

A couple of items. Since this board is an XBEE format board running on top of an Arduino board the only UART available to the Arduino is UART0 so everything is done on UART0.

Not sure about what I SHOULD be setting everything to I found a data sheet that looks like the same as the processor on the schematics for this Xbee board. So I used the following settings:
image

The other item is that I have the console stuff still going to UART0 and is turned on. Not sure if this is a collision in the sw and not allowed for both the console and the communications to go through the same UART?

AT+GSLP get Flash Read Error 1000

hi
a test on DevKitC and AT+GSLP=2000
i get an falling back and .. flash read error... falling back .. and new boot then is ok.
do i miss a second partion for bootloader?
sdkconfig is single app, without OTA

6

best wishes
rudi ;-)

ESP32 as TCP Client in UART-Wi-Fi Passthrough

Hello,

I want to use the ESP32-AT-Command-Set to set up a WIFI-TCP-Communication with an Android Smartphone. A second ESP32 is configured as Access Point. The connection of the devices works without problems. But in transparent transmission mode I get no response when TCP-Connection gets closed e.g. if the Smartphone shuts down.
Only the Programming-UART puts messages when WIFI-Connection is closed or opened again.

For TCP-Connection I use AT+CIPSTART="TCP","192.168.101.110",1000,0 so TCP keep-alive is disabled.
But TCP is kept alive and Transmission-UART don´t put messages like CLOSED. Now I don´t know how to detect a missing TCP-Connection occurring while run-time. Is this detection possible with AT-Commands? I don´t want to leave transparrent transmission before detection.

For my application it would be enough to detect WIFI-Connection and let TCP keep-alive enabled.
Is it possible to build in a GPIO-Port which is toggling when the AT-Command-Core puts out the WIFI-Connection messages? I think therefore I need access to the libat_core.a. Why is this closed source?

Thank you,

JPast

libat_core.a and ESP-IDF V2.1

Hi All

I would like to ask who to integrate the libat_core.a to the latest release of the ESP-IDF v2.1
Looks like according to the docs here that at the moment it is co-related to a specific ESP-IDF version.

I would like to request some advice about how to integrate the the libat_core.a to the new ESP-IDF realese?
Thanks

Juan

compilation problem libat_core.a undefined reference

Hi,
I try to compile esp32-at by myself and I have these errors (see log below).
Everything si ok for other project compilations like hello_world.....
If people can help me on this, it would be wonderful. Thanks a lot!
sk

LOG:
LD build/esp-at.elf
/home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o):(.literal.gattc_profile_event_handler+0x50): undefined reference to esp_ble_gattc_get_descriptor' /home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o):(.literal.gattc_profile_event_handler+0x54): undefined reference to esp_ble_gattc_get_characteristic'
/home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o):(.literal.gattc_profile_event_handler+0x58): undefined reference to esp_ble_gattc_get_included_service' /home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o):(.literal.at_setupCmdBleCfgMtu+0x0): undefined reference to esp_ble_gattc_config_mtu'
/home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o):(.text.gattc_profile_event_handler+0x41f): undefined reference to esp_ble_gattc_get_descriptor' /home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o):(.text.gattc_profile_event_handler+0x446): undefined reference to esp_ble_gattc_get_characteristic'
/home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o):(.text.gattc_profile_event_handler+0x51f): undefined reference to esp_ble_gattc_get_descriptor' /home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o):(.text.gattc_profile_event_handler+0x6e7): undefined reference to esp_ble_gattc_get_included_service'
/home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o): In function at_setupCmdBleCfgMtu': (.text.at_setupCmdBleCfgMtu+0x42): undefined reference to esp_ble_gattc_config_mtu'
/home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o): In function at_setupCmdBleGattcPrimSrv': (.text.at_setupCmdBleGattcPrimSrv+0x10f): undefined reference to esp_ble_gattc_get_characteristic'
/home/xisco/esp/esp32-at/components/at/lib/libat_core.a(at_bleCmd.o): In function at_setupCmdBleGattcInclSrv': (.text.at_setupCmdBleGattcInclSrv+0x9e): undefined reference to esp_ble_gattc_get_included_service'
collect2: error: ld returned 1 exit status
/home/xisco/esp/esp-idf/make/project.mk:366: recipe for target '/home/xisco/esp/esp32-at/build/esp-at.elf' failed
make: *** [/home/xisco/esp/esp32-at/build/esp-at.elf] Error 1

Failed to startup after fresh flash.

I am using the "Espressif ESP32 Development Board - Developer Edition" dev board to test it out, and I cloned this repo, the idf repo, and downloaded the toolchain as it says in the instructions. I do a "make flash" and keep the menuconfig as default. It flashes successfully, but when I connect to it via serial it keeps failing and rebooting. The first poweron_reset is due to me pressing the reset button, the rest is it rebooting itself. (Same stuff after the "Rebooting...") Have I done something wrong? Am I supposed to do some configuration voodoo to make this work? If so, can someone point me to the correct docs?

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:2
load:0x3fff0008,len:8
load:0x3fff0010,len:3464
load:0x40078000,len:7828
load:0x40080000,len:252
entry 0x40080034
[0;32mI (43) boot: ESP-IDF v2.0-rc1-257-g4745895 2nd stage bootloader[0m
[0;32mI (44) boot: compile time 14:16:11[0m
[0;32mI (44) boot: Enabling RNG early entropy source...[0m
[0;32mI (64) boot: SPI Speed      : 40MHz[0m
[0;32mI (77) boot: SPI Mode       : DIO[0m
[0;32mI (89) boot: SPI Flash Size : 4MB[0m
[0;32mI (102) boot: Partition Table:[0m
[0;32mI (113) boot: ## Label            Usage          Type ST Offset   Length[0m
[0;32mI (136) boot:  0 phy_init         RF data          01 01 0000f000 00001000[0m
[0;32mI (159) boot:  1 ota_0            OTA app          00 10 00010000 000ea000[0m
[0;32mI (182) boot:  2 nvs              WiFi data        01 02 000fa000 00016000[0m
[0;32mI (205) boot:  3 ota_1            OTA app          00 11 00110000 000ea000[0m
[0;32mI (229) boot:  4 otadata          OTA data         01 00 001fd000 00003000[0m
[0;32mI (252) boot: End of partition table[0m
[0;32mI (265) boot: Disabling RNG early entropy source...[0m
[0;32mI (282) boot: Loading app partition at offset 00010000[0m
[0;32mI (1449) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512) [0m
[0;32mI (1450) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x19cf8 (105720) map[0m
[0;32mI (1467) boot: segment 2: paddr=0x00039d08 vaddr=0x3ffb0000 size=0x02144 (  8516) load[0m
[0;32mI (1497) boot: segment 3: paddr=0x0003be54 vaddr=0x40080000 size=0x00400 (  1024) load[0m
[0;32mI (1520) boot: segment 4: paddr=0x0003c25c vaddr=0x40080400 size=0x1a70c (108300) load[0m
[0;32mI (1598) boot: segment 5: paddr=0x00056970 vaddr=0x400c0000 size=0x00034 (    52) load[0m
[0;32mI (1599) boot: segment 6: paddr=0x000569ac vaddr=0x00000000 size=0x0965c ( 38492) [0m
[0;32mI (1615) boot: segment 7: paddr=0x00060010 vaddr=0x400d0018 size=0x78e70 (495216) map[0m
[0;32mI (1643) heap_alloc_caps: Initializing. RAM available for dynamic allocation:[0m
[0;32mI (1665) heap_alloc_caps: At 3FFBA668 len 00025998 (150 KiB): DRAM[0m
[0;32mI (1686) heap_alloc_caps: At 3FFE8000 len 00018000 (96 KiB): D/IRAM[0m
[0;32mI (1708) heap_alloc_caps: At 4009AB0C len 000054F4 (21 KiB): IRAM[0m
[0;32mI (1728) cpu_start: Pro cpu up.[0m
[0;32mI (1740) cpu_start: Single core mode[0m
[0;32mI (1753) cpu_start: Pro cpu start user code[0m
[0;32mI (1814) cpu_start: Starting scheduler on PRO CPU.[0m
[0;31mE (1820) uart: uart_wait_tx_done(703): uart driver error[0m
[0;32mI (1820) uart: queue free spaces: 10[0m
heap:227152

E (1825) wifi: esp_wifi_set_storage 1231 wifi is not init
E (1831) wifi: invalid magic number 2, call WIFI_INIT_CONFIG_DEFAULT to init config
E (1838) wifi: wifi_init 1230 ret=258
assertion "0 && "esp_wifi_init(&cfg)"" failed: file "/home/xcg/workspace/esp_iot_at/esp-at-application/components/esp-at-core/./at_port.c", line 560, function: initialise_wifi
abort() was called at PC 0x400f774f
Guru Meditation Error: Core  0 panic'ed (abort)

Backtrace: 0x40008155:0x3ffbbee0 0x40007d16:0x3ffbbf00 0x40111acf:0x3ffbbf30 0x4011227a:0x3ffbbf60 0x4010d288:0x3ffbbfa0 0x4010cdb2:0x3ffbbfe0 0x400d0b2d:0x3ffbc000

Rebooting...

ESP32-WROVER

Does all ESP32-WROVER shipped with AT command installed?

mbedtls stack overflow

I tried to add some functions to AT code,but got the panic.
Log:
ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x17 (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:2
load:0x3fff0008,len:8
load:0x3fff0010,len:3464
load:0x40078000,len:7828
load:0x40080000,len:252
0x40080000: _WindowOverflow4 at ??:?
entry 0x40080034
0x40080034: _WindowOverflow4 at ??:?
I (44) boot: ESP-IDF v2.0-rc1-296-g02fdf827 2nd stage bootloader
I (44) boot: compile time 19:16:12
I (45) boot: Enabling RNG early entropy source...
I (65) boot: SPI Speed : 40MHz
I (78) boot: SPI Mode : DIO
I (90) boot: SPI Flash Size : 4MB
I (102) boot: Partition Table:
I (114) boot: ## Label Usage Type ST Offset Length
I (136) boot: 0 phy_init RF data 01 01 0000f000 00001000
I (160) boot: 1 otadata OTA data 01 00 00010000 00002000
I (183) boot: 2 nvs WiFi data 01 02 00012000 0000e000
I (206) boot: 3 ble_data unknown 40 00 00020000 00003000
I (229) boot: 4 ota_0 OTA app 00 10 00100000 00180000
I (253) boot: 5 ota_1 OTA app 00 11 00280000 00180000
I (276) boot: End of partition table
I (289) boot: Disabling RNG early entropy source...
I (306) boot: Loading app partition at offset 00100000
I (1517) boot: segment 0: paddr=0x00100018 vaddr=0x00000000 size=0x0ffe8 ( 65512
)
I (1518) boot: segment 1: paddr=0x00110008 vaddr=0x3f400010 size=0x22108 (139528
) map
I (1534) boot: segment 2: paddr=0x00132118 vaddr=0x3ffb0000 size=0x02178 ( 8568
) load
I (1565) boot: segment 3: paddr=0x00134298 vaddr=0x40080000 size=0x00400 ( 1024
) load
0x40080000: _WindowOverflow4 at ??:?
I (1588) boot: segment 4: paddr=0x001346a0 vaddr=0x40080400 size=0x1a70c (108300
) load
I (1666) boot: segment 5: paddr=0x0014edb4 vaddr=0x400c0000 size=0x00034 ( 52
) load
I (1667) boot: segment 6: paddr=0x0014edf0 vaddr=0x00000000 size=0x01218 ( 4632
)
I (1683) boot: segment 7: paddr=0x00150010 vaddr=0x400d0018 size=0x8093c (526652
) map
0x400d0018: _stext at ??:?
I (1709) cpu_start: Pro cpu up.
I (1721) cpu_start: Single core mode
I (1735) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (1758) heap_alloc_caps: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM
I (1778) heap_alloc_caps: At 3FFBA6B0 len 00025950 (150 KiB): DRAM
I (1799) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (1821) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (1842) heap_alloc_caps: At 4009AB0C len 000054F4 (21 KiB): IRAM
I (1863) cpu_start: Pro cpu start user code
I (1924) cpu_start: Starting scheduler on PRO CPU.
I (2166) uart: queue free spaces: 10
I (2168) wifi: wifi firmware version: 0b5b6e7
I (2168) wifi: config NVS flash: enabled
I (2168) wifi: config nano formating: disabled
I (2175) wifi: Init dynamic tx buffer num: 32
I (2176) wifi: wifi driver task: 3ffc2df8, prio:23, stack:3584
I (2181) wifi: Init static rx buffer num: 10
I (2185) wifi: Init dynamic rx buffer num: 0
I (2189) wifi: Init rx ampdu len mblock:7
I (2193) wifi: Init lldesc rx ampdu entry mblock:4
I (2197) wifi: wifi power manager task: 0x3ffc81a0 prio: 21 stack: 2560
I (2204) wifi: wifi timer task: 3ffc9220, prio:22, stack:3584
E (2209) phy_init: PHY data partition validated
I (2228) phy: phy_version: 329, Feb 22 2017, 15:58:07, 0, 0
I (2229) wifi: Init ampdu: 1
I (2229) wifi: mode : sta (24:0a:c4:05:8f:6c)
I (2231) wifi: Init ampdu: 1
I (2233) wifi: mode : sta (24:0a:c4:05:8f:6c) + softAP (24:0a:c4:05:8f:6d)
I (2242) wifi: mode : sta (24:0a:c4:05:8f:6c)
I (2365) wifi: n:1 1, o:1 0, ap:255 255, sta:1 1, prof:1
I (3022) wifi: state: init -> auth (b0)
I (3025) wifi: state: auth -> assoc (0)
I (3030) wifi: state: assoc -> run (10)
I (3044) wifi: connected with TP-LINK_M, channel 1
I (4823) event: ip: 10.0.0.116, mask: 255.255.255.0, gw: 10.0.0.1
I (13030) wifi: pm start, type:0

http get...
I (31200) example: Seeding the random number generator
I (31201) example: Loading the CA root certificate...
I (31204) example: Setting hostname for TLS session...
I (31207) example: Setting up the SSL/TLS structure...
I (31215) example: Connecting to www.howsmyssl.com:443...
I (32488) example: Connected.
I (32488) example: Performing the SSL/TLS handshake...
I (32488) mbedtls: ssl_tls.c:6306 => handshake

I (32492) mbedtls: ssl_cli.c:3254 client state: 0

I (32497) mbedtls: ssl_tls.c:2430 => flush output

I (32503) mbedtls: ssl_tls.c:2442 <= flush output

I (32508) mbedtls: ssl_cli.c:3254 client state: 1

I (32514) mbedtls: ssl_tls.c:2430 => flush output

I (32519) mbedtls: ssl_tls.c:2442 <= flush output

[0;32ERROR A stack overflow in task at_process_task has been detected.
abort() was called at PC 0x40085c4c
0x40085c4c: vApplicationStackOverflowHook at F:/Code/ESP32/20170531/esp32-at/esp
-idf/components/esp32/panic.c:444
Guru Meditation Error: Core 0 panic'ed (abort)

Backtrace: 0x400824f0:0x3ffc9bf0 0x40082679:0x3ffc9c10 0x40082c46:0x3ffc9c30 0x4
0084a9b:0x3ffc9c50 0x40084a55:0x3ffc9c40
0x400824f0: uart_tx_char at F:/Code/ESP32/20170531/esp32-at/esp-idf/components/v
fs/vfs_uart.c:43 (discriminator 1)
0x40082679: uart_write at F:/Code/ESP32/20170531/esp32-at/esp-idf/components/vfs
/vfs_uart.c:61 (discriminator 2)
0x40082c46: xPortGetCoreID at F:/Code/ESP32/20170531/esp32-at/esp-idf/components
/freertos/tasks.c:4425
(inlined by) vTaskSwitchContext at F:/Code/ESP32/20170531/esp32-at/esp-idf/comp
onents/freertos/tasks.c:2732
0x40084a9b: _frxt_dispatch at ??:?
0x40084a55: _frxt_int_exit at ??:?

Rebooting...

I dont know how to increase the stack size of mbedtls.Can someone provide any suggestions?Thanx!

ESP32-AT receiving UDP

Hello,
I want use this application for my project and I cannot receive UDP packet. I tried create server: AT+CIPSERVER=1,1234 and receive UDP packets on the port 123, but no packets received. I see packets on the wireshark. TCP is OK.

And other question, is it possible send/receive multicast UDP packets? For example in address 224.0.0.251 and port 5353. I know, that there is MDNS service, but I need more than MDNS.

Thank you,
Vilem

small typo in AT docu (AT+CIPSTART)

In the doku there is a "hidden" feature in the AT+CIPSTART:

in the doku:
[type]: string parameter indicating the connection type: "TCP" or "UDP"

but the Example reveals a next type:
Example AT+CIPSTART="SSL","iot.espressif.cn",8443

suggestion for the Doku:
[type]: string parameter indicating the connection type: "TCP", "UDP" and "SSL"

.

Guru Meditation Error while performing SSL handshake

While I am trying to connect to an SSL server, I am consistently getting the following crash:
[I][ssl_client.cpp] start_ssl_client(): Free heap before TLS 149404
[I][ssl_client.cpp] start_ssl_client(): Starting socket
[I][ssl_client.cpp] start_ssl_client(): Seeding the random number generator
[I][ssl_client.cpp] start_ssl_client(): Setting up the SSL/TLS structure...
[I][ssl_client.cpp] start_ssl_client(): Loading CA cert
[I][ssl_client.cpp] start_ssl_client(): Performing the SSL/TLS handshake...
Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU1)
Register dump:
PC : 0x400e6a40 PS : 0x00060934 A0 : 0x8008597c A1 : 0x3ffcc5a0
A2 : 0x00000008 A3 : 0x00000001 A4 : 0x00060023 A5 : 0x3ffcccfc
A6 : 0x00000000 A7 : 0x00000001 A8 : 0x3ffc3a64 A9 : 0x3ffcc580
A10 : 0x00000000 A11 : 0x00060920 A12 : 0x80084458 A13 : 0x3ffcc4a0
A14 : 0x00000000 A15 : 0x3ffcc120 SAR : 0x00000000 EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000

Backtrace: 0x400e6a40:0x3ffcc5a0 0x4008597c:0x3ffcc5c0

Any ideas on what might be happening?

Nothing happens when I type AT

Hi,
I have the AT commands configured on UART0 and I have the following output:

rst:0x1 (POWERON_RESET),boot:0x1e (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:2
load:0x3fff0008,len:8
load:0x3fff0010,len:3472
load:0x40078000,len:7804
load:0x40080000,len:252
entry 0x40080034
I (43) boot: ESP-IDF v2.0 2nd stage bootloader
I (43) boot: compile time 15:45:12
I (43) boot: Enabling RNG early entropy source...
I (59) boot: SPI Speed : 40MHz
I (72) boot: SPI Mode : DIO
I (84) boot: SPI Flash Size : 4MB
I (96) boot: Partition Table:
I (107) boot: ## Label Usage Type ST Offset Length
I (130) boot: 0 phy_init RF data 01 01 0000f000 00001000
I (153) boot: 1 otadata OTA data 01 00 00010000 00002000
I (177) boot: 2 nvs WiFi data 01 02 00012000 0000e000
I (200) boot: 3 ble_data unknown 40 00 00020000 00003000
I (223) boot: 4 ota_0 OTA app 00 10 00100000 00180000
I (246) boot: 5 ota_1 OTA app 00 11 00280000 00180000
I (270) boot: End of partition table
I (283) boot: Disabling RNG early entropy source...
I (300) boot: Loading app partition at offset 00100000
I (1475) boot: segment 0: paddr=0x00100018 vaddr=0x00000000 size=0x0ffe8 ( 65512)
I (1476) boot: segment 1: paddr=0x00110008 vaddr=0x3f400010 size=0x1c690 (116368) map
I (1492) boot: segment 2: paddr=0x0012c6a0 vaddr=0x3ffb0000 size=0x0215c ( 8540) load
I (1523) boot: segment 3: paddr=0x0012e804 vaddr=0x40080000 size=0x00400 ( 1024) load
I (1546) boot: segment 4: paddr=0x0012ec0c vaddr=0x40080400 size=0x1b028 (110632) load
I (1625) boot: segment 5: paddr=0x00149c3c vaddr=0x400c0000 size=0x00064 ( 100) load
I (1626) boot: segment 6: paddr=0x00149ca8 vaddr=0x00000000 size=0x06360 ( 25440)
I (1642) boot: segment 7: paddr=0x00150010 vaddr=0x400d0018 size=0x7a548 (501064) map
I (1670) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (1692) heap_alloc_caps: At 3FFBA6C0 len 00025940 (150 KiB): DRAM
I (1713) heap_alloc_caps: At 3FFE8000 len 00018000 (96 KiB): D/IRAM
I (1735) heap_alloc_caps: At 4009B428 len 00004BD8 (18 KiB): IRAM
I (1755) cpu_start: Pro cpu up.
I (1767) cpu_start: Single core mode
I (1780) cpu_start: Pro cpu start user code
I (1838) cpu_start: Starting scheduler on PRO CPU.
;32mI (2050) uart: queue free spaces: 10
I (2051) wifi: wifi firmware version: c604573
I (2052) wifi: config NVS flash: enabled
I (2052) wifi: config nano formating: disabled
I (2060) wifi: Init dynamic tx buffer num: 32
I (2060) wifi: wifi driver task: 3ffc4dac, prio:23, stack:3584
I (2065) wifi: Init static rx buffer num: 10
I (2069) wifi: Init dynamic rx buffer num: 0
I (2073) wifi: Init rx ampdu len mblock:7
I (2076) wifi: Init lldesc rx ampdu entry mblock:4
I (2081) wifi: wifi power manager task: 0x3ffca154 prio: 21 stack: 2560
I (2087) wifi: wifi timer task: 3ffcb1d4, prio:22, stack:3584
E (2093) phy_init: PHY data partition validated
I (2128) phy: phy_version: 329, Feb 22 2017, 15:58:07, 0, 0
I (2129) wifi: mode : softAP (30:ae:a4:03:6a:d9)
I (2132) wifi: mode : sta (30:ae:a4:03:6a:d8) + softAP (30:ae:a4:03:6a:d9)
I (2136) wifi: mode : softAP (30:ae:a4:03:6a:d9)

ready
AT

But nothing happens when I type AT and hit 'enter'. I tried using TeraTerm and SecureCRT but same results. Can someone please help?

Thanks,
Kaustubh

esp32-at compile errors

I just clone this repository and followed the instructions in README.md. But when i run "make all" the log shows this errors. I am on a Windows environment.

First , compilation starts with this warning about crosstool.

$ make flash
WARNING: Toolchain version is not supported: crosstool-NG crosstool-ng-1.22.0-73-ge28a011
Expected to see version: crosstool-NG crosstool-ng-1.22.0-61-gab8375a
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
WARNING: Toolchain version is not supported: crosstool-NG crosstool-ng-1.22.0-73-ge28a011
Expected to see version: crosstool-NG crosstool-ng-1.22.0-61-gab8375a
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
CC src/bootloader_random.o
CC src/flash_encrypt.o

.
.
.

CC port/coap_io_socket.o
AR libcoap.a
CXX cxx_guards.o
In file included from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr.h:148:0,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\ext\atomicity.h:35,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\basic_string.h:39,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\string:52,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\random:40,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algo.h:66,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\algorithm:62,
from C:/Users/pasante/Documents/ESP32/esp32-at/esp-idf/components/cxx/cxx_guards.cpp:20:
c:\msys32\opt\xtensa-esp32-elf\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:\msys32\opt\xtensa-esp32-elf\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:\msys32\opt\xtensa-esp32-elf\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:\msys32\opt\xtensa-esp32-elf\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:\msys32\opt\xtensa-esp32-elf\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:\msys32\opt\xtensa-esp32-elf\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;
^

.
. more errors
.

c:\msys32\opt\xtensa-esp32-elf\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 c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\ext\atomicity.h:35:0,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\basic_string.h:39,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\string:52,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\random:40,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\bits\stl_algo.h:66,
from c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\algorithm:62,
from C:/Users/pasante/Documents/ESP32/esp32-at/esp-idf/components/cxx/cxx_guards.cpp:20:
c:\msys32\opt\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\5.2.0\xtensa-esp32-elf\bits\gthr.h:151:27: error: expected declaration before end of line
make[1]: *** [/c/Users/pasante/Documents/ESP32/esp32-at/esp-idf/make/component_wrapper.mk:211: cxx_guards.o] Error 1
make: *** [/c/Users/pasante/Documents/ESP32/esp32-at/esp-idf/make/project.mk:386: cxx-build] Error 2

Default AT Command GPIO

The document stated the default AT command is GPIO16 and GPIO17 but these are not the U1RXD and U1TXD in the ESP32 device datasheet. Am I missing something here?

AT+CIPMODE=1 ..stop sending data with +++ proposal response_ok

hi
proposal:
if we stop sending data with '+++' in transparent mode ( AT+CIPMODE=1 )
there comes just in time no "OK\r\n"

if we can check for an "OK\r\n"
we do not need wait "1 second" and try for next AT Command
we can check after sending stop signal ( +++ ) for an "OK\r\n" and
then we can use next AT Command without a "wait"

8

cause AT is in a LIB
can't link and pull request the code for it
hope the proposal is understandly written.

best wishes
rudi ;-)

small typo mistake in AT docu

4.2.3
Site 19/53

AT+CIPSTA—Sets the IP Address of the ESP32 Station

Query Command:
AT+CIPSTA?
Function: to obtain the IP address of the ESP32 SoftAP.

think must renamed
ESP32 SoftAP -> ESP32 Station
here too:

Set Command:
AT+CIPSTA=,[,,]
Function: to set the IP address of the ESP32 SoftAP.

think must renamed
ESP32 SoftAP -> ESP32 Station

small_bug

best wishes
rudi ;-)

Spurious "SEND OK" in communication

Since we managed to figure out #11 - things work much better, but there is still an issue with the text "SEND OK" appearing sometimes inside the payload, like this:

+IPD,0,40:SEND OK ....

It happens seldomly though, so may be some kind of timing thing. We are fully aware that this is the status response from CIPSEND (page 26 in docs) but we handle those properly and they shouldn't appear inside the payload from IPD. It seems like there are two different threads somehow getting interleaved here.

Can't get it to boot properly

I can get this version to boot:

8092010

...but newer versions seems to have problem booting. I suspect the commit right after - that changes the partition layout. Whatever I do I just don't get a ready prompt, I get the following:

gokr@yoda:~/evo/esp32/esp32-at$ make simple_monitor 
--- forcing DTR inactive
--- forcing RTS inactive
--- Miniterm on /dev/ttyUSB0  115200,8,N,1 ---
--- Quit: Ctrl+] | 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:2
load:0x3fff0008,len:8
load:0x3fff0010,len:3464
load:0x40078000,len:7800
load:0x40080000,len:252
entry 0x40080034
�

Note the lack of "ready" at the end.

When it works I get this:

gokr@yoda:~/evo/esp32/esp32-at$ make simple_monitor 
--- forcing DTR inactive
--- forcing RTS inactive
--- Miniterm on /dev/ttyUSB0  115200,8,N,1 ---
--- Quit: Ctrl+] | 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:2
load:0x3fff0008,len:8
load:0x3fff0010,len:3464
load:0x40078000,len:7800
load:0x40080000,len:252
entry 0x40080034
�
ready

The diff for my sdkconfig that works (for the older commit) compared to current make defconfig is this:

gokr@yoda:~/evo/esp32/esp32-at$ diff sdkconfig.works sdkconfig
81c81
< CONFIG_PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET=0x10000
---
> CONFIG_PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET=0x100000
84c84
< CONFIG_APP_OFFSET=0x10000
---
> CONFIG_APP_OFFSET=0x100000
269,271c269,271
< CONFIG_AT_UART_PORT=0
< CONFIG_AT_UART_PORT_RX_PIN=3
< CONFIG_AT_UART_PORT_TX_PIN=1
---
> CONFIG_AT_UART_PORT=1
> CONFIG_AT_UART_PORT_RX_PIN=16
> CONFIG_AT_UART_PORT_TX_PIN=17

Note old offsets obviously, since it works with that older commit. As you can see the only thing I change is to use UART0 instead of UART1.

Compile error following README instructions

Hello, I've installed ESP-IDF just now and I really compiled and flashed containing examples. However, I tried to compile ESP32-at environment and I've got the following error:

I'm using Ubuntu 16.04.3 64-bit on a VM. The ESP-IDF path from esp32-at (cloned from this repository) was added to PATH environment, as mentioned on instructions.

WARNING: Toolchain version is not supported: crosstool-NG crosstool-ng-1.22.0-73-ge28a011 Expected to see version: crosstool-NG crosstool-ng-1.22.0-61-gab8375a Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk. WARNING: Toolchain version is not supported: crosstool-NG crosstool-ng-1.22.0-73-ge28a011 Expected to see version: crosstool-NG crosstool-ng-1.22.0-61-gab8375a Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk. CC src/efuse.o CC src/bootloader_flash.o CC src/secure_boot_signatures.o CC src/secure_boot.o CC src/flash_partitions.o CC src/esp_image_format.o CC src/flash_encrypt.o CC src/bootloader_random.o AR libbootloader_support.a CC log.o AR liblog.a CC spi_flash_rom_patch.o AR libspi_flash.a CC micro-ecc/uECC.o AR libmicro-ecc.a CC esp32/rtc_pm.o CC esp32/cpu_util.o CC esp32/brownout.o CC esp32/rtc_init.o CC esp32/rtc_sleep.o CC esp32/rtc_time.o CC esp32/rtc_clk.o AR libsoc.a CC bootloader_start.o CC flash_qio_mode.o AR libmain.a LD bootloader.elf esptool.py v2.0 building AT customized partition table at_customize.csv building AT customized partition table succeed generating AT customized partition bins to /home/tmedicci/esp/esp32-at/build/customized_partitions generating ble_data.bin: python /home/tmedicci/esp/esp32-at/tools/BLEService.py -t /home/tmedicci/esp/esp32-at/build/customized_partitions/ble_data.bin /home/tmedicci/esp/esp32-at/components/customized_partitions/raw_data/ble_data/example.csv AT customized partitions successfully generated: ble_data generating server_cert.bin: python /home/tmedicci/esp/esp32-at/tools/AtPKI.py generate_bin -b /home/tmedicci/esp/esp32-at/build/customized_partitions/server_cert cert /home/tmedicci/esp/esp32-at/components/customized_partitions/raw_data/server_cert/example.crt AT customized partitions successfully generated: server_cert generating server_key.bin: python /home/tmedicci/esp/esp32-at/tools/AtPKI.py generate_bin -b /home/tmedicci/esp/esp32-at/build/customized_partitions/server_key key /home/tmedicci/esp/esp32-at/components/customized_partitions/raw_data/server_key/example.key AT customized partitions successfully generated: server_key generating server_ca.bin: python /home/tmedicci/esp/esp32-at/tools/AtPKI.py generate_bin -b /home/tmedicci/esp/esp32-at/build/customized_partitions/server_ca ca /home/tmedicci/esp/esp32-at/components/customized_partitions/raw_data/server_ca/example.crt AT customized partitions successfully generated: server_ca AT customized bin generation finished Building partitions from /home/tmedicci/esp/esp32-at/partitions_at.csv... CC esp_ota_ops.o AR libapp_update.a CC src/efuse.o CC src/bootloader_flash.o CC src/secure_boot_signatures.o CC src/secure_boot.o CC src/flash_partitions.o CC src/esp_image_format.o CC src/flash_encrypt.o CC src/bootloader_random.o AR libbootloader_support.a CC bt.o CC bluedroid/bta/dm/bta_dm_api.o CC bluedroid/bta/dm/bta_dm_sco.o CC bluedroid/bta/dm/bta_dm_ci.o CC bluedroid/bta/dm/bta_dm_act.o CC bluedroid/bta/dm/bta_dm_pm.o CC bluedroid/bta/dm/bta_dm_main.o CC bluedroid/bta/dm/bta_dm_cfg.o CC bluedroid/bta/gatt/bta_gattc_main.o CC bluedroid/bta/gatt/bta_gatts_api.o CC bluedroid/bta/gatt/bta_gattc_cache.o CC bluedroid/bta/gatt/bta_gatts_main.o CC bluedroid/bta/gatt/bta_gattc_api.o CC bluedroid/bta/gatt/bta_gattc_utils.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/bta/gatt/bta_gattc_utils.c: In function 'bta_gattc_mark_bg_conn': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/bta/gatt/bta_gattc_utils.c:687:18: warning: unused variable 'bdstr' [-Wunused-variable] char bdstr[18] = {0}; ^ CC bluedroid/bta/gatt/bta_gatts_act.o CC bluedroid/bta/gatt/bta_gattc_ci.o CC bluedroid/bta/gatt/bta_gattc_act.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/bta/gatt/bta_gattc_act.c: In function 'bta_gattc_init_bk_conn': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/bta/gatt/bta_gattc_act.c:524:22: warning: unused variable 'bda' [-Wunused-variable] uint8_t *bda = (uint8_t *)p_data->remote_bda; ^ CC bluedroid/bta/gatt/bta_gatts_utils.o CC bluedroid/bta/hh/bta_hh_api.o CC bluedroid/bta/hh/bta_hh_utils.o CC bluedroid/bta/hh/bta_hh_le.o CC bluedroid/bta/hh/bta_hh_act.o CC bluedroid/bta/hh/bta_hh_main.o CC bluedroid/bta/hh/bta_hh_cfg.o CC bluedroid/bta/sdp/bta_sdp.o CC bluedroid/bta/sdp/bta_sdp_act.o CC bluedroid/bta/sdp/bta_sdp_cfg.o CC bluedroid/bta/sdp/bta_sdp_api.o CC bluedroid/bta/av/bta_av_api.o CC bluedroid/bta/av/bta_av_ssm.o CC bluedroid/bta/av/bta_av_ci.o CC bluedroid/bta/av/bta_av_act.o CC bluedroid/bta/av/bta_av_main.o CC bluedroid/bta/av/bta_av_sbc.o CC bluedroid/bta/av/bta_av_aact.o CC bluedroid/bta/av/bta_av_cfg.o CC bluedroid/bta/ar/bta_ar.o CC bluedroid/bta/sys/bta_sys_main.o CC bluedroid/bta/sys/utl.o CC bluedroid/bta/sys/bta_sys_conn.o CC bluedroid/btcore/bdaddr.o CC bluedroid/btif/bta_gattc_co.o CC bluedroid/btif/bta_dm_co.o CC bluedroid/btif/bta_gatts_co.o CC bluedroid/device/interop.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/device/interop.c: In function 'interop_match': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/device/interop.c:50:18: warning: unused variable 'bdstr' [-Wunused-variable] char bdstr[20] = {0}; ^ /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/device/interop.c: At top level: /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/device/interop.c:30:20: warning: 'interop_feature_string' defined but not used [-Wunused-function] static const char *interop_feature_string(const interop_feature_t feature) ^ CC bluedroid/device/controller.o CC bluedroid/gki/gki_ulinux.o CC bluedroid/gki/gki_buffer.o CC bluedroid/hci/buffer_allocator.o CC bluedroid/hci/hci_hal_h4.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/hci/hci_hal_h4.c: In function 'hci_hal_h4_hdl_rx_packet': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/hci/hci_hal_h4.c:198:17: warning: variable 'len' set but not used [-Wunused-but-set-variable] uint8_t len = 0; ^ CC bluedroid/hci/hci_packet_parser.o CC bluedroid/hci/packet_fragmenter.o CC bluedroid/hci/hci_layer.o CC bluedroid/hci/hci_packet_factory.o CC bluedroid/main/bte_main.o CC bluedroid/main/bte_init.o CC bluedroid/osi/future.o CC bluedroid/osi/hash_map.o CC bluedroid/osi/fixed_queue.o CC bluedroid/osi/allocator.o CC bluedroid/osi/config.o CC bluedroid/osi/list.o CC bluedroid/osi/hash_functions.o CC bluedroid/osi/alarm.o CC bluedroid/osi/buffer.o CC bluedroid/osi/osi_arch.o CC bluedroid/external/sbc/decoder/srce/bitstream-decode.o CC bluedroid/external/sbc/decoder/srce/synthesis-sbc.o CC bluedroid/external/sbc/decoder/srce/decoder-oina.o CC bluedroid/external/sbc/decoder/srce/bitalloc.o CC bluedroid/external/sbc/decoder/srce/framing.o CC bluedroid/external/sbc/decoder/srce/dequant.o CC bluedroid/external/sbc/decoder/srce/alloc.o CC bluedroid/external/sbc/decoder/srce/synthesis-dct8.o CC bluedroid/external/sbc/decoder/srce/bitalloc-sbc.o CC bluedroid/external/sbc/decoder/srce/decoder-private.o CC bluedroid/external/sbc/decoder/srce/synthesis-8-generated.o CC bluedroid/external/sbc/decoder/srce/framing-sbc.o CC bluedroid/external/sbc/decoder/srce/oi_codec_version.o CC bluedroid/external/sbc/decoder/srce/decoder-sbc.o CC bluedroid/btc/core/btc_task.o CC bluedroid/btc/core/btc_main.o CC bluedroid/btc/core/btc_config.o CC bluedroid/btc/core/btc_util.o CC bluedroid/btc/core/btc_storage.o CC bluedroid/btc/core/btc_ble_storage.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/btc/core/btc_ble_storage.c: In function 'btc_read_le_key': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/btc/core/btc_ble_storage.c:145:18: warning: unused variable 'bd_str' [-Wunused-variable] char bd_str[20] = {0}; ^ CC bluedroid/btc/core/btc_profile_queue.o CC bluedroid/btc/core/btc_alarm.o CC bluedroid/btc/core/btc_manage.o CC bluedroid/btc/core/btc_sec.o CC bluedroid/btc/core/btc_sm.o CC bluedroid/btc/core/btc_dev.o CC bluedroid/btc/core/btc_dm.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/btc/core/btc_dm.c: In function 'btc_dm_ble_auth_cmpl_evt': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/btc/core/btc_dm.c:121:17: warning: variable 'status' set but not used [-Wunused-but-set-variable] bt_status_t status = BT_STATUS_FAIL; ^ CC bluedroid/btc/profile/esp/blufi/blufi_prf.o CC bluedroid/btc/profile/esp/blufi/blufi_protocol.o CC bluedroid/btc/profile/std/gap/btc_gap_bt.o CC bluedroid/btc/profile/std/gap/btc_gap_ble.o CC bluedroid/btc/profile/std/gatt/btc_gattc.o CC bluedroid/btc/profile/std/gatt/btc_gatt_util.o CC bluedroid/btc/profile/std/gatt/btc_gatts.o CC bluedroid/btc/profile/std/a2dp/bta_av_co.o CC bluedroid/btc/profile/std/a2dp/btc_media_task.o CC bluedroid/btc/profile/std/a2dp/btc_avk.o CC bluedroid/btc/profile/std/avrc/btc_avrc.o CC bluedroid/stack/btm/btm_ble_batchscan.o CC bluedroid/stack/btm/btm_ble_cont_energy.o CC bluedroid/stack/btm/btm_sec.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/btm/btm_sec.c: In function 'btm_sec_bond_by_transport': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/btm/btm_sec.c:953:23: warning: variable 'p_features' set but not used [-Wunused-but-set-variable] UINT8 *p_features; ^ CC bluedroid/stack/btm/btm_ble.o CC bluedroid/stack/btm/btm_pm.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/btm/btm_pm.c:954:20: warning: 'mode_to_string' defined but not used [-Wunused-function] static const char *mode_to_string(tBTM_PM_MODE mode) ^ CC bluedroid/stack/btm/btm_ble_adv_filter.o CC bluedroid/stack/btm/btm_inq.o CC bluedroid/stack/btm/btm_main.o CC bluedroid/stack/btm/btm_devctl.o CC bluedroid/stack/btm/btm_ble_privacy.o CC bluedroid/stack/btm/btm_acl.o CC bluedroid/stack/btm/btm_ble_bgconn.o CC bluedroid/stack/btm/btm_dev.o CC bluedroid/stack/btm/btm_ble_gap.o CC bluedroid/stack/btm/btm_ble_multi_adv.o CC bluedroid/stack/btm/btm_ble_addr.o CC bluedroid/stack/btm/btm_sco.o CC bluedroid/stack/btu/btu_hcif.o CC bluedroid/stack/btu/btu_task.o CC bluedroid/stack/btu/btu_init.o CC bluedroid/stack/gap/gap_ble.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gap/gap_ble.c: In function 'gap_attr_db_init': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gap/gap_ble.c:376:21: warning: variable 'status' set but not used [-Wunused-but-set-variable] tGATT_STATUS status; ^ CC bluedroid/stack/gap/gap_conn.o CC bluedroid/stack/gap/gap_api.o CC bluedroid/stack/gap/gap_utils.o CC bluedroid/stack/gatt/gatt_db.o CC bluedroid/stack/gatt/gatt_cl.o CC bluedroid/stack/gatt/gatt_attr.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gatt/gatt_attr.c: In function 'gatt_profile_db_init': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gatt/gatt_attr.c:283:23: warning: variable 'status' set but not used [-Wunused-but-set-variable] tGATT_STATUS status; ^ CC bluedroid/stack/gatt/gatt_main.o CC bluedroid/stack/gatt/gatt_sr.o CC bluedroid/stack/gatt/att_protocol.o CC bluedroid/stack/gatt/gatt_auth.o CC bluedroid/stack/gatt/gatt_api.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gatt/gatt_api.c: In function 'GATT_SetIdleTimeout': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gatt/gatt_api.c:1148:21: warning: variable 'status' set but not used [-Wunused-but-set-variable] BOOLEAN status = FALSE; ^ CC bluedroid/stack/gatt/gatt_utils.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gatt/gatt_utils.c: In function 'gatt_end_operation': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gatt/gatt_utils.c:2130:66: warning: suggest braces around empty body in an 'else' statement [-Wempty-body] operation, p_disc_cmpl_cb, p_cmpl_cb); ^ /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/gatt/gatt_utils.c:2076:25: warning: variable 'operation' set but not used [-Wunused-but-set-variable] UINT8 operation; ^ CC bluedroid/stack/hcic/hciblecmds.o CC bluedroid/stack/hcic/hcicmds.o CC bluedroid/stack/l2cap/l2c_main.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/l2cap/l2c_main.c: In function 'l2c_rcv_acl_data': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/l2cap/l2c_main.c:125:37: warning: variable 'psm' set but not used [-Wunused-but-set-variable] UINT16 l2cap_len, rcv_cid, psm; ^ CC bluedroid/stack/l2cap/l2c_csm.o CC bluedroid/stack/l2cap/l2c_ucd.o CC bluedroid/stack/l2cap/l2cap_client.o CC bluedroid/stack/l2cap/l2c_utils.o CC bluedroid/stack/l2cap/l2c_fcr.o CC bluedroid/stack/l2cap/l2c_link.o CC bluedroid/stack/l2cap/l2c_ble.o CC bluedroid/stack/l2cap/l2c_api.o CC bluedroid/stack/sdp/sdp_utils.o CC bluedroid/stack/sdp/sdp_db.o CC bluedroid/stack/sdp/sdp_discovery.o CC bluedroid/stack/sdp/sdp_main.o CC bluedroid/stack/sdp/sdp_server.o CC bluedroid/stack/sdp/sdp_api.o CC bluedroid/stack/smp/smp_keys.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/smp/smp_keys.c: In function 'smp_calculate_local_commitment': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/smp/smp_keys.c:1130:81: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] for Just Works/Numeric Comparison models\n"); ^ /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/smp/smp_keys.c: In function 'smp_calculate_peer_commitment': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/smp/smp_keys.c:1175:61: warning: suggest braces around empty body in an 'if' statement [-Wempty-body] for Just Works/Numeric Comparison models\n"); ^ CC bluedroid/stack/smp/smp_api.o /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/smp/smp_api.c: In function 'SMP_CreateLocalSecureConnectionsOobData': /home/tmedicci/esp/esp32-at/esp-idf/components/bt/bluedroid/stack/smp/smp_api.c:551:14: warning: variable 'bd_addr' set but not used [-Wunused-but-set-variable] UINT8 *bd_addr; ^ CC bluedroid/stack/smp/smp_utils.o CC bluedroid/stack/smp/p_256_ecc_pp.o CC bluedroid/stack/smp/smp_act.o CC bluedroid/stack/smp/smp_cmac.o CC bluedroid/stack/smp/smp_br_main.o CC bluedroid/stack/smp/aes.o CC bluedroid/stack/smp/smp_main.o CC bluedroid/stack/smp/p_256_multprecision.o CC bluedroid/stack/smp/p_256_curvepara.o CC bluedroid/stack/smp/smp_l2c.o CC bluedroid/stack/avct/avct_lcb.o CC bluedroid/stack/avct/avct_lcb_act.o CC bluedroid/stack/avct/avct_l2c.o CC bluedroid/stack/avct/avct_api.o CC bluedroid/stack/avct/avct_ccb.o CC bluedroid/stack/avrc/avrc_pars_ct.o CC bluedroid/stack/avrc/avrc_opt.o CC bluedroid/stack/avrc/avrc_bld_ct.o CC bluedroid/stack/avrc/avrc_pars_tg.o CC bluedroid/stack/avrc/avrc_bld_tg.o CC bluedroid/stack/avrc/avrc_api.o CC bluedroid/stack/avrc/avrc_utils.o CC bluedroid/stack/avrc/avrc_sdp.o CC bluedroid/stack/avdt/avdt_l2c.o CC bluedroid/stack/avdt/avdt_api.o CC bluedroid/stack/avdt/avdt_ccb.o CC bluedroid/stack/avdt/avdt_ccb_act.o CC bluedroid/stack/avdt/avdt_scb.o CC bluedroid/stack/avdt/avdt_msg.o CC bluedroid/stack/avdt/avdt_scb_act.o CC bluedroid/stack/avdt/avdt_ad.o CC bluedroid/stack/a2dp/a2d_sbc.o CC bluedroid/stack/a2dp/a2d_api.o CC bluedroid/utils/bt_utils.o CC bluedroid/api/esp_avrc_api.o CC bluedroid/api/esp_bt_main.o CC bluedroid/api/esp_bt_device.o CC bluedroid/api/esp_gap_bt_api.o CC bluedroid/api/esp_a2dp_api.o CC bluedroid/api/esp_gattc_api.o CC bluedroid/api/esp_blufi_api.o CC bluedroid/api/esp_gap_ble_api.o CC bluedroid/api/esp_gatts_api.o AR libbt.a CC libcoap/src/address.o CC libcoap/src/async.o CC libcoap/src/block.o CC libcoap/src/coap_time.o CC libcoap/src/debug.o CC libcoap/src/encode.o CC libcoap/src/hashkey.o CC libcoap/src/mem.o CC libcoap/src/net.o CC libcoap/src/option.o CC libcoap/src/pdu.o CC libcoap/src/resource.o CC libcoap/src/str.o CC libcoap/src/subscribe.o CC libcoap/src/uri.o CC port/coap_io_socket.o AR libcoap.a CXX cxx_guards.o In file included from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr.h:148:0, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/ext/atomicity.h:35, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:39, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/string:52, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/random:40, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_algo.h:66, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/algorithm:62, from /home/tmedicci/esp/esp32-at/esp-idf/components/cxx/./cxx_guards.cpp:20: /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:101:1: error: 'pthread_once' was not declared in this scope __gthrw(pthread_once) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:102:1: error: 'pthread_getspecific' was not declared in this scope __gthrw(pthread_getspecific) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:103:1: error: 'pthread_setspecific' was not declared in this scope __gthrw(pthread_setspecific) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:105:1: error: 'pthread_create' was not declared in this scope __gthrw(pthread_create) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:106:1: error: 'pthread_join' was not declared in this scope __gthrw(pthread_join) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:107:1: error: 'pthread_equal' was not declared in this scope __gthrw(pthread_equal) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:108:1: error: 'pthread_self' was not declared in this scope __gthrw(pthread_self) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:109:1: error: 'pthread_detach' was not declared in this scope __gthrw(pthread_detach) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:111:1: error: 'pthread_cancel' was not declared in this scope __gthrw(pthread_cancel) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:113:1: error: 'sched_yield' was not declared in this scope __gthrw(sched_yield) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:115:1: error: 'pthread_mutex_lock' was not declared in this scope __gthrw(pthread_mutex_lock) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:116:1: error: 'pthread_mutex_trylock' was not declared in this scope __gthrw(pthread_mutex_trylock) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:120:1: error: 'pthread_mutex_unlock' was not declared in this scope __gthrw(pthread_mutex_unlock) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:121:1: error: 'pthread_mutex_init' was not declared in this scope __gthrw(pthread_mutex_init) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:122:1: error: 'pthread_mutex_destroy' was not declared in this scope __gthrw(pthread_mutex_destroy) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:124:1: error: 'pthread_cond_init' was not declared in this scope __gthrw(pthread_cond_init) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:125:1: error: 'pthread_cond_broadcast' was not declared in this scope __gthrw(pthread_cond_broadcast) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:126:1: error: 'pthread_cond_signal' was not declared in this scope __gthrw(pthread_cond_signal) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:127:1: error: 'pthread_cond_wait' was not declared in this scope __gthrw(pthread_cond_wait) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:128:1: error: 'pthread_cond_timedwait' was not declared in this scope __gthrw(pthread_cond_timedwait) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:129:1: error: 'pthread_cond_destroy' was not declared in this scope __gthrw(pthread_cond_destroy) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:131:1: error: 'pthread_key_create' was not declared in this scope __gthrw(pthread_key_create) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:132:1: error: 'pthread_key_delete' was not declared in this scope __gthrw(pthread_key_delete) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:133:1: error: 'pthread_mutexattr_init' was not declared in this scope __gthrw(pthread_mutexattr_init) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:134:1: error: 'pthread_mutexattr_settype' was not declared in this scope __gthrw(pthread_mutexattr_settype) ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:135:1: error: 'pthread_mutexattr_destroy' was not declared in this scope __gthrw(pthread_mutexattr_destroy) ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:661:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:667:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:673:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:679:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h: In function 'int __gthread_yield()': /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:692:33: error: '__gthrw_sched_yield' cannot be used as a function return __gthrw_(sched_yield) (); ^ /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h: At global scope: /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:697:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:706:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:712:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:718:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:724:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:737:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:746:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:755:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:776:1: error: expected ',' or ';' before '{' token { ^ /home/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/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/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/ext/atomicity.h:35:0, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/basic_string.h:39, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/string:52, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/random:40, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_algo.h:66, from /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/algorithm:62, from /home/tmedicci/esp/esp32-at/esp-idf/components/cxx/./cxx_guards.cpp:20: /home/tmedicci/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr.h:151:27: error: expected declaration before end of line /home/tmedicci/esp/esp32-at/esp-idf/make/component_wrapper.mk:210: recipe for target 'cxx_guards.o' failed make[1]: *** [cxx_guards.o] Error 1 /home/tmedicci/esp/esp32-at/esp-idf//make/project.mk:386: recipe for target 'cxx-build' failed make: *** [cxx-build] Error 2

AT+CIPSERVERMAXCONN

Hello.

In last commit I saw about AT+CIPSERVERMAXCONN. Can you provide more info? Is it related to #28 ?

Will it be possible to run server on multiple ports by specifying which connection accepts on which port? For example CONN0 port 80, CONN2 port 400, etc?
Will this also work on ESP8266 AT software?

Thanks for response.

Guru Meditation Error: Core 0 panic'ed (abort)

espressif/esp-idf@7dfb1c2

I (47) boot: ESP-IDF v2.0-rc1-116-g7dfb1c2 2nd stage bootloader
I (47) boot: compile time 11:44:00
I (47) boot: Enabling RNG early entropy source...
I (67) boot: SPI Speed : 40MHz
I (80) boot: SPI Mode : DIO
I (92) boot: SPI Flash Size : 4MB
I (105) boot: Partition Table:
I (116) boot: ## Label Usage Type ST Offset Length
I (139) boot: 0 phy_init RF data 01 01 0000f000 00001000
I (162) boot: 1 ota_0 OTA app 00 10 00010000 000ea000
I (185) boot: 2 nvs WiFi data 01 02 000fa000 00016000
I (209) boot: 3 ota_1 OTA app 00 11 00110000 000ea000
I (232) boot: 4 otadata OTA data 01 00 001fd000 00003000
I (255) boot: End of partition table
I (268) boot: Disabling RNG early entropy source...
I (285) boot: Loading app partition at offset 00010000
I (1449) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512)
I (1450) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x19ac8 (105160) map
I (1466) boot: segment 2: paddr=0x00039ad8 vaddr=0x3ffb0000 size=0x020ec ( 8428) load
I (1496) boot: segment 3: paddr=0x0003bbcc vaddr=0x40080000 size=0x00400 ( 1024) load
I (1520) boot: segment 4: paddr=0x0003bfd4 vaddr=0x40080400 size=0x1aad4 (109268) load
I (1598) boot: segment 5: paddr=0x00056ab0 vaddr=0x400c0000 size=0x00034 ( 52) load
I (1599) boot: segment 6: paddr=0x00056aec vaddr=0x00000000 size=0x0951c ( 38172)
I (1615) boot: segment 7: paddr=0x00060010 vaddr=0x400d0018 size=0x78490 (492688) map
I (1643) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (1665) heap_alloc_caps: At 3FFBA668 len 00025998 (150 KiB): DRAM
I (1686) heap_alloc_caps: At 3FFE8000 len 00018000 (96 KiB): D/IRAM
I (1708) heap_alloc_caps: At 4009AED4 len 0000512C (20 KiB): IRAM
I (1729) cpu_start: Pro cpu up.
I (1740) cpu_start: Single core mode
I (1753) cpu_start: Pro cpu start user code
I (1814) cpu_start: Starting scheduler on PRO CPU.
E (1820) uart: uart_wait_tx_done(703): uart driver error
I (1820) uart: queue free spaces: 10
heap:227152
E (1825) wifi: esp_wifi_set_storage 1230 wifi is not init
W (1831) wifi: wifi nvs_open fail ret=4353

E (1834) wifi: wifi_init 1191 ret=4353
assertion "0 && "esp_wifi_init(&cfg)"" failed: file "/home/xcg/workspace/esp_iot_at/esp-at-application/components/esp-at-core/./at_port.c", line 560, function: initialise_wifi
abort() was called at PC 0x400f732b
Guru Meditation Error: Core 0 panic'ed (abort)

Backtrace: 0x40008155:0x3ffbbee0 0x40007d16:0x3ffbbf00 0x401114ff:0x3ffbbf30 0x40111caa:0x3ffbbf60 0x4010cd2c:0x3ffbbfa0 0x4010c85a:0x3ffbbfe0 0x400d0afd:0x3ffbc000

Rebooting...

ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x16 (SPI_FAST_FLASH_BOOT)

AT command defining end of line

Hello,

I'm trying to use the actual AT command with Putty but it seem that the AT command interpreter is waiting for '\r\n' to be send before interpreting command.

However, it seem not possible to send it with Putty (ENTER key send only '\r'), so is there a solution to change the end of line for AT command interpreter from '\r\n' to '\r'?

I tryed by changing CONFIG_NEWLIB_STDIN_LINE_ENDING_LF to 1 but it seem to not using this.
Maybe it's inside the closed source "libat_core.a" ?

Regards.

NTP Timezone works the other way around

Timezone needs to be set to negative values to get the NTP time to work as positive timezones.

E.g. I need the following to set Timezone to UTC+2.
AT+CIPSNTPCFG=-2,"us.pool.ntp.org","cn.ntp.org.cn","ntp.sjtu.edu.cn"

That feels completely opposite to my expectation.

Tested on release v0.10.0.0

Thanks!

AT+CWQAP doesn't disconnect

The command AT+CWQAP probably doesn't behave correctly. I expect a disconnection from the network. While it seems to disconnect and re-connect immediately after.
If I issue the command AT+CWJAP? it returns that it is connected.
Moreover I don't know what error is

+CWJAP:0

ERROR

Here the commands sequence:

ready
AT+CWLAP
+CWLAP:(4,"Telecom-62716645",-45,"30:91:8f:a8:bc:e5",11)
+CWLAP:(3,"DIRECT-q4M2070 Series",-52,"32:cd:a7:9f:35:c6",11)
+CWLAP:(3,"",-66,"1c:b7:2c:83:55:20",2)
+CWLAP:(3,"urbantrend2",-67,"1e:b7:1c:83:55:20",2)
+CWLAP:(4,"TNCAPB4DAD1",-72,"c4:ea:1d:b4:da:d1",1)
+CWLAP:(0,"FVGWiFi",-72,"6e:72:51:49:b9:3c",1)
+CWLAP:(3,"AC66U",-84,"e0:3f:49:0b:8a:d0",6)
+CWLAP:(3,"InfoPoint-Palmanova",-85,"ec:08:6b:9f:08:0c",10)
+CWLAP:(0,"PTFVGPalmanova",-85,"68:72:51:80:7e:5e",11)
+CWLAP:(3,"Private HDG",-87,"ee:94:f6:42:d8:a4",11)
+CWLAP:(3,"TIM-27101510",-88,"b4:a5:ef:61:be:0b",1)
+CWLAP:(0,"hotelaidogi",-88,"ea:94:f6:42:d8:a4",11)
+CWLAP:(4,"fastweb-pd-cpe-st4233-1",-89,"00:19:70:b4:f5:99",6)
+CWLAP:(4,"Digicom_AEC3",-89,"00:a0:a2:67:ae:c3",11)
+CWLAP:(0,"CB-CLUB",-90,"90:f6:52:c2:cb:ca",8)
+CWLAP:(4,"Demar Caffe Giancarlo",-90,"8c:59:c3:0b:ea:25",11)

OK
AT+CWJAP="Telecom-62716645","*******************"
+CWJAP:1

ERROR
AT+CWJAP="Telecom-62716645","*******************"
+CWJAP:0

ERROR
AT+CWJAP="Telecom-62716645","*******************"

OK
AT+CWQAP

OK
AT+CWJAP?
+CWJAP:"Telecom-62716645","30:91:8f:a8:bc:e5",11,-44

OK

And below the debug messages (------ highlights the point where disconnection command is given):

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:2
load:0x3fff0008,len:8
load:0x3fff0010,len:3464
load:0x40078000,len:7828
load:0x40080000,len:252
entry 0x40080034
I (44) boot: ESP-IDF v2.0-rc1-257-g4745895 2nd stage bootloader
I (44) boot: compile time 15:21:50
I (44) boot: Enabling RNG early entropy source...
I (64) boot: SPI Speed : 40MHz
I (77) boot: SPI Mode : DIO
I (89) boot: SPI Flash Size : 4MB
I (102) boot: Partition Table:
I (113) boot: ## Label Usage Type ST Offset Length
I (136) boot: 0 phy_init RF data 01 01 0000f000 00001000
I (159) boot: 1 ota_0 OTA app 00 10 00010000 000ea000
I (182) boot: 2 nvs WiFi data 01 02 000fa000 00016000
I (205) boot: 3 ota_1 OTA app 00 11 00110000 000ea000
I (229) boot: 4 otadata OTA data 01 00 001fd000 00003000
I (252) boot: End of partition table
I (265) boot: Disabling RNG early entropy source...
I (282) boot: Loading app partition at offset 00010000
I (1449) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512)
I (1450) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x19c84 (105604) map
I (1467) boot: segment 2: paddr=0x00039c94 vaddr=0x3ffb0000 size=0x02150 ( 8528) load
I (1497) boot: segment 3: paddr=0x0003bdec vaddr=0x40080000 size=0x00400 ( 1024) load
I (1520) boot: segment 4: paddr=0x0003c1f4 vaddr=0x40080400 size=0x1a70c (108300) load
I (1598) boot: segment 5: paddr=0x00056908 vaddr=0x400c0000 size=0x00034 ( 52) load
I (1599) boot: segment 6: paddr=0x00056944 vaddr=0x00000000 size=0x096c4 ( 38596)
I (1615) boot: segment 7: paddr=0x00060010 vaddr=0x400d0018 size=0x78e60 (495200) map
I (1643) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (1665) heap_alloc_caps: At 3FFBA670 len 00025990 (150 KiB): DRAM
I (1686) heap_alloc_caps: At 3FFE8000 len 00018000 (96 KiB): D/IRAM
I (1708) heap_alloc_caps: At 4009AB0C len 000054F4 (21 KiB): IRAM
I (1728) cpu_start: Pro cpu up.
I (1740) cpu_start: Single core mode
I (1753) cpu_start: Pro cpu start user code
I (1814) cpu_start: Starting scheduler on PRO CPU.
I (1824) uart: queue free spaces: 10
I (1860) wifi: wifi firmware version: 90b1b8b
I (1861) wifi: config NVS flash: enabled
I (1861) wifi: config nano formating: disabled
I (1865) wifi: Init dynamic tx buffer num: 32
I (1866) wifi: wifi driver task: 3ffc4d78, prio:23, stack:3584
I (1871) wifi: Init static rx buffer num: 10
I (1875) wifi: Init dynamic rx buffer num: 0
I (1879) wifi: Init rx ampdu len mblock:7
I (1883) wifi: Init lldesc rx ampdu entry mblock:4
I (1887) wifi: wifi power manager task: 0x3ffca120 prio: 21 stack: 2560
I (1894) wifi: wifi timer task: 3ffcb1a0, prio:22, stack:3584
E (1899) phy_init: PHY data partition validated

I (1937) phy: phy_version: 329, Feb 22 2017, 15:58:07, 0, 0
I (1938) wifi: Init ampdu: 1
I (1938) wifi: mode : sta (24:0a:c4:03:f2:28)
I (1940) wifi: Init ampdu: 1
I (1941) wifi: mode : sta (24:0a:c4:03:f2:28) + softAP (24:0a:c4:03:f2:29)
I (1951) wifi: mode : sta (24:0a:c4:03:f2:28)
I (106752) wifi: n:11 0, o:1 0, ap:255 255, sta:11 0, prof:1
I (107410) wifi: state: init -> auth (b0)
I (107412) wifi: state: auth -> assoc (0)
I (107416) wifi: state: assoc -> run (10)
I (107446) wifi: connected with Telecom-62716645, channel 11
I (108811) wifi: state: run -> init (0)
I (108812) wifi: n:11 0, o:11 0, ap:255 255, sta:11 0, prof:1
I (113409) wifi: n:11 0, o:11 0, ap:255 255, sta:11 0, prof:1
I (113409) wifi: state: init -> auth (b0)
I (113412) wifi: state: auth -> assoc (0)
I (113416) wifi: state: assoc -> run (10)
I (113445) wifi: connected with Telecom-62716645, channel 11
I (114413) event: ip: 192.168.1.211, mask: 255.255.255.0, gw: 192.168.1.254
I (123416) wifi: pm start, type:0

------- here disconnection command AT+CWQAP is given -------

I (152825) wifi: state: run -> init (0)
I (152826) wifi: n:11 0, o:11 0, ap:255 255, sta:11 0, prof:1
I (152827) wifi: pm stop, total sleep time: 0/29409876

I (152950) wifi: n:11 0, o:11 0, ap:255 255, sta:11 0, prof:1
I (152950) wifi: state: init -> auth (b0)
I (152957) wifi: state: auth -> assoc (0)
I (152961) wifi: state: assoc -> run (10)
I (152997) wifi: connected with Telecom-62716645, channel 11
I (154420) event: ip: 192.168.1.211, mask: 255.255.255.0, gw: 192.168.1.254
I (162962) wifi: pm start, type:0

No module named yaml

Hello,
I wanted to use ESP32 BLE Server module and followed the instruction in esp32-at/tools/readme.md.
But... got the error message as below.


Charlie Choi@Charlie MINGW32 /c/esp32/projects/esp32-at/tools
$ python BLEService.py -t GattServiceExample.bin GattServiceExample.csv
Traceback (most recent call last):
File "BLEService.py", line 6, in
import yaml
ImportError: No module named yaml


PyYAML and xlrd are aleady installed as below...


Charlie Choi@Charlie MINGW32 /c/esp32/projects/esp32-at/tools
$ pip install pyyaml xlrd
Requirement already satisfied: pyyaml in c:/msys32/mingw32/lib/python2.7/site-packages
Requirement already satisfied: xlrd in c:/msys32/mingw32/lib/python2.7/site-packages
Charlie Choi@Charlie MINGW32 /c/esp32/projects/esp32-at/tools
$ pip freeze
pyserial==3.4
PyYAML==3.12
xlrd==1.1.0**


Could somebody help me to use BLE server moudule via at-command?

+++ to terminate UART-WiFi passthrough transmission

Hello,
According th the at-command instruction, +++ will terminate the passthrough transmission.
However it doesn't seem to work neither in TCP nor in UDP mode.
Please let me know how I can exit from the passthrough mode.

Thank you.

Please Upgrade esp-idf

Reason: espressif/esp-idf#577

Update: Though menuconfig does provide the facility to configure python executable name, but still better fix it once n for all. why give user the headache of configuring when it is automate it.

Serious bug: Weird printout left in the code inserting debug info into data stream

We are helping a customer using the AT processor in a hardware product incorporating the ESP32-WROOM module. Things work BUT there is at least one or two serious bugs in the AT-processor.

One bug manifests itself with a printout appearing sometimes in the data stream coming from the AT processor when we use the IP server facility (using the ESP32 as an AP):

"id:%d,Len:%d,dp:%p"

Now... since unfortunately you do not have the source published (this is a perfect case where it would have helped us a LOT) I haven't been able to verify this is from your code until now - I simply realized I could scan the archive library, and I discovered the above in at_ipCmd.o.

Needless to say this royally messes up our communication! :)

There may also be a second issue because at some occasions I have also observed an actual AT command being in the data stream coming from the ESP32. That feels like a buffer bug of some kind.

esp32-at make flash error

When I execute the "make flash", I always got the error....why? I followed all the instruction given in the readme.md file.

$ make flash
CC src/bootloader_random.o
CC src/flash_encrypt.o
CC src/esp_image_format.o
CC src/flash_partitions.o
CC src/secure_boot_signatures.o
CC src/secure_boot.o
CC src/bootloader_flash.o
AR libbootloader_support.a
CC log.o
AR liblog.a
CC spi_flash_rom_patch.o
AR libspi_flash.a
CC esp32/brownout.o
CC esp32/rtc_clk.o
CC esp32/cpu_util.o
AR libsoc.a
CC flash_qio_mode.o
CC bootloader_start.o
AR libmain.a
LD bootloader.elf
esptool.py v2.0
building AT customized partition table at_customize.csv
building AT customized partition table succeed
generating AT customized partition bins to /c/espressif/firmware/esp32-at/build/customized_partitions
generating ble_data.bin: python /c/espressif/firmware/esp32-at/tools/BLEService.py -t /c/espressif/firmware/esp32-at/build/customized_partitions/ble_data.bin /c/espressif/firmware/esp32-at/components/customized_partitions/raw_data/ble_data/example.csv
Traceback (most recent call last):
File "C:/espressif/firmware/esp32-at/tools/BLEService.py", line 6, in
import yaml
ImportError: No module named yaml
make: *** [/c/espressif/firmware/esp32-at/components/customized_partitions/Makefile.projbuild:43: /c/espressif/firmware/esp32-at/build/at_customize.bin] Error 1

crash when power up

the log as following:

�[0;32mI (1681) cpu_start: Pro cpu up.�[0m
�[0;32mI (1693) cpu_start: Single core mode�[0m
�[0;32mI (1707) heap_alloc_caps: Initializing. RAM available for dynamic allocation:�[0m
�[0;32mI (1730) heap_alloc_caps: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM�[0m
�[0;32mI (1750) heap_alloc_caps: At 3FFBA7D0 len 00025830 (150 KiB): DRAM�[0m
�[0;32mI (1771) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM�[0m
�[0;32mI (1793) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM�[0m
�[0;32mI (1814) heap_alloc_caps: At 400936AC len 0000C954 (50 KiB): IRAM�[0m
�[0;32mI (1835) cpu_start: Pro cpu start user code�[0m
�[0;32mI (1892) cpu_start: Starting scheduler on PRO CPU.�[0m
�[0;32mI (1899) uart: queue free spaces: 10�[0m
E (1901) wifi: invalid magic number 3f407776, call WIFI_INIT_CONFIG_DEFAULT to init config
E (1906) wifi: wifi_init 1304 ret=258
ESP_ERROR_CHECK failed: esp_err_t 0x102 at 0x4011959f
Guru Meditation Error: Core 0 panic'ed (abort)

Backtrace: 0x40008155:0x3ffafb50 0x40007d06:0x3ffafb70 0x40119d56:0x3ffafbb0 0x40114c6c:0x3ffafbf0 0x4011479e:0x3ffafc30 0x400d0659:0x3ffafc50

Rebooting...
ets Jun 8 2016 00:22:57

The bin files flashed as following:
bootloader.bin --> 0x1000
partitions_at.bin --> 0x8000
phy_init_data.bin --> 0xf000
esp-at.bin --> 0x10000
blank.bin --> 0xfa000
blank.bin --> 0x1fd000

I've try to erase flash using esptool, but it is useless.

[Error] Can't boot

I didn't change anything. I flash the chip.

I (45) boot: ESP-IDF v2.0-rc1-813-g1ddf40fe 2nd stage bootloader
I (45) boot: compile time 16:08:38
I (46) boot: Enabling RNG early entropy source...
I (63) boot: SPI Speed : 40MHz
I (76) boot: SPI Mode : DIO
I (88) boot: SPI Flash Size : 4MB
I (101) boot: Partition Table:
I (112) boot: ## Label Usage Type ST Offset Length
I (135) boot: 0 phy_init RF data 01 01 0000f000 00001000
I (158) boot: 1 otadata OTA data 01 00 00010000 00002000
I (181) boot: 2 nvs WiFi data 01 02 00012000 0000e000
I (204) boot: 3 ble_data unknown 40 00 00020000 00003000
I (228) boot: 4 ota_0 OTA app 00 10 00100000 00180000
I (251) boot: 5 ota_1 OTA app 00 11 00280000 00180000
I (274) boot: End of partition table
E (287) boot: ota data partition invalid and no factory, can't boot
user code done

The chip can't work. (Using ESP32 DevkitC)
Somebody can help me?

Custom AT cmd calling a web server function with ssl

Hi All

I am creating a custom AT comand in order to call a function, but the function is a web server with ssl security, but this functions does not work when it is integrated with the at lib, I have teste to call a web server with no SSL and it works.

I would like to as if the AT lib some how is calling or creting a socket with SSL features?

Regards

Juan

Pairing problem

Hello,
I currently try to use the esp32-at project to establish a connection with blood pressure monitor. The problem is that although I can connect I can't pair with the device which leads to not being able to get access to read/write the needed GATT characteristics. The commands used are the same as presented in examples.
The board I use is ESP32_Core_Boards_V2.
Please help, would appreciate any hint.

Best regards

Invalid parameter initialising Wifi

I can build and run other projects, but this one fails during startup. Is there some config
I've forgotten to set up?

I (1835) cpu_start: Pro cpu start user code
I (1891) cpu_start: Starting scheduler on PRO CPU.
I (1898) uart: queue free spaces: 10
E (1900) wifi: invalid magic number 3f4076da, call WIFI_INIT_CONFIG_DEFAULT to i
nit config
E (1905) wifi: wifi_init 1304 ret=258
ESP_ERROR_CHECK failed: esp_err_t 0x102 at 0x4011971b
Guru Meditation Error: Core 0 panic'ed (abort)

Backtrace: 0x40008155:0x3ffafb50 0x40007d06:0x3ffafb70 0x40119ed2:0x3ffafbb0 0x40114de8:0x3ffafbf0 0x4011491a:0x3ffafc30 0x400d07a1:0x3ffafc50

Rebooting...

How to connect bluetooth to an Andoird phone?

I'm trying to set up the bluetooth demo.
I'd read the esp32-at/docs/ESP32_AT_Commands_Set.md (AT COMMANDs for BLE)
& esp32-at/tools/README.md (GattService.bin generation)
I tried t two ESP32-DevKitC board, one as Server ,another as Client . they can find and connect success

But when I use a Andoird phone to find ESP32 bluetooth server, it can't find it .
I'd installed : https://dl.espressif.com/dl/EspBlufi-1.0.apk
EspBlufi can find and connect to ESP32 bluetooth server , but nothing happens while wating at Prepare page.

I try to program the gattservice bin use Custom partitions_at.csv

default
but no factory,can't boot ~

and I try to modify the partitions_two_ota.csv and add
ble_data,0x40,0,0x310000,12K
at last line

default
boot ok

then program the server.bin
default

boot ok
->
AT+BLEINIT=2
AT+BLEADVSTART
(also tried some commands like
AT+BLEADVPARAM=50,150,0,0,7,0,0,"AC:C1:EE:96:90:1B"
before ADV Start)

but the result is the same as not program the server.bin (Andoird phone not find the bluetooth, apk can but nothing happens)

--
Are there steps/things wrong when i try the bluetooth demo(or ignored)?

Could anybody tell me how to connect Bluetooth to Andoird phone?(some documents or links also ok )
And is Bluethooth can be set like wifi can auto cennect at power on?(like BLE auto runing as server and advertising )

I'm a beginner to ESP32 and bluetooth, hopen you can help me ! Thanks a lot!

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.