Closed Dattel closed 4 years ago
Hallo @Dattel kannst du ggf Angaben zu Core / Bibliotheken Versionen machen welche in Benutzung waren? Das sieht mir auf den ersten Blick wie damals beim ESP8266 nach einem StackFehler aus. (Vermutung auf den ersten Blick)
Leider ist mein ESP32 gerade nich hier, so das ich ggf erst morgen testen kann.
HI, danke für die schnelle Antwort... Mal sehen, ob ich zusammenbekomme, was du so brauchst :-D
Habe die Standardsection in der platformio.ini etwas angefasst und die WIFI-Lib in der DEV-Variante noch dazugepackt
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps = https://github.com/tzapu/WiFiManager.git#development
Dependency Graph
|-- <WifiManager> 2.0.3-alpha #4319a66
| |-- <DNSServer> 1.1.0
| | |-- <WiFi> 1.0
| |-- <ESPmDNS> 1.0
| | |-- <WiFi> 1.0
| |-- <WebServer> 1.0
| | |-- <WiFi> 1.0
| | |-- <FS> 1.0
| |-- <WiFi> 1.0
|-- <SimpleFIFO> 1.0.0
|-- <TimerOne> 1.0.0
|-- <bitstore> 1.1.0
|-- <WiFi> 1.0
|-- <signaldecoder> 1.1.0
| |-- <bitstore> 1.1.0
| |-- <fastdelegate> 1.0.0
| |-- <output> 1.0.1
| | |-- <WiFi> 1.0
|-- <fastdelegate> 1.0.0
|-- <output> 1.0.1
| |-- <WiFi> 1.0
|-- <EEPROM> 1.0.3
|-- <SPI> 1.0
|-- <ArduinoJson> 6.15.2
|-- <DNSServer> 1.1.0
| |-- <WiFi> 1.0
|-- <FS> 1.0
Building in release mode
Achso noch eine Bemerkung: vielleicht ist das ja ein gewollter Crash und ESP.restart() löst einfach die kernelpanik aus um den Reboot zu forcieren :-D
Auszug aus der wifi-config.h
void resetwifi() {
wifiManager.resetSettings();
#ifdef esp8266
ESP.reset();
#elif defined(ESP32)
ESP.restart();
#endif
Wenn ich den ESP jetzt nochmal starte kommt folgende Ausgabe:
*WM: [1] AutoConnect
*WM: [2] ESP32 event handler enabled
*WM: [2] Connecting as wifi client...
*WM: [3] STA static IP:
*WM: [2] setSTAConfig static ip not set, skipping
*WM: [1] Connecting to SAVED AP: *****************
*WM: [3] Using Password: *******************
*WM: [3] WiFi station enable
*WM: [1] connectTimeout not set, ESP waitForConnectResult...
*WM: [2] [EVENT] WIFI_REASON: 202
*WM: [2] Connection result: WL_CONNECT_FAILED
*WM: [3] lastconxresulttmp: WL_STATION_WRONG_PASSWORD
*WM: [3] lastconxresult: WL_STATION_WRONG_PASSWORD
Das WLAN und das Password sind aber definitiv korrekt. Anschließend wird einfach wieder das Config Portal hochgezogen. Vielleicht ist das ja ein Hinweis
habe mal auf lib_deps = tzapu/WiFiManager#c3ff582
geswitched, da ich hiervon weiß, dass ich mit einem anderen Projekt und dem selben ESP32 bereits erfolgreich mit dem selben WLAN eine Verbindung aufgebaut habe. Ergebnis ist leider das selbe.
Allerdings hab ich in dem anderen Projekt nicht das ConfigPortal genutzt. Kann ich Accesspoint und PW irgendwo fest hinterlegen?
Hab mal den ExceptionDecoder von Arduino bemüht:
Decoding stack results
0x40082657: timer_armed at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/esp_timer.c line 251
0x400827aa: esp_timer_stop at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/esp_timer.c line 152
0x400d3c95: setup() at src/signalesp.h line 386
0x400e2837: uw_frame_state_for at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libgcc/unwind-pe.h line 140
0x40088c71: vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c line 143
Update: Habe mal testweise esp_timer_stop(cronTimer_handle); auskommentiert - damit geht's...Scheint, als wenn das TimerHandle ungültig ist?
signalesp.h Zeile 384ff.
#ifdef ESP32
//esp_timer_stop(cronTimer_handle);
cronTimer_args.callback = &cronjob;
cronTimer_args.name = "cronTimer";
cronTimer_args.dispatch_method = ESP_TIMER_TASK;
esp_timer_create(&cronTimer_args, &cronTimer_handle);
#elif defined(ESP8266)
Ja ich erinnere mich, dass ich an dem Timer Thema schon einmal dran war bezüglich esp32
Irgendwas habe ich offensichtlich falsch interpretiert wie die auf dem esp32 funktionieren :(
Na wie gesagt, wenn ich die Zeile auskommentiere, dann ist da erstmal die Kuh vom Eis und die kernel-exception fliegt nicht mehr, ESP verbindet auch mit dem WLAN. Allerdings habe ich festgestellt, dass für den esp32 beim Thema telnet noch nicht viel passiert ist und fhem somit auch nicht connecten kann. Server.start(23) zieht nur für den esp8266 deine, aber nicht beim esp32.. Schade, dachte es würde schon soweit die Basis funktionieren.
Es gibt zu viele Baustellen und das sprunghafte lässt manches liegen. :(
Gern nehmen wir Zuarbeit entgegen :)
Na da sind meine c++ Kenntnisse wahrscheinlich arg zu wenig, aber ich kann Mal schauen, ob ich mich da irgendwie einarbeiten kann.
@Dattel welchen ESP32 hast du genau? Von dieser Hardware gibt es verschiedene Hersteller oder verschiedene Boarddefinitionen. (alternative gern auch 2 Bilder von der Vorder / Hinterseite)
Wird bei Amazonien als SP-COW ESP32S Dev-Board vertrieben
https://www.amazon.de/gp/product/B07VJ34N2Q/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
Interessant wäre da die Rückseite.
Ich selbst habe einen selbigen wie auf den Bildern und auf der Rückseite ist AZ-Delivery vermerkt. Dies erleichtert manchmal die genaue Konfig.
@Dattel dein Verhalten kann ich auf jedenfall schonmal nachstellen als ersten Schritt. Nach der WIFI Einstellung kommt der Break mit erneutem AP Mode.
Weißes Board - lediglich der Aufdruck "ESP32S" ist drauf.
Nimm mal die Zeile 385 "esp_timer_stop(cronTimer_handle);" raus.. Meines Erachtens kann das Handle hier in der Setup() Funktion nur NULL sein... Wird ja erst später initialisiert über esp_timer_create(..)
Ich suche gerade eine Möglichkeit, die Dinger zu debuggen.... Komme ich da mit einem USBasp Adapter weiter?
Ich suche gerade eine Möglichkeit, die Dinger zu debuggen.... Komme ich da mit einem USBasp Adapter weiter?
Nutze doch einfach bsp. PlatformIO und lade dort den Code hoch mit "Upload und Monitor"
.
Somit siehst du sofort den Code durchlaufen oder kannst dir gern Hilfsausgaben zum verstehen ergänzen. Musst nur aufpassen, das du in keiner Schleife eine Ausgabe machst smile
Ein anderer Weg ist mir sonst nicht bekannt.
Klar geht das - nicht anders bin ich ja an die Debugausgaben und den Crashdump von oben gekommen :-P Aber mir ist das leider zu sperrig.... ich brauch ein StepInto/StepOver, wenn man schon VSCode mit der Möglichkeit zum Debuggen hat:-D
Ich denke, ich werd mir mal so ein Teil hier bestellen: https://medium.com/@manuel.bl/low-cost-esp32-in-circuit-debugging-dbbee39e508b
So erste Erfolge... auch ohne das DebugBoard.. ESP32 läuft bei mir gerade testweise mit FHEM und einem MX-RM-5V Empfänger erfolgreich zusammen. -Telnet läuft jetzt, sollte auch mit den TelnetRestart-Events bei Wifi-Verlust funktionieren (das ist wohl der Grund, warum das vorher auskommentiert war?) -den SOS Timer habe ich korrigiert, da der ESP8266 bei den os_timer_arm Funktionen mit Millis arbeitet, esp_timer_start_periodic aber Micros verlangt -selbiges mit Millis/Micros gilt auch für den cronTimer.... -für den ESP32 hab ich mir in der Compile_config eine separate Section für die ESP32 Pins gemacht
Mal schauen, ob ich das als meinen allerersten GIT-Commit mal irgendwie submitten kann... Bin sonst noch eher altbacken mit SVN unterwegs..
Hallo @Dattel
Das klingt doch schonmal gut.
Mal schauen, ob ich das als meinen allerersten GIT-Commit mal irgendwie submitten kann... Bin sonst noch eher altbacken mit SVN unterwegs..
Gern bin ich dir auch behilflich dabei. Ich erstelle nen Branch wo wir via issues ggf dies austauschen und dann in einem Ritt übernehmen und als „komplett“ dann in den Original branch als PR machen. Wie du magst. Kann ich ggf deine Anpassungen irgendwo schon online sehen?
Der next Step wäre dann der CC1101 ;)
Können wir so machen.... auf das Päckchen mit dem CC1101 warte ich aber noch. Ich stehe aber gerade vor dem Problem, dass die Reichweite sehr, sehr dürftig ist und ich wohl auf 5v Versorgung für den Empfänger + Levelshifter umsteigen muss. Wie wir das nachher zusammenführen, da würde ich mich auf dich verlassen - GIT ist (bis auf PULL) Neuland - ich zieh mir da später mal paar Tutorials zu rein.
Wäre definitiv gut, wenn da mal jemand vom logischen her drüberschaut, ob das, was ich geändert habe überhaupt Sinn macht :-)
Ich erstelle dir ein Issues (Von meinem clone) mit Verweis hier her heute Abend. Darin können wir die Änderungen austauschen, bündeln und als gesamt hier her bringen. So kürzen wir den Faden hier ab und fügen das wesentliche zurück. Das beschert besseren Überblick und bei einem PR sieht man die Änderungen dann alle in einem Zusammenhang. Das macht es leichter @sidey79 dann alles einzuschätzen bzw. abzunicken.
@Dattel, alles was die Codeänderungen angeht, kannst du via C&P oder Textmarkierungen bitte hier https://github.com/HomeAutoUser/Dev_Feature/issues/1 vornehmen. Ich baue es für dich ein und führe nach Fertigstellung einen PR für das Projekt hier ein.
Es wäre eine endlose Schlange wenn wir hier die Zeilen im Faden austauschen würden. Das Thema behalten wir somit noch übersichtlich.
Da @HomeAutoUser die gemeinsamen Codeänderungen als PullRequest zur Verfügung gestellt hat, kann das Issue hier geschlossen werden
Moins, ich probiere mich gerade dran, mal den Signalduino auf einem ESP32 Board zu flashen. Beim ersten Boot kommt fein das Config-Portal für's WLAN. Dort kann ich auch WLAN + Password eingeben, anschließend bekomme ich einen Kernelcrash mit Reboot. Ich weiß, das ESP32 noch als buggy deklariert wird, aber vielleicht gibt's ja doch schon einen FIX hierfür.?