Go Down

Topic: Modulo WiFi+Bt ESP32 (Read 36589 times) previous topic - next topic

testato

#60
Jan 06, 2017, 10:18 pm Last Edit: Jan 06, 2017, 10:18 pm by Testato
devo trovare il tempo per mettere mano seriamente a questo chip.
Il fatto e' che e' ancora in una fase embrionale nonostante abbiano assunto il tipo del core esp8266
secondo me ci sono sotto cose ancora non pronte, cose importanti o bug non previsti.
Uno dei motivi per i quali voglio metterci mano e' il BT, eppure al momento sul core arduino nulla di nulla di BT, e sul IDF non puoi usarlo assieme al wifi  :(

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

roboticboyer

#61
Jan 09, 2017, 09:17 pm Last Edit: Jan 09, 2017, 09:18 pm by roboticboyer
Ho dato uno sguardo alla cartella libraries del ESP32:
https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/src

Al momento sono state implementate poche librerie rispetto a quelle disponibili per ESP8266:
https://github.com/esp8266/Arduino/tree/master/libraries

Inoltre molte delle librerie del ESP8266 si chiamano "ESP8266qualcosa" e non solo "qualcosa".

Per quel motivo si generano gli errori di compilazione che Busco ci ha segnalato, quando cerca di usare le librerie del ESP8266 anche per l'ESP32.

Dobbiamo aspettare che il team ESP32 implementi le librerie mancanti per usare l'ottima libreria WebServer:
https://github.com/esp8266/Arduino/tree/master/libraries



   
Il mio blog:http://roboticboyer.wordpress.com
GitHub:https://github.com/roboticboyer

busco

Mi hanno regalato la ESP32 della Sparkfun:
Sparkfun ESP32 Thing
https://www.sparkfun.com/products/13907
IDE arduino-1.8.1
Scheda ESP32 Dev Module
Utilizzo come base il codice degli esempi della lib WiFi nome SimpleWiFiServer.ino
https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/examples/SimpleWiFiServer

Ho aggiunto due pulsanti e una textbox.
Il codice HTML l'ho messo in un file separato per facilitare il debug.
File: SimpleWiFiServer_13.ino   //Codice C
          paginaHTML.h                   //Codice HTML
          maschera.png                    //Come appare

Il problema:
Gira abbastanza bene però dopo quanche minuto anche 10-15 minuti si blocca

Nel file allegato (ESP32_problemi.txt)
Visualizzo dei dati:
         tempo in mS ad ogni passaggio
         durata della prova.
         alla fine alcuni messaggi emessi dalla board
         e CPU Halt
A questo punto si blocca, questo è il mio problema.

Penso che tra i messaggi emessi dalla board ci sia anche
il motivo del problema ma non saprei come ricavarlo.

Allego i file.
Grazie per eventuali suggerimenti.

roboticboyer

#63
Mar 04, 2017, 12:29 pm Last Edit: Mar 04, 2017, 12:30 pm by roboticboyer
Ho decodificato l'errore:

Code: [Select]

0x40084807: uxListRemove at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./list.c line 214
0x40084807: uxListRemove at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./list.c line 214
0x40083dce: xPortGetCoreID at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./tasks.c line 4398
:  (inlined by) xTaskRemoveFromEventList at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./tasks.c line 3018
0x40082ba1: xQueueGenericSend at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./queue.c line 1998
0x400e2a6d: sys_mbox_post at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/port/freertos/sys_arch.c line 500
0x400dbd41: tcpip_send_api_msg at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/tcpip.c line 467
0x400e2cc8: tcpip_apimsg at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/api_lib.c line 811
0x400e30c4: netconn_recved at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/api_lib.c line 811
0x400db24c: lwip_recvfrom at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400db755: lwip_recvfrom_r at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400db7ad: lwip_recv_r at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400d108c: WiFiClient::read(unsigned char*, unsigned int) at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/cores/esp32/Print.h line 50
0x4010735d: WiFiClient::read() at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/libraries/WiFi/src/WiFiClient.cpp line 158
0x400d0e40: loop at /home/giorgio/Programmi_gio/arduino-1.6.13/portable/sketchbook/SimpleWiFiServer_13/SimpleWiFiServer_13.ino line 51
0x4010015d: loopTask(void*) at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/cores/esp32/main.cpp line 11 (discriminator 1)


Conviene caricare nel Arduino IDE l' EspExceptionDecoder
https://github.com/me-no-dev/EspExceptionDecoder/releases/download/1.0.6/EspExceptionDecoder-1.0.6.zip

Istruzioni:
https://github.com/me-no-dev/EspExceptionDecoder




Il mio blog:http://roboticboyer.wordpress.com
GitHub:https://github.com/roboticboyer

roboticboyer

Qualcuno dice che serve cancellare la memoria flash del ESP32 quando comincia a dare i numeri
Code: [Select]
esptool --port COM3 erase_flash

Per chi usa linux:
invece di COM3 mettete l'indirizzo linux della porta USB
Il mio blog:http://roboticboyer.wordpress.com
GitHub:https://github.com/roboticboyer

testato

ho rpovato anche io una volta il decoder delle eccezioni sull 8266, buona cosa che sia stato aggiornato anche per il 32.
ma poi ti ha aiutato a beccare il rpoblema ? perche' a me non aiuto' piu' di tanto

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

SukkoPera

Io lo uso parecchio, lo trovo molto utile.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

testato

fate un esempio,
tipo come si interpreta il risultato di roboticboyer ?
e' importante quella scritta discriminator 1 ?

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

roboticboyer

Io ho interpretato che la CPU si è bloccata quando ha eseguito la linea 11 del main.cpp
Code: [Select]
0x4010015d: loopTask(void*) at /arduino-1.6.13/hardware/espressif/esp32/cores/esp32/main.cpp line 11 (discriminator 1)

Sembra che l'errore segnalato da Busco capiti anche ad altri:
https://github.com/espressif/arduino-esp32/issues/109
https://github.com/espressif/arduino-esp32/issues/119
https://github.com/espressif/arduino-esp32/issues/207
Il mio blog:http://roboticboyer.wordpress.com
GitHub:https://github.com/roboticboyer

testato

ma il main.cpp e' nel core, vai a modificare quello ?
il rpoblema e' nel tuo .ino no ?

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

SukkoPera

Lo stacktrace si legge al contrario :). Il punto dove si è piantato è nella prima riga, che è stata invocata dalla seconda, ecc... Fino al main, dove il programma è partito.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

zoomx

Quindi freertos, list.c linea 214

testato

che e' ugualmente nel core e quindi non ci mettiamo mano.

L'unica indicazione utile che riguarda un .ino e'
SimpleWiFiServer_13.ino line 51

E' qui il problema ?

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

SukkoPera

I casi sono due: o c'è un problema nella libreria (improbabile), o nel proprio sketch si fa qualcosa che la fa crashare. Bisogna fare dei test e cercare di capire l'arcano.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

testato

certo, ma a questo punto torniamo alla mia affermazione originaria, cioe' che sto decoder non mi dice il problema, in cosa mi aiuta ?
Alla fine sei sempre tu nel tuo .ino a dover risolvere

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up