vintlabs / fauxmoESP

Add voice control of your ESP32 and ESP8266 devices using Amazon Alexa
MIT License
383 stars 69 forks source link

ESP8266/ESP32 Not Found by Alexa #120

Closed lightbulb14 closed 3 years ago

lightbulb14 commented 3 years ago

Hi All, I'm trying to get FauxmoESP running on an ESP8266 with my Alexa and am having some troubles. The sample sketch compiles and appears to run alright (it connects to my home network) but when I try to discover via the Alexa app no new devices are found. Below is my configuration:

Alexa: Amazon Fire TV Cube (2nd Gen I think), connected to router via ethernet cable. Board: Adafruit Huzzah ESP8266 Breakout, connected to 2.4GHz WiFi Arduino IDE 1.8.13 (Windows Store 1.8.42.0) ESP8266 Core: 2.4.2 (also tried 2.7.4 with no luck) FauxmoESP V3.1.1 ESPAsyncTCP current as of 10/26/2020 lwIP variant set to "v1.4 Higher Bandwidth" For code, I started the sample fauxmoESP_Basic. I added #define DEBUG_FAUXMO Serial and removed 3/5 devices based on other peoples issues. Below is the serial output.

SDK:2.2.1(cfd48f3)/Core:2.4.2/lwIP:1.4.0rc2/BearSSL:6d1cefc      
[WIFI] Connecting to WiFi_SSID scandone      
..scandone      
state: 0 -> 2 (b0)      
state: 2 -> 3 (0)      
state: 3 -> 5 (10)      
add 0      
aid 4      
cnt       
connected with WiFi_SSID, channel 11      
dhcp client start...      
..................ip:192.168.1.241,mask:255.255.255.0,gw:192.168.1.1      
[WIFI] STATION Mode, SSID: WiFi_SSID, IP address: 192.168.1.241      
[MAIN] Free heap: 48464 bytes      
pm open,type:2 0      
[MAIN] Free heap: 47944 bytes      
[MAIN] Free heap: 47944 bytes      
[MAIN] Free heap: 47944 bytes      
[MAIN] Free heap: 47944 bytes

Thank you for any advice, Lightbulb14

Source Code:

#include <Arduino.h>
#ifdef ESP32
    #include <WiFi.h>
#else
    #include <ESP8266WiFi.h>
#endif
#include "fauxmoESP.h"

// Rename the credentials.sample.h file to credentials.h and 
// edit it according to your router configuration
#include "credentials.h"

fauxmoESP fauxmo;

// -----------------------------------------------------------------------------

#define SERIAL_BAUDRATE     115200

#define LED_YELLOW          4
#define LED_GREEN           5

#define ID_YELLOW           "yellow lamp"
#define ID_GREEN            "green lamp"

#define DEBUG_FAUXMO Serial

// -----------------------------------------------------------------------------

// -----------------------------------------------------------------------------
// Wifi
// -----------------------------------------------------------------------------

void wifiSetup() {

    // Set WIFI module to STA mode
    WiFi.mode(WIFI_STA);

    // Connect
    Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID);
    WiFi.begin(WIFI_SSID, WIFI_PASS);

    // Wait
    while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(100);
    }
    Serial.println();

    // Connected!
    Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());

}

void setup() {

    // Init serial port and clean garbage
    Serial.begin(SERIAL_BAUDRATE);
    Serial.println();
    Serial.println();

    // LEDs
    pinMode(LED_YELLOW, OUTPUT);
    pinMode(LED_GREEN, OUTPUT);

    digitalWrite(LED_YELLOW, LOW);
    digitalWrite(LED_GREEN, LOW);

    // Wifi
    wifiSetup();

    // By default, fauxmoESP creates it's own webserver on the defined port
    // The TCP port must be 80 for gen3 devices (default is 1901)
    // This has to be done before the call to enable()
    fauxmo.createServer(true); // not needed, this is the default value
    fauxmo.setPort(80); // This is required for gen3 devices

    // You have to call enable(true) once you have a WiFi connection
    // You can enable or disable the library at any moment
    // Disabling it will prevent the devices from being discovered and switched
    fauxmo.enable(true);

    // You can use different ways to invoke alexa to modify the devices state:
    // "Alexa, turn yellow lamp on"
    // "Alexa, turn on yellow lamp
    // "Alexa, set yellow lamp to fifty" (50 means 50% of brightness, note, this example does not use this functionality)

    // Add virtual devices
    fauxmo.addDevice(ID_YELLOW);
    fauxmo.addDevice(ID_GREEN);

    fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value) {

        // Callback when a command from Alexa is received. 
        // You can use device_id or device_name to choose the element to perform an action onto (relay, LED,...)
        // State is a boolean (ON/OFF) and value a number from 0 to 255 (if you say "set kitchen light to 50%" you will receive a 128 here).
        // Just remember not to delay too much here, this is a callback, exit as soon as possible.
        // If you have to do something more involved here set a flag and process it in your main loop.

        Serial.printf("[MAIN] Device #%d (%s) state: %s value: %d\n", device_id, device_name, state ? "ON" : "OFF", value);

        // Checking for device_id is simpler if you are certain about the order they are loaded and it does not change.
        // Otherwise comparing the device_name is safer.

        if (strcmp(device_name, ID_YELLOW)==0) {
            digitalWrite(LED_YELLOW, state ? HIGH : LOW);
        } else if (strcmp(device_name, ID_GREEN)==0) {
            digitalWrite(LED_GREEN, state ? HIGH : LOW);
        } 

    });

}

void loop() {

    // fauxmoESP uses an async TCP server but a sync UDP server
    // Therefore, we have to manually poll for UDP packets
    fauxmo.handle();

    // This is a sample code to output free heap every 5 seconds
    // This is a cheap way to detect memory leaks
    static unsigned long last = millis();
    if (millis() - last > 5000) {
        last = millis();
        Serial.printf("[MAIN] Free heap: %d bytes\n", ESP.getFreeHeap());
    }

    // If your device state is changed by any other means (MQTT, physical button,...)
    // you can instruct the library to report the new state to Alexa on next request:
    // fauxmo.setState(ID_YELLOW, true, 255);

}
pvint commented 3 years ago

No resolution yet, but I wanted to note a couple findings.

In the example above, then the Echo requests a list of devices, the JSON string that is being returned is > 4000 bytes. When ESPAsyncTCP sends this (via lwIP), it gets split into a couple packets, as expected, however it is being truncated at the limit returned by tcp_sndbuf(_pcb), which in my case is a bit under 3000 bytes. The remaining ~1000 bytes is simply truncated.

Note that there might be more than one issue currently, and I'm just reporting on one that I have clearly identified.

pvint commented 3 years ago

@jenniferlee1818

I think I follow what you mean, and this could indeed be an issue. Good idea. I'll have a look and think about it and let you know shortly.

jenniferlee1818 commented 3 years ago

@pvint specifically how about a unique id that contains, rather than 000001, 000002, etc., a datetime with milliseconds. I think that would solve my problem. Not sure about others.

pvint commented 3 years ago

The way the code is structured that's not a trivial change (not really a big deal, but too big of a deal for this evening!)

If you want to give it a try, edit fauxmoESP.cpp and around line 127 you'll see:

    snprintf_P(
        buffer, sizeof(buffer),
        FAUXMO_DEVICE_JSON_TEMPLATE,
        device.name, mac.substring(6).c_str(), id, 
        device.state ? "true": "false",
        device.value
    );

Try changing line 127 to something like:

device.name, mac.substring(6).c_str(), id + 1000,

This is just as an experiment (sorry, I'm getting too tired to try myself now!), and it would be interesting to see if it gets around the issue you're having.

jenniferlee1818 commented 3 years ago

@pvint yes, thank you I'll try it.

Freddy0031 commented 3 years ago

I didn't find much time for testing during the week, but spend quite a while with this today. So far, it looks pretty promising. I was using the Master branch code without any change. This is on ESP8266/NodeMCU v0.9 and with Echo Dot 2G. Discovery seems to work stable. The only issue I came across is that one about old devices that appeared again. I narrowed it down to some extent: In the past, I did a "Remove all" in the Alexa app, but it seems that this was the issue. When I remove all, they come back with discovery (but with old names, instead of new ones). Now if I just remove selected ones (e.g. my device ID 2 and 5 because I gave them new names) and do discovery again, then it seems to work perfectly fine. I was able to discover and control 8 devices using fauxmoESP

adbensi commented 3 years ago

@pvint the discoveryIssue works for me, and found old devices names too; No problem to delete them, thanks!

pvint commented 3 years ago

Appreciate the feedback everyone. Also please note that the discoverIssue branch has been merged to master.

societyofrobots commented 3 years ago

I just ran into this issue as well. The Alexa app won't recognize my device. (I don't own any Echo hardware to try)

So, I updated the firmware to that from 15 days ago: https://github.com/vintlabs/fauxmoESP/issues/126 (doesn't fix it)

Then I tried the suggested code change: https://github.com/vintlabs/fauxmoESP/issues/120#issuecomment-725668624 (doesn't fix it)

I added #define DEBUG_FAUXMO_VERBOSE_TCP true but still only get the below output:

[WIFI] Connecting to Pik_Mob .....
[WIFI] STATION Mode, SSID: Pik_Mob, IP address: 192.168.10.139
[MAIN] Free heap: 247684 bytes

I'm available to test any code fixes.

ma7gdp commented 3 years ago

I can confirm the same as @societyofrobots. Yesterday I switched everything off. i.e. router, access points all ESP fauxmo devices and Alexa hardware devices and then switched them all back on. All of a sudden the discovery started working again. Today discovery is not working again. I am currently experimenting with 2 ESP devices and changing the names of the fauxmo devices i.e. fauxmo.addDevice("tester 1") then changing to fauxmo.addDevice("tester 2"); and re-sending to device. Not sure what is going on exactly, but happy to try things out. I am currently using the latest committed code.

ddweber456 commented 3 years ago

Delete your old devices via the Alexa App (I found the Web version alexa.amazon.com worked the best) and try discover again.

ma7gdp commented 3 years ago

I removed all fauxmo devices using alexa.amazon.com (thanks for mentioning that btw as it is much easier than asking alexa all the time 👍 ). I also removed a sonos device as a test to see if discovery re-found it. The result of web triggered 'discover devices' was that the sonos was found again, but zero fauxmo devices were found. I rebooted the fauxmo devices and tried discovery again and still no joy.

ma7gdp commented 3 years ago

Update: Just tried again and eveything has been discovered including old device names which are no longer in any fauxmo code I have. All I did was to restart 'discover devices' via alexa.amazon.com and then 10 seconds in I restarted one of the fauxmo ESP devices. Strange behaviour, some kind of caching perhaps in local router or echo devices? Anyhow, I can now get back to project. Still happy to try out any suggestions, as I dont think I have seen the last of this issue.

ma7gdp commented 3 years ago

Update: The discovery is still temperamental. I have also noticed a few duplicates being found. For example I have defined 8 devices on one ESP8266 using Fauxmo and I have ended up with 10 in the Alexa app (2 duplicates). I wonder if the unique ID/naming is somehow registering duplicates on a restart or during a re-discovery pass? Will continue to post any findings.

ddweber456 commented 3 years ago

@pvint What version should we be testing with? I started seeing issues with Discovery again this evening.

adbensi commented 3 years ago

Hello! I use this (test version): If You need, I send to you the files.

library.properties:

name=FauxmoESP version=3.1.1 author=Xose Pérez xose.perez@gmail.com maintainer=Xose Pérez xose.perez@gmail.com sentence=Amazon Alexa support for ESP8266 and ESP32 paragraph= category=Communication url=https://bitbucket.org/xoseperez/fauxmoESP architectures=esp8266,esp32 includes=fauxmoESP.h

library.json:

{ "name": "FauxmoESP", "keywords": "belkin,wemo,fauxmo,esp8266,esp32,alexa,amazon,echo,dot", "description": "Amazon Alexa support for ESP8266 and ESP32 (Amazon Echo & Dot)", "repository": { "type": "git", "url": "https://bitbucket.org/xoseperez/fauxmoESP" }, "version": "3.1.1", "license": "MIT", "exclude": "tests", "frameworks": "arduino", "platforms": ["espressif8266", "espressif32"], "authors": { "name": "Xose Perez", "email": "xose.perez@gmail.com", "url": "http://tinkerman.cat", "maintainer": true }, "dependencies": [ { "name": "ESPAsyncTCP", "version": ">=1.2.0", "platforms": "espressif8266" }, { "name": "AsyncTCP", "version": ">=1.0.1", "platforms": "espressif32" } ], "examples": [ "examples//.ino" ] }

Em sáb, 5 de dez de 2020 03:08, David Weber notifications@github.com escreveu:

@pvint https://github.com/pvint What version should we be testing with? I started seeing issues with Discovery again this evening.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/vintlabs/fauxmoESP/issues/120#issuecomment-739132848, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCTHGBEYV5R65OVC2EEFE3STHE7HANCNFSM4TAIBSKA .

societyofrobots commented 3 years ago

If I were to offer a bounty to have this issue resolved asap, would any developer be interested in tackling this?

Ideally I'd like to use this software for a lock, and the user would be requested for their pin.

ddweber456 commented 3 years ago

I am now getting stack dumps when I ask Alexa to discover devices. ESP8266 D1 Mini R1

Versions:

Using library LittleFS at version 0.1.0 in folder: C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\LittleFS 
Using library ArduinoJson at version 5.13.5 in folder: C:\Users\David\Documents\Arduino\libraries\ArduinoJson 
Using library ESP8266WiFi at version 1.0 in folder: C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi 
Using library WiFiManager at version 0.15.0 in folder: C:\Users\David\Documents\Arduino\libraries\WiFiManager 
Using library ESP8266WebServer at version 1.0 in folder: C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer 
Using library DNSServer at version 1.1.1 in folder: C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\DNSServer 
Using library fauxmoESP-3.1.2-RC1 at version 3.1.1 in folder: C:\Users\David\Documents\Arduino\libraries\fauxmoESP-3.1.2-RC1 
Using library ESPAsyncTCP at version 1.2.2 in folder: C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP 

Stack>>>>>

No poison after block at: 0x3fff1d0c, actual data: 0x0 0xa5 0xa5 0xa5

User exception (panic/abort/assert)
--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Panic umm_malloc.cpp:458 umm_malloc_core

>>>stack>>>

ctx: sys
sp: 3ffffae0 end: 3fffffb0 offset: 0000
3ffffae0:  00000000 00000017 3ffffbc0 4021c082  
3ffffaf0:  000000fe 00000000 00000000 00000000  
3ffffb00:  00000000 00000000 00000000 3ffef37c  
3ffffb10:  5ffffe00 5ffffe00 3ffffbc0 3ffef3d4  
3ffffb20:  0000145d 000000c6 00000278 40212f92  
3ffffb30:  00000002 0000005a 00302064 40212fef  
3ffffb40:  00000000 000000c6 00000278 40100b1b  
3ffffb50:  00001000 00000000 00001000 0000a000  
3ffffb60:  00303700 00000000 00001000 000005b4  
3ffffb70:  00000610 0000005a 00000020 40100d6c  
3ffffb80:  3ffffc90 3ffffc80 00000018 3ffe8304  
3ffffb90:  00000002 00000017 0000062c 40100d9b  
3ffffba0:  3ffffbd0 00000000 000005b4 401003b0  
3ffffbb0:  3ffe900e 3ffe8304 00000068 40228224  
3ffffbc0:  3ffffd0a b46563ae 0000000d 40221d20  
3ffffbd0:  3ffffcb0 00000067 df0247c3 53e71870  
3ffffbe0:  a85f918b 94b785fa c9e5a753 000005b4  
3ffffbf0:  00000000 00000000 3fff19d4 40222df0  
3ffffc00:  00000000 0000005a 3ffffcb0 00000000  
3ffffc10:  00000000 0000005a 00000000 00000001  
3ffffc20:  00000000 0000005a 3ffe98b1 00000008  
3ffffc30:  4023a4a2 3fff1af4 3ffe9048 3fff19d4  
3ffffc40:  0000005a 3fff1af4 0000005a 4020fe55  
3ffffc50:  3ffffcb0 00000000 00000002 401019a0  
3ffffc60:  3ffe9762 4023955f 3ffeced0 3ffffd20  
3ffffc70:  3ffe900e 3fff1af4 3fff1af4 4020fe87  
3ffffc80:  00000000 3fff1af4 00000000 4020fed0  
3ffffc90:  3ffffcb0 00000046 00000000 40100e21  
3ffffca0:  3fff0ec4 3fff1af4 3ffe9048 4020ee79  
3ffffcb0:  50545448 312e312f 30303220 0d4b4f20  
3ffffcc0:  6e6f430a 746e6574 7079542d 61203a65  
3ffffcd0:  696c7070 69746163 6a2f6e6f 0d6e6f73  
3ffffce0:  6e6f430a 746e6574 6e654c2d 3a687467  
3ffffcf0:  0d303720 6e6f430a 7463656e 3a6e6f69  
3ffffd00:  6f6c6320 0a0d6573 00000a0d 40100e21  
3ffffd10:  3ffe900e 3fff1af4 3ffe9048 4020ee49  
3ffffd20:  00000068 3ffe902c 4024da7d 402117f5  
3ffffd30:  3ffffda0 3ffffdac 3ffef134 3ffffd50  
3ffffd40:  3ffffda0 3ffffdac 3ffef134 4020f2a1  
3ffffd50:  00000005 00000016 3ffffda0 402119d4  
3ffffd60:  69766500 79746563 80006570 40211b94  
3ffffd70:  3ffffdf0 3fff1af4 3ffffda0 00000002  
3ffffd80:  3ffffdf0 3ffffdfc 3ffef134 3ffffdfc  
3ffffd90:  3ffffdf0 3fff1af4 3ffef134 4020f520  
3ffffda0:  3fff171c 0016001f 00fffdf0 6970612f  
3ffffdb0:  00000000 84ff1af4 00000020 40100d1f  
3ffffdc0:  00000000 00000001 3ffffdf0 402119d4  
3ffffdd0:  3ffef134 3ffffdf0 3fff1cf6 3fff1af4  
3ffffde0:  3ffef134 3fff1c8f 3fff1cf6 4020f5e0  
3ffffdf0:  3fff1a9c 0016001f 00c6a7f0 6970612f  
3ffffe00:  00000000 84ff1a4e 401002a4 00001da3  
3ffffe10:  00000009 3fff1af4 00000000 401003e8  
3ffffe20:  00224484 3fff1af4 00000000 00000000  
3ffffe30:  3fff1c44 3ffffe90 3fff1af4 4020f621  
3ffffe40:  3fff1c44 3ffffe90 3fff1af4 4021016a  
3ffffe50:  3fff19d4 00000000 00000020 40100d1f  
3ffffe60:  3fff19d4 00000000 00000000 3ffef67c  
3ffffe70:  3fff0000 00000000 00000000 3fff19d4  
3ffffe80:  3fff1c44 00000000 3fff1af4 40210312  
3ffffe90:  3fff147c 3fff149c 0000025d 3ffef67c  
3ffffea0:  3fff083c 3fff08ec 3fff1c44 3ffef67c  
3ffffeb0:  3fff19d4 3ffef660 3ffef661 402218f0  
3ffffec0:  000000b8 00000000 00000020 40100d6c  
3ffffed0:  3fff083c 6e00a8c0 00000020 40100da0  
3ffffee0:  00000000 00000228 00000228 3fff08ec  
3ffffef0:  3fff083c 3fff1c62 3fff1c44 402274ca  
3fffff00:  00000014 3fff083c 00000020 40100d1f  
3fffff10:  00000000 3fff0aec 3ffed1c8 3fff0f3c  
3fffff20:  3fffdc80 3fff0ec4 3fff1a9c 3fff0f3c  
3fffff30:  00000008 3fff083c 3fff1c44 4021e345  
3fffff40:  3fffdc80 3fff0ec4 3fff1a9c 4021e164  
3fffff50:  4023e40a 3fff0ec4 3fff1a9c 4023e41b  
3fffff60:  3fff1c54 3fff1c44 00000000 3fffdcc0  
3fffff70:  402392f7 00000000 3fff1a9c 402401db  
3fffff80:  40000f49 3fffdab0 3fffdab0 40000f49  
3fffff90:  40000e19 00000005 0005968c 00000000  
3fffffa0:  3ffef830 aa55aa55 000000d3 40104d51  
<<<stack<<<

Decoded Stack:


Decoding stack results
0x4021c082: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40100b1b: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 460
0x40100d6c: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100d9b: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 160
0x401003b0: malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 232
0x40228224: mem_malloc at core/mem.c line 210
0x40221d20: pbuf_alloc_LWIP2 at core/pbuf.c line 284
0x40222df0: tcp_write at core/tcp_out.c line 263
0x4020fe55: AsyncClient::add(char const*, unsigned int, unsigned char) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 409
0x4020fe87: AsyncClient::write(char const*, unsigned int, unsigned char) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 383
0x4020fed0: AsyncClient::write(char const*) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 379
0x40100e21: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x4020ee79: fauxmoESP::_sendTCPResponse(AsyncClient*, char const*, char*, char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-3.1.2-RC1\src\fauxmoESP.cpp line 110
0x40100e21: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x4020ee49: fauxmoESP::_sendTCPResponse(AsyncClient*, char const*, char*, char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-3.1.2-RC1\src\fauxmoESP.cpp line 98
0x402117f5: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140
0x4020f2a1: fauxmoESP::_onTCPControl(AsyncClient*, String, String) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-3.1.2-RC1\src\fauxmoESP.cpp line 230
0x402119d4: String::copy(char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x40211b94: String::operator=(String const&) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 262
0x4020f520: fauxmoESP::_onTCPRequest(AsyncClient*, bool, String, String) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-3.1.2-RC1\src\fauxmoESP.cpp line 302
0x40100d1f: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x402119d4: String::copy(char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x4020f5e0: fauxmoESP::_onTCPData(AsyncClient*, void*, unsigned int) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-3.1.2-RC1\src\fauxmoESP.cpp line 348
0x401002a4: millis() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 188
0x401003e8: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x4020f621: std::_Function_handler ::_M_invoke(const std::_Any_data &, void *, AsyncClient *, void *, unsigned int) at c:\users\david\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x4021016a: AsyncClient::_recv(std::shared_ptr &, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 649
0x40100d1f: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40210312: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 738
0x402218f0: tcp_input at core/tcp_in.c line 501
0x40100d6c: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100da0: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 163
0x402274ca: ip4_input at core/ipv4/ip4.c line 1467
0x40100d1f: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4021e345: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x4021e164: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 469
0x4023e40a: ethernet_input at glue-esp/lwip-esp.c line 365
0x4023e41b: ethernet_input at glue-esp/lwip-esp.c line 373

The sketch I used to generate this stack was working fine with introduction of the 3.1.2-RC1 version, until last night. I started seeing these stack dumps while working on making modifications.

The stack dumps only start after I asked Alexa to discover new devices. The first dump occurs close to the end of Alexa's discovery cycle. At that point the ESP reboots continuously after the first stank dump. The dumps stop immediately when I unplug the Alexa Echo.

If I leave the Echo alone, don't unplug it. but instead I unplug the ESP so I can read serial monitor. When I plug the ESP in again the stack dumps start almost immediately and the ESP continues to reboot. ??Alexa running a muck??

pvint commented 3 years ago

I've been able to reproduce an issue this morning. It's not happening every time, but I feel like there's an order of operations that could make it reproducible every time.

Here's two different failure modes I have had this morning:

Exception 3: LoadStoreError: Processor internal physical address or data error during load or store
PC: 0x401006fd: umm_free_core(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 343
EXCVADDR: 0x40069900

Decoding stack results
0x4010071b: umm_free_core(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 351
0x401009a3: free(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 398
0x40214a84: tcp_enqueue_flags at core/tcp_out.c line 1085
0x4020f699: operator delete(void*) at /workdir/repo/gcc/libstdc++-v3/libsupc++/del_op.cc line 48
0x4020114a: std::_Function_base::_Base_manager ::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation) at /home/pvint/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/xtensa-lx106-elf/include/c++/4.8.2/functional line 1954
0x402077a8: std::_Function_base::~_Function_base() at /home/pvint/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/xtensa-lx106-elf/include/c++/4.8.2/functional line 2031
0x40203eff: AsyncClient::~AsyncClient() at /home/pvint/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/xtensa-lx106-elf/include/c++/4.8.2/functional line 2174
0x40201094: std::_Function_handler ::_M_invoke(const std::_Any_data &, void *, AsyncClient *) at /tmp/arduino_build_34063/sketch/fauxmoESP.cpp line 376
0x401000e1: std::function ::operator()(void*, AsyncClient*) const at /home/pvint/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/xtensa-lx106-elf/include/c++/4.8.2/functional line 2465
0x40203c90: AsyncClient::_close() at /home/pvint/Arduino/libraries/ESPAsyncTCP/src/ESPAsyncTCP.cpp line 524
0x40203d6d: AsyncClient::_recv(std::shared_ptr &, tcp_pcb*, pbuf*, long) at /home/pvint/Arduino/libraries/ESPAsyncTCP/src/ESPAsyncTCP.cpp line 615
0x40203f86: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at /home/pvint/Arduino/libraries/ESPAsyncTCP/src/ESPAsyncTCP.cpp line 747
0x40213268: tcp_input at core/tcp_in.c line 542
.....
Exception 28: LoadProhibited: A load referenced a page mapped with an attribute that does not permit loads
PC: 0x40210a14: tcp_fasttmr at core/tcp.c line 1494
EXCVADDR: 0x03330022

Decoding stack results
0x40210f48: tcpip_tcp_timer at core/timeouts.c line 145
0x401009a3: free(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 398
0x40210f48: tcpip_tcp_timer at core/timeouts.c line 145
0x40210e14: tcp_tmr at core/tcp.c line 239
0x40210f50: tcpip_tcp_timer at core/timeouts.c line 151
0x40211050: sys_check_timeouts at core/timeouts.c line 390
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x40209ac3: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x4020de76: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x4020e2a7: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667
0x402069a6: uart_tx_fifo_available(int) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/uart.cpp line 464
0x4020f7f1: glue2esp_linkoutput at glue-esp/lwip-esp.c line 301
0x402069c4: uart_do_write_char(int, char) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/uart.cpp line 476
0x402044a8: HardwareSerial::write(unsigned char const*, unsigned int) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/HardwareSerial.h line 164
0x4020fa7e: new_linkoutput at glue-lwip/lwip-git.c line 260
0x4020fe9c: ethernet_output at netif/ethernet.c line 312
0x4020e060: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 531
0x40217510: etharp_output_to_arp_index at core/ipv4/etharp.c line 770
0x4020b515: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x40217764: etharp_output_LWIP2 at core/ipv4/etharp.c line 885
0x40219064: ip4_output_if_opt_src at core/ipv4/ip4.c line 1764
0x4010071b: umm_free_core(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 351
0x401009a3: free(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 398
0x402190fa: ip4_output_if_src at core/ipv4/ip4.c line 1590
0x40219c67: ip_chksum_pseudo at core/inet_chksum.c line 395
0x4021411c: udp_sendto_if_src at core/udp.c line 893
0x4010071b: umm_free_core(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 351
0x4010071b: umm_free_core(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 351
0x401009a3: free(void*) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 398
0x40203400: WiFiUDP::endPacket() at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi/src/WiFiUdp.cpp line 176
0x40204dc5: String::invalidate() at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/WString.cpp line 140
0x40203280: WiFiUDP::write(unsigned char const*, unsigned int) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi/src/WiFiUdp.cpp line 185
0x40204de4: String::~String() at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/WString.cpp line 125
0x40203280: WiFiUDP::write(unsigned char const*, unsigned int) at /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi/src/WiFiUdp.cpp line 185
0x4020219c: fauxmoESP::_sendUDPResponse() at /tmp/arduino_build_34063/sketch/fauxmoESP.cpp line 66
...

Both of them seem to be after the Echo device does repeated requests to GET /api/2WLEDHardQrI3WHYTHoMcXHgEspsM8ZZRpSKtBQr/lights HTTP/1.1

Still looking, but it looks like something is writing to invalid memory at or before client->onDisconnect([this

pvint commented 3 years ago

Since adding a bunch of debug statements (and subsequently removing them), I am no longer able to reproduce the issue on any of 4 different ESP8266 boards and with Gen2 and Gen3 Echo devices.

I'll try again a bit later, but if anyone can let me know how they are getting it to crash please let me know!

ddweber456 commented 3 years ago

I'm not getting normal Exception # dumps. But I am getting 2 different dumps. The first dump right after Alexa Discovery and a different dump after ESP reboots.

First Stack Dump:


User exception (panic/abort/assert)
--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Abort called

>>>stack>>>
Decoding stack results
0x40212fa4: __assert_func(char const*, int, char const*, char const*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_postmortem.cpp line 275
0x40100c4a: get_unpoisoned_check_neighbors(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 125
0x4020f5ec: fauxmoESP::_onTCPData(AsyncClient*, void*, unsigned int) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 348
0x40100d39: umm_poison_free_fl(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 148
0x401003e8: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x40228244: mem_free at core/mem.c line 237
0x40221c0e: pbuf_free_LWIP2 at core/pbuf.c line 786
0x4021018f: AsyncClient::_recv(std::shared_ptr &, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 623
0x40100d1f: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40210312: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 738
0x402218f0: tcp_input at core/tcp_in.c line 501
0x40100d6c: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x402274ca: ip4_input at core/ipv4/ip4.c line 1467
0x40100d1f: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4021e345: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x4021e164: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 469
0x4023e40a: ethernet_input at glue-esp/lwip-esp.c line 365
0x4023e41b: ethernet_input at glue-esp/lwip-esp.c line 373

The ESP reboots and this is the stack dump:

No poison after block at: 0x3fff1d0c, actual data: 0x0 0xa5 0xa5 0xa5

User exception (panic/abort/assert)
--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Panic umm_malloc.cpp:458 umm_malloc_core

>>>stack>>>
Decoding stack results
0x4021c082: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40100b1b: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 460
0x40100d6c: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100d9b: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 160
0x401003b0: malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 232
0x40228224: mem_malloc at core/mem.c line 210
0x40221d20: pbuf_alloc_LWIP2 at core/pbuf.c line 284
0x40222df0: tcp_write at core/tcp_out.c line 263
0x4020fe55: AsyncClient::add(char const*, unsigned int, unsigned char) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 409
0x4020fe87: AsyncClient::write(char const*, unsigned int, unsigned char) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 383
0x4020fed0: AsyncClient::write(char const*) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 379
0x40100e21: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x4020ee79: fauxmoESP::_sendTCPResponse(AsyncClient*, char const*, char*, char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 110
0x40100e21: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x4020ee49: fauxmoESP::_sendTCPResponse(AsyncClient*, char const*, char*, char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 98
0x402117f5: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140
0x4020f2a1: fauxmoESP::_onTCPControl(AsyncClient*, String, String) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 230
0x402119d4: String::copy(char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x40211b94: String::operator=(String const&) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 262
0x4020f520: fauxmoESP::_onTCPRequest(AsyncClient*, bool, String, String) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 302
0x40100d1f: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x402119d4: String::copy(char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x4020f5e0: fauxmoESP::_onTCPData(AsyncClient*, void*, unsigned int) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 348
0x401002a4: millis() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 188
0x401003e8: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x4020f621: std::_Function_handler ::_M_invoke(const std::_Any_data &, void *, AsyncClient *, void *, unsigned int) at c:\users\david\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x4021016a: AsyncClient::_recv(std::shared_ptr &, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 649
0x40100d1f: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40210312: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 738
0x402218f0: tcp_input at core/tcp_in.c line 501
0x40100d6c: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100da0: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 163
0x402274ca: ip4_input at core/ipv4/ip4.c line 1467
0x40100d1f: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4021e345: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x4021e164: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 469
0x4023e40a: ethernet_input at glue-esp/lwip-esp.c line 365
0x4023e41b: ethernet_input at glue-esp/lwip-esp.c line 373
pvint commented 3 years ago

Interesting. I'm still completely unable to get a crash.

@ddweber456 - Can you try the following please:

  1. Use this minimal sketch (along with a credentials.h like the examples)
    
    #include <Arduino.h>
    #ifdef ESP32
    #include <WiFi.h>
    #else
    #include <ESP8266WiFi.h>
    #endif

include "fauxmoESP.h"

// Rename the credentials.sample.h file to credentials.h and // edit it according to your router configuration

include "credentials.h"

fauxmoESP fauxmo;

define SERIAL_BAUDRATE 115200

define DEVICE_NAME "Aardvark"

// ----------------------------------------------------------------------------- // Wifi // -----------------------------------------------------------------------------

void wifiSetup() {

// Set WIFI module to STA mode
WiFi.mode(WIFI_STA);

// Connect
Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASS);

// Wait
while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(100);
}
Serial.println();

// Connected!
Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());

}

void setup() {

// Init serial port and clean garbage
Serial.begin(SERIAL_BAUDRATE);
Serial.println();
Serial.println();

// Wifi
wifiSetup();

fauxmo.createServer(true); // not needed, this is the default value
fauxmo.setPort(80); // This is required for gen3 devices

fauxmo.enable(true);

fauxmo.addDevice(DEVICE_NAME);     

}

void loop() {

// fauxmoESP uses an async TCP server but a sync UDP server
// Therefore, we have to manually poll for UDP packets
fauxmo.handle();

}


Edit `libraries/ESPAsyncTCP/src/DebugPrintMacros.h` and uncomment the following lines:
```C
#define DEBUG_ESP_ASYNC_TCP 1
#define DEBUG_ESP_TCP_SSL 1
#define DEBUG_ESP_PORT Serial

Then post the serial output along with the backtrace.

Thanks!

ddweber456 commented 3 years ago

First stack dump:

connected with NachoLINK, channel 9
dhcp client start...
......ip:192.168.0.110,mask:255.255.255.0,gw:192.168.0.1

[WIFI] STATION Mode, SSID: NachoLINK, IP address: 192.168.0.110
pm open,type:2 0
000029.922 [ASYNC_TCP] _accept[1]: connected
000029.923 [ASYNC_TCP] _recv[1]: 99, PBUF_FLAG_PUSH
000029.932 [ASYNC_TCP] _sent[1]:  848, unacked=   0, acked= 848, space=2920
000029.933 [ASYNC_TCP] _recv[1]: pb == NULL! Closing... 0
000063.275 [ASYNC_TCP] _accept[2]: connected
000063.277 [ASYNC_TCP] _recv[2]: 130, PBUF_FLAG_PUSH

No poison after block at: 0x3fff027c, actual data: 0x0 0xa5 0xa5 0xa5

User exception (panic/abort/assert)
--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Panic umm_malloc.cpp:458 umm_malloc_core

>>>stack>>>
Decoding stack results
0x40209f7c: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 246
0x40100a63: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 460
0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100ce3: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 160
0x401002f8: malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 232
0x40219d80: mem_malloc at core/mem.c line 210
0x40209e51: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x40213874: pbuf_alloc_LWIP2 at core/pbuf.c line 284
0x4020b6f5: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x40214944: tcp_write at core/tcp_out.c line 263
0x4020dda6: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x402037e7: AsyncClient::add(char const*, unsigned int, unsigned char) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 408
0x4020b738: vsnprintf at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 42
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x4020385b: AsyncClient::write(char const*, unsigned int, unsigned char) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 383
0x402038a4: AsyncClient::write(char const*) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 379
0x40100d69: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x402027ad: fauxmoESP::_sendTCPResponse(AsyncClient*, char const*, char*, char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 110
0x40100d69: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x4020277d: fauxmoESP::_sendTCPResponse(AsyncClient*, char const*, char*, char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 98
0x40204ed9: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140
0x40202bd5: fauxmoESP::_onTCPControl(AsyncClient*, String, String) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 230
0x402050bc: String::copy(char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x4020527c: String::operator=(String const&) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 262
0x40202e54: fauxmoESP::_onTCPRequest(AsyncClient*, bool, String, String) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 302
0x402050bc: String::copy(char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x40202f14: fauxmoESP::_onTCPData(AsyncClient*, void*, unsigned int) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 348
0x40202f55: std::_Function_handler ::_M_invoke(const std::_Any_data &, void *, AsyncClient *, void *, unsigned int) at c:\users\david\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x40203cea: AsyncClient::_recv(std::shared_ptr &, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 649
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40203e96: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 738
0x40213444: tcp_input at core/tcp_in.c line 501
0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100ce8: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 163
0x40219026: ip4_input at core/ipv4/ip4.c line 1467
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4020fff1: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x4020fe10: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 469
0x4022ff26: ethernet_input at glue-esp/lwip-esp.c line 365
0x4022ff37: ethernet_input at glue-esp/lwip-esp.c line 373
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x4020dda6: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40209e51: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x40100995: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 71
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x4020dcdc: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40100c84: umm_poison_free_fl(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 149
0x40100330: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x40219da0: mem_free at core/mem.c line 237
0x40210135: memp_free at core/memp.c line 447
0x4021787c: etharp_query at core/ipv4/etharp.c line 1059
0x402179a0: etharp_output_LWIP2 at core/ipv4/etharp.c line 890
0x40219288: ip4_output_if_opt_src at core/ipv4/ip4.c line 1764
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x4021931e: ip4_output_if_src at core/ipv4/ip4.c line 1590
0x40219e8f: ip_chksum_pseudo at core/inet_chksum.c line 395
0x40100880: get_poisoned(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 117
0x40214340: udp_sendto_if_src at core/udp.c line 893
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100330: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x4020e1d7: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667
0x4020dcdc: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x4020f9d1: glue2esp_linkoutput at glue-esp/lwip-esp.c line 301
0x4020fc5e: new_linkoutput at glue-lwip/lwip-git.c line 260
0x4021007c: ethernet_output at netif/ethernet.c line 312
0x4020df90: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 531
0x40217734: etharp_output_to_arp_index at core/ipv4/etharp.c line 770
0x40217988: etharp_output_LWIP2 at core/ipv4/etharp.c line 885
0x40219288: ip4_output_if_opt_src at core/ipv4/ip4.c line 1764
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x4021931e: ip4_output_if_src at core/ipv4/ip4.c line 1590
0x40219e8f: ip_chksum_pseudo at core/inet_chksum.c line 395
0x40100880: get_poisoned(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 117
0x40214340: udp_sendto_if_src at core/udp.c line 893
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40201e10: WiFiUDP::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40201e10: WiFiUDP::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185
0x40100c84: umm_poison_free_fl(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 149
0x40100330: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x40204ed9: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140
0x40204ef8: String::~String() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 125
0x40201e10: WiFiUDP::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185
0x402033fa: fauxmoESP::_sendUDPResponse() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 66
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40207479: run_scheduled_functions() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Schedule.cpp line 123
0x40205e89: __loop_end() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 184
0x402023d4: WiFiUDP::parsePacket() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 199
0x40203440: fauxmoESP::_handleUDP() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 70
0x40203321: fauxmoESP::addDevice(char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 461
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x401001b9: esp_schedule() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 125
0x40205ec5: loop_wrapper() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 199

2nd dump after reboot:

connected with NachoLINK, channel 9
dhcp client start...
......ip:192.168.0.110,mask:255.255.255.0,gw:192.168.0.1

[WIFI] STATION Mode, SSID: NachoLINK, IP address: 192.168.0.110
000001.759 [ASYNC_TCP] _accept[1]: connected
000001.762 [ASYNC_TCP] _recv[1]: 130, PBUF_FLAG_PUSH
No poison after block at: 0x3fff0074, actual data: 0x0 0xa5 0xa5 0xa5

User exception (panic/abort/assert)
--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Panic umm_malloc.cpp:458 umm_malloc_core

>>>stack>>>
Decoding stack results
0x40209f7c: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 246
0x40100a63: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 460
0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100ce3: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 160
0x401002f8: malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 232
0x40219d80: mem_malloc at core/mem.c line 210
0x40209e51: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x40213874: pbuf_alloc_LWIP2 at core/pbuf.c line 284
0x4020b6f5: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x40214944: tcp_write at core/tcp_out.c line 263
0x4020dda6: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x402037e7: AsyncClient::add(char const*, unsigned int, unsigned char) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 408
0x4020b738: vsnprintf at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 42
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x402056d6: String::startsWith(String const&, unsigned int) const at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 580
0x4020385b: AsyncClient::write(char const*, unsigned int, unsigned char) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 383
0x402038a4: AsyncClient::write(char const*) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 379
0x40100d69: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x402027ad: fauxmoESP::_sendTCPResponse(AsyncClient*, char const*, char*, char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 110
0x40100d69: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x4020277d: fauxmoESP::_sendTCPResponse(AsyncClient*, char const*, char*, char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 98
0x40204ed9: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140
0x40202bd5: fauxmoESP::_onTCPControl(AsyncClient*, String, String) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 230
0x402050bc: String::copy(char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x4020527c: String::operator=(String const&) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 262
0x40202e54: fauxmoESP::_onTCPRequest(AsyncClient*, bool, String, String) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 302
0x402050bc: String::copy(char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x40202f14: fauxmoESP::_onTCPData(AsyncClient*, void*, unsigned int) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 348
0x40202f55: std::_Function_handler ::_M_invoke(const std::_Any_data &, void *, AsyncClient *, void *, unsigned int) at c:\users\david\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x40203cea: AsyncClient::_recv(std::shared_ptr &, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 649
0x40203e96: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 738
0x40213444: tcp_input at core/tcp_in.c line 501
0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100ce8: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 163
0x40219026: ip4_input at core/ipv4/ip4.c line 1467
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4020fff1: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x4020fe10: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 469
0x4022ff26: ethernet_input at glue-esp/lwip-esp.c line 365
0x4022ff37: ethernet_input at glue-esp/lwip-esp.c line 373
0x40100946: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 59
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x40100946: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 59
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x4020dda6: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40209e51: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x40100995: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 71
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40205ebf: loop_wrapper() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 198
0x40205ebf: loop_wrapper() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 198
0x402023d4: WiFiUDP::parsePacket() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 199
0x40203440: fauxmoESP::_handleUDP() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 70
0x40203321: fauxmoESP::addDevice(char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 461
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x401001b9: esp_schedule() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 125
0x40205ec5: loop_wrapper() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 199
ddweber456 commented 3 years ago

Interesting note: I just reconnected the ESP and it immediately after reboot started giving the stack dumps. I didn't capture the dumps but I'm sure I can reproduce it it helpful. When I unplugged the ECHO the dumps stopped.

pvint commented 3 years ago

When I unplugged the ECHO the dumps stopped.

Very strange, and interesting.

Also interesting that although the two crashes look different, they both are occurring right after [ASYNC_TCP] _recv[2]: 130, PBUF_FLAG_PUSH

I'll do some digging.

Thanks David

pvint commented 3 years ago

I'm a bit stumped right now - can you set, in fauxmoESP.h:

#define DEBUG_FAUXMO                Serial
#define DEBUG_FAUXMO_VERBOSE_TCP    true
#define DEBUG_FAUXMO_VERBOSE_UDP    true

and reproduce the crash again?

adbensi commented 3 years ago

If You like, You can use this library in attached.. that works for me.

Em dom., 6 de dez. de 2020 às 18:32, David Weber notifications@github.com escreveu:

Powered off and back on the ECHO. Loaded the sketch. Before I could ask Alexa to Discover, this happened:

connected with NachoLINK, channel 9 dhcp client start... ......ip:192.168.0.110,mask:255.255.255.0,gw:192.168.0.1

[WIFI] STATION Mode, SSID: NachoLINK, IP address: 192.168.0.110 [FAUXMO] Enabled [FAUXMO] UDP server started [FAUXMO] Device 'Aardvark' added as #0 [FAUXMO] UDP packet received M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" MX: 3 ST: urn:schemas-upnp-org:device:MediaServer:1

[FAUXMO] Responding to M-SEARCH request [FAUXMO] UDP response sent to 192.168.0.111:59000 HTTP/1.1 200 OK EXT: CACHE-CONTROL: max-age=100 LOCATION: http://192.168.0.110:80/description.xml SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0 hue-bridgeid: bcddc27ad48b ST: urn:schemas-upnp-org:device:basic:1 USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" MX: 3 ST: urn:schemas-upnp-org:device:MediaServer:1

[FAUXMO] Responding to M-SEARCH request [FAUXMO] UDP response sent to 192.168.0.111:59000 HTTP/1.1 200 OK EXT: CACHE-CONTROL: max-age=100 LOCATION: http://192.168.0.110:80/description.xml SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0 hue-bridgeid: bcddc27ad48b ST: urn:schemas-upnp-org:device:basic:1 USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" MX: 3 ST: urn:schemas-upnp-org:device:MediaServer:1

[FAUXMO] Responding to M-SEARCH request [FAUXMO] UDP response sent to 192.168.0.111:59000 HTTP/1.1 200 OK EXT: CACHE-CONTROL: max-age=100 LOCATION: http://192.168.0.110:80/description.xml SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0 hue-bridgeid: bcddc27ad48b ST: urn:schemas-upnp-org:device:basic:1 USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

pm open,type:2 0 000024.269 [ASYNC_TCP] _accept[1]: connected [FAUXMO] Client #0 connected 000024.271 [ASYNC_TCP] _recv[1]: 130, PBUF_FLAG_PUSH No poison after block at: 0x3fff05e4, actual data: 0x0 0xa5 0xa5 0xa5

User exception (panic/abort/assert) --------------- CUT HERE FOR EXCEPTION DECODER ---------------

Panic umm_malloc.cpp:458 umm_malloc_core

stack>>>

Decoding stack results 0x40100a63: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 460 0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73 0x40204aed: Print::printf(char const, ...) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Print.cpp line 66 0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552 0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73 0x40100ce3: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 160 0x401002f8: malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 232 0x40205e74: operator new[](unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\abi.cpp line 49 0x40204aed: Print::printf(char const, ...) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Print.cpp line 66 0x40204664: HardwareSerial::write(unsigned char const, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 165 0x40203074: std::_Function_handler ::_M_invoke(const std::_Any_data &, void , AsyncClient , void , unsigned int) at c:\users\david\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069 0x40202fd0: fauxmoESP::_onTCPData(AsyncClient, void, unsigned int) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 314 0x40203089: std::_Function_handler ::_M_invoke(const std::_Any_data &, void , AsyncClient , void , unsigned int) at c:\users\david\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073 0x40203f06: AsyncClient::_recv(std::shared_ptr &, tcp_pcb, pbuf, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 649 0x40100995: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 71 0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458 0x402040b2: AsyncClient::_s_recv(void, tcp_pcb, pbuf, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 738 0x4021365c: tcp_input at core/tcp_in.c line 501 0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552 0x40100290: millis() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 188 0x40219f98: mem_malloc at core/mem.c line 210 0x4021923e: ip4_input at core/ipv4/ip4.c line 1467 0x40100c67: umm_free(void) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398 0x40210209: ethernet_input_LWIP2 at netif/ethernet.c line 188 0x40210028: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 469 0x4023013e: ethernet_input at glue-esp/lwip-esp.c line 365 0x4023014f: ethernet_input at glue-esp/lwip-esp.c line 373 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x4020bb05: memcpy_P at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/sys/xtensa/string_pgmspace.c line 137 0x4020bb05: memcpy_P at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/sys/xtensa/string_pgmspace.c line 137 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x4020e3ef: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667 0x40206ddb: uart_tx_fifo_available(int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\uart.cpp line 463 0x4020fbe9: glue2esp_linkoutput at glue-esp/lwip-esp.c line 301 0x40206e0c: uart_do_write_char(int, char) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\uart.cpp line 476 0x40204658: HardwareSerial::write(unsigned char const, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 164 0x4020fe76: new_linkoutput at glue-lwip/lwip-git.c line 260 0x40210294: ethernet_output at netif/ethernet.c line 312 0x40100995: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 71 0x4021794c: etharp_output_to_arp_index at core/ipv4/etharp.c line 770 0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73 0x40217ba0: etharp_output_LWIP2 at core/ipv4/etharp.c line 885 0x4010076b: umm_free_core(void) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351 0x402194a0: ip4_output_if_opt_src at core/ipv4/ip4.c line 1764 0x40100c67: umm_free(void) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398 0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458 0x40219536: ip4_output_if_src at core/ipv4/ip4.c line 1590 0x4021a0a7: ip_chksum_pseudo at core/inet_chksum.c line 395 0x40100880: get_poisoned(void, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 117 0x40214558: udp_sendto_if_src at core/udp.c line 893 0x40100c67: umm_free(void) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398 0x4010076b: umm_free_core(void) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351 0x40100c67: umm_free(void) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398 0x40100c84: umm_poison_free_fl(void, char const, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 149 0x40100330: free(void) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259 0x402050f5: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140 0x40201e10: WiFiUDP::write(unsigned char const, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185 0x40205114: String::~String() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 125 0x40201e10: WiFiUDP::write(unsigned char const, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185 0x402035ec: fauxmoESP::_sendUDPResponse() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 66 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x40100187: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 173 0x401001b9: esp_schedule() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 125 0x402023d4: WiFiUDP::parsePacket() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 199 0x40203638: fauxmoESP::_handleUDP() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 70 0x402034c6: fauxmoESP::addDevice(char const) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 461 0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177 0x401001b9: esp_schedule() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 125 0x402060e1: loop_wrapper() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 199

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/vintlabs/fauxmoESP/issues/120#issuecomment-739567516, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCTHGAUGVAUBAWH2EFOJC3STPZ5NANCNFSM4TAIBSKA .

ddweber456 commented 3 years ago

I was looking at what I sent before and realized that was not correct. Here is the correct Serial log and Stack Dump:

connected with NachoLINK, channel 9
dhcp client start...
......ip:192.168.0.110,mask:255.255.255.0,gw:192.168.0.1

[WIFI] STATION Mode, SSID: NachoLINK, IP address: 192.168.0.110
[FAUXMO] Enabled
[FAUXMO] UDP server started
[FAUXMO] Device 'Aardvark' added as #0
pm open,type:2 0
[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: upnp:rootdevice
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50001
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: ssdp:all
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50001
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: upnp:rootdevice
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50001
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: ssdp:all
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50001
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: upnp:rootdevice
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50001
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: ssdp:all
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50000
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: upnp:rootdevice
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50000
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: ssdp:all
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50000
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: upnp:rootdevice
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50000
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: ssdp:all
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50000
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

000026.072 [ASYNC_TCP] _accept[1]: connected
[FAUXMO] Client #0 connected
000026.073 [ASYNC_TCP] _recv[1]: 99, PBUF_FLAG_PUSH
[FAUXMO] TCP request
GET /description.xml HTTP/1.1
Host: 192.168.0.110
Accept: */*
Content-Type: application/json

[FAUXMO] isGet: true
[FAUXMO] URL: /description.xml
[FAUXMO] Handling /description.xml request
[FAUXMO] Response:
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 765
Connection: close

<?xml version="1.0" ?><root xmlns="urn:schemas-upnp-org:device-1-0"><specVersion><major>1</major><minor>0</minor></specVersion><URLBase>http://192.168.0.110:80/</URLBase><device><deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType><friendlyName>Philips hue (192.168.0.110:80)</friendlyName><manufacturer>Royal Philips Electronics</manufacturer><manufacturerURL>http://www.philips.com</manufacturerURL><modelDescription>Philips hue Personal Wireless Lighting</modelDescription><modelName>Philips hue bridge 2012</modelName><modelNumber>929000226503</modelNumber><modelURL>http://www.meethue.com</modelURL><serialNumber>bcddc27ad48b</serialNumber><UDN>uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b</UDN><presentationURL>index.html</presentationURL></device></root>
000026.172 [ASYNC_TCP] _sent[1]:  848, unacked=   0, acked= 848, space=2920
000026.174 [ASYNC_TCP] _recv[1]: pb == NULL! Closing... 0
[FAUXMO] Client #0 disconnected
[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::upnp:rootdevice
CACHE-CONTROL: max-age=1800
NT: upnp:rootdevice
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96
CACHE-CONTROL: max-age=1800
NT: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::urn:dial-multiscreen-org:device:dial:1
CACHE-CONTROL: max-age=1800
NT: urn:dial-multiscreen-org:device:dial:1
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::urn:dial-multiscreen-org:service:dial:1
CACHE-CONTROL: max-age=1800
NT: urn:dial-multiscreen-org:service:dial:1
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::upnp:rootdevice
CACHE-CONTROL: max-age=1800
NT: upnp:rootdevice
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96
CACHE-CONTROL: max-age=1800
NT: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::urn:dial-multiscreen-org:device:dial:1
CACHE-CONTROL: max-age=1800
NT: urn:dial-multiscreen-org:device:dial:1
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::urn:dial-multiscreen-org:service:dial:1
CACHE-CONTROL: max-age=1800
NT: urn:dial-multiscreen-org:service:dial:1
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::upnp:rootdevice
CACHE-CONTROL: max-age=1800
NT: upnp:rootdevice
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96
CACHE-CONTROL: max-age=1800
NT: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::urn:dial-multiscreen-org:device:dial:1
CACHE-CONTROL: max-age=1800
NT: urn:dial-multiscreen-org:device:dial:1
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

[FAUXMO] UDP packet received
NOTIFY * HTTP/1.1
USN: uuid:66e372fc-8c74-3e87-a9eb-e0c666886d96::urn:dial-multiscreen-org:service:dial:1
CACHE-CONTROL: max-age=1800
NT: urn:dial-multiscreen-org:service:dial:1
HOST: 239.255.255.250:1900
LOCATION: http://192.168.0.109:60000/upnp/dev/66e372fc-8c74-3e87-a9eb-e0c666886d96/desc
SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0
NTS: ssdp:alive

000057.594 [ASYNC_TCP] _accept[2]: connected
[FAUXMO] Client #0 connected
000057.595 [ASYNC_TCP] _recv[2]: 130, PBUF_FLAG_PUSH
No poison after block at: 0x3fff05cc, actual data: 0x0 0xa5 0xa5 0xa5

User exception (panic/abort/assert)
--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Panic umm_malloc.cpp:458 umm_malloc_core

>>>stack>>>

Decoding stack results
0x40100a63: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 460
0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x40204aed: Print::printf(char const*, ...) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Print.cpp line 66
0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x40100ce3: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 160
0x401002f8: malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 232
0x40205e74: operator new[](unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\abi.cpp line 49
0x40204aed: Print::printf(char const*, ...) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Print.cpp line 66
0x40204664: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 165
0x40203074: std::_Function_handler ::_M_invoke(const std::_Any_data &, void *, AsyncClient *, void *, unsigned int) at c:\users\david\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069
0x40202fd0: fauxmoESP::_onTCPData(AsyncClient*, void*, unsigned int) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 314
0x40203089: std::_Function_handler ::_M_invoke(const std::_Any_data &, void *, AsyncClient *, void *, unsigned int) at c:\users\david\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x40203f06: AsyncClient::_recv(std::shared_ptr &, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 649
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x402040b2: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 738
0x4021365c: tcp_input at core/tcp_in.c line 501
0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100ce8: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 163
0x4021923e: ip4_input at core/ipv4/ip4.c line 1467
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40210209: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x40210028: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 469
0x4023013e: ethernet_input at glue-esp/lwip-esp.c line 365
0x4023014f: ethernet_input at glue-esp/lwip-esp.c line 373
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x4020e3ef: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667
0x40206de1: uart_tx_fifo_available(int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\uart.cpp line 463
0x4020fbe9: glue2esp_linkoutput at glue-esp/lwip-esp.c line 301
0x40206e0c: uart_do_write_char(int, char) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\uart.cpp line 476
0x40204658: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 164
0x4020fe76: new_linkoutput at glue-lwip/lwip-git.c line 260
0x40210294: ethernet_output at netif/ethernet.c line 312
0x40100995: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 71
0x4021794c: etharp_output_to_arp_index at core/ipv4/etharp.c line 770
0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x40217ba0: etharp_output_LWIP2 at core/ipv4/etharp.c line 885
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x402194a0: ip4_output_if_opt_src at core/ipv4/ip4.c line 1764
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x40219536: ip4_output_if_src at core/ipv4/ip4.c line 1590
0x4021a0a7: ip_chksum_pseudo at core/inet_chksum.c line 395
0x40100880: get_poisoned(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 117
0x40214558: udp_sendto_if_src at core/udp.c line 893
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40100c84: umm_poison_free_fl(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 149
0x40100330: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x402050f5: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140
0x40201e10: WiFiUDP::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185
0x40205114: String::~String() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 125
0x40201e10: WiFiUDP::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185
0x402035ec: fauxmoESP::_sendUDPResponse() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 66
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x4020faa1: operator delete(void*) at /workdir/repo/gcc/libstdc++-v3/libsupc++/del_op.cc line 48
0x40100880: get_poisoned(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 117
0x4010031c: realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 252
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x4020e177: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 520
0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x4020dfbe: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x4020dfbe: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x4020def4: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x4020a194: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 246
0x4020dfbe: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x4020e3ef: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667
0x40206dee: uart_tx_fifo_available(int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\uart.cpp line 464
0x40206e0c: uart_do_write_char(int, char) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\uart.cpp line 476
0x40204658: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/HardwareSerial.h line 164
0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x40100995: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 71
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40204aed: Print::printf(char const*, ...) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Print.cpp line 66
0x40100d69: umm_realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x40100330: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x4020faa1: operator delete(void*) at /workdir/repo/gcc/libstdc++-v3/libsupc++/del_op.cc line 48
0x40100880: get_poisoned(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 117
0x40100f81: umm_poison_realloc_fl(void*, size_t, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 140
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x4020237d: UdpContext::next() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src/include/UdpContext.h line 290
0x402023cb: WiFiUDP::parsePacket() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 197
0x4020769a: run_scheduled_functions() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266/PolledTimeout.h line 186
0x402060a5: __loop_end() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 184
0x402023d4: WiFiUDP::parsePacket() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 199
0x40203638: fauxmoESP::_handleUDP() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 70
0x402034c6: fauxmoESP::addDevice(char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 461
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x401001b9: esp_schedule() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 125
0x402060e1: loop_wrapper() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 199
ddweber456 commented 3 years ago

Doing a little bit more testing and got a different stack at a different location. Abort Called exception message but it may be at the same as before. Maybe some help?

[FAUXMO] UDP packet received
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: upnp:rootdevice
MAN: "ssdp:discover"
MX: 3

[FAUXMO] Responding to M-SEARCH request
[FAUXMO] UDP response sent to 192.168.0.114:50000
HTTP/1.1 200 OK
EXT:
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.0.110:80/description.xml
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.17.0
hue-bridgeid: bcddc27ad48b
ST: urn:schemas-upnp-org:device:basic:1
USN: uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b::upnp:rootdevice

000052.305 [ASYNC_TCP] _accept[1]: connected
[FAUXMO] Client #0 connected
000052.307 [ASYNC_TCP] _recv[1]: 99, PBUF_FLAG_PUSH
[FAUXMO] TCP request
GET /description.xml HTTP/1.1
Host: 192.168.0.110
Accept: */*
Content-Type: application/json

[FAUXMO] isGet: true
[FAUXMO] URL: /description.xml
[FAUXMO] Handling /description.xml request
[FAUXMO] Response:
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 765
Connection: close

<?xml version="1.0" ?><root xmlns="urn:schemas-upnp-org:device-1-0"><specVersion><major>1</major><minor>0</minor></specVersion><URLBase>http://192.168.0.110:80/</URLBase><device><deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType><friendlyName>Philips hue (192.168.0.110:80)</friendlyName><manufacturer>Royal Philips Electronics</manufacturer><manufacturerURL>http://www.philips.com</manufacturerURL><modelDescription>Philips hue Personal Wireless Lighting</modelDescription><modelName>Philips hue bridge 2012</modelName><modelNumber>929000226503</modelNumber><modelURL>http://www.meethue.com</modelURL><serialNumber>bcddc27ad48b</serialNumber><UDN>uuid:2f402f80-da50-11e1-9b23-bcddc27ad48b</UDN><presentationURL>index.html</presentationURL></device></root>
000052.405 [ASYNC_TCP] _sent[1]:  848, unacked=   0, acked= 848, space=2920
000052.407 [ASYNC_TCP] _recv[1]: pb == NULL! Closing... 0
[FAUXMO] Client #0 disconnected
000052.418 [ASYNC_TCP] _accept[2]: connected
[FAUXMO] Client #0 connected
000052.421 [ASYNC_TCP] _recv[2]: 130, PBUF_FLAG_PUSH
[FAUXMO] TCP request
POST /api HTTP/1.1
Host: 192.168.0.110
Accept: */*
Content-Type: application/json
Content-Length: 22

{"devicetype": "Echo"}
[FAUXMO] isGet: false
[FAUXMO] URL: /api
[FAUXMO] Body:
{"devicetype": "Echo"}
[FAUXMO] Handling devicetype request
[FAUXMO] Response:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 70
Connection: close

[{"success":{"username": "2WLEDHardQrI3WHYTHoMcXHgEspsM8ZZRpSKtBQr"}}]
No poison after block at: 0x3fff0344, actual data: 0x0 0xa5 0xa5 0xa5

User exception (panic/abort/assert)
--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Abort called

>>>stack>>>

Decoding stack results
0x40206528: __assert_func(char const*, int, char const*, char const*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_postmortem.cpp line 275
0x40100b92: get_unpoisoned_check_neighbors(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 125
0x40203054: fauxmoESP::_onTCPData(AsyncClient*, void*, unsigned int) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 348
0x40100c81: umm_poison_free_fl(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 148
0x40100330: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x40219fb8: mem_free at core/mem.c line 237
0x4021397a: pbuf_free_LWIP2 at core/pbuf.c line 786
0x40203f2a: AsyncClient::_recv(std::shared_ptr &, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 623
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x402040b2: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp line 738
0x4021365c: tcp_input at core/tcp_in.c line 501
0x40100cb4: umm_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100ce8: umm_poison_malloc(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 163
0x4021923e: ip4_input at core/ipv4/ip4.c line 1467
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40210209: ethernet_input_LWIP2 at netif/ethernet.c line 188
0x40210028: esp2glue_ethernet_input at glue-lwip/lwip-git.c line 469
0x4023013e: ethernet_input at glue-esp/lwip-esp.c line 365
0x4023014f: ethernet_input at glue-esp/lwip-esp.c line 373
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x4020dfbe: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x4020e3ef: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667
0x4020fbe9: glue2esp_linkoutput at glue-esp/lwip-esp.c line 301
0x4020fe76: new_linkoutput at glue-lwip/lwip-git.c line 260
0x40210294: ethernet_output at netif/ethernet.c line 312
0x40100995: check_poison_neighbors(uint16_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 71
0x4021794c: etharp_output_to_arp_index at core/ipv4/etharp.c line 770
0x4020b90d: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c line 73
0x40217ba0: etharp_output_LWIP2 at core/ipv4/etharp.c line 885
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x402194a0: ip4_output_if_opt_src at core/ipv4/ip4.c line 1764
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40100a51: umm_malloc_core(size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 458
0x40219536: ip4_output_if_src at core/ipv4/ip4.c line 1590
0x4021a0a7: ip_chksum_pseudo at core/inet_chksum.c line 395
0x40100880: get_poisoned(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 117
0x40214558: udp_sendto_if_src at core/udp.c line 893
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40100c84: umm_poison_free_fl(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 149
0x40100330: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x402050f5: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140
0x40201e10: WiFiUDP::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185
0x40205114: String::~String() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 125
0x40201e10: WiFiUDP::write(unsigned char const*, unsigned int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 185
0x402035ec: fauxmoESP::_sendUDPResponse() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 66
0x4020faa1: operator delete(void*) at /workdir/repo/gcc/libstdc++-v3/libsupc++/del_op.cc line 48
0x40100880: get_poisoned(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_poison.c line 117
0x40100f81: umm_poison_realloc_fl(void*, size_t, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 140
0x4010031c: realloc(void*, size_t) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 252
0x4010076b: umm_free_core(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40100c67: umm_free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40100c84: umm_poison_free_fl(void*, char const*, int) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc/umm_local.c line 149
0x40100330: free(void*) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\heap.cpp line 259
0x402050f5: String::invalidate() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 140
0x40205114: String::~String() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 125
0x402036ef: fauxmoESP::_handleUDP() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 86
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x402023d4: WiFiUDP::parsePacket() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 199
0x40203638: fauxmoESP::_handleUDP() at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 70
0x402034c6: fauxmoESP::addDevice(char const*) at C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master\src\fauxmoESP.cpp line 461
0x40100198: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x401001b9: esp_schedule() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 125
0x402060e1: loop_wrapper() at C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 199
kbssa commented 3 years ago

I can't get the esp32 discovered by alexa app. I am trying with fauxmoESP_Basic.

Is there any secret to make it work ?

ddweber456 commented 3 years ago

If You like, You can use this library in attached.. that works for me.

@adbensi The library you spoke of was not attached. If you have something workiing right now, I sure some people would be interested. thanks

Jorgen-VikingGod commented 3 years ago

Same here. Discover of esp32 did not work. Please share some working tipps with us 👍

pvint commented 3 years ago

I am not currently able to reproduce a fault using either ESP32 nor ESP8266.

If you're still having issues, please be sure to test with the latest master branch in git or the release 3.1.2-RC1. (The libraries in Arduino and PlatformIO are both out of date and I am working on getting them updated).

@ddweber456 : For your particular case, one thing that I have noticed is that it looks like you have a few devices broadcasting on SSDP (Example: SERVER: Linux/4.4.120 UPnP/1.0 Cling/2.0). Would you be able to quiet them down for a test? Obviously, if that is somehow causing an issue that needs to be addressed, but it might be some more info.

ddweber456 commented 3 years ago

I don't have a Linux server. I'm not a network guy, but isn't this packet normal SSDP, universal plug and play traffic? I see several HOST: 239.255.255.250:1900 generated packets from various SERVER: from time to time.

ddweber456 commented 3 years ago

I have removed all other ESPs from my LAN and I still can't get Alexa to discover. I will be happy to continue generating logs and stack dumps, whatever you need, when your ready for them. (I can't test the hard reset issue until Alexa starts doing discoveries correctly, I just don't have that knowledge base) thanks

thosoo commented 3 years ago

Linux Kernel 4.4.120 is quite old and speaks for a router or nas

pvint commented 3 years ago

@ddweber456 That's cool - offhand I don't know what it is either, but like @thosoo says, it sounds like a router or something. No biggie, just thought it was worth a shot to fish for more info. Appreciate the help (and the offer for more!)

I'll dig back into this in the morning.

Jorgen-VikingGod commented 3 years ago

Thx @pvint , I'll try master branch today. My issue was I used latest platformio lib... Hope my issues are solved by using master instead. I'll report later today 👍

thosoo commented 3 years ago

This packet might also be a FireTV stick. The example there looks quite the same. https://developer.amazon.com/docs/fire-tv/dial-integration.html

ddweber456 commented 3 years ago

Good find! Yes, I do have a couple fireTV sticks.

Update: 12-9-20 16:40GMT Thinking that the FireTV stick maybe a contributing factor to the discovery issue I turned off ALL Alexa controlling devices, FireTV, Echo Show, Fire Tablet.... Only device left running is the Echo Dot Gen 2. Stack dumps and reboots are still occuring with "User exception 'Abort called' stack dump" for the first dump and a "User exception 'Panic umm_malloc.cpp:458 umm_malloc_core' stack dump at PBUF_FLAG_PUSH and subsequent reboot. I'm sure I reproduce the stack dumps, just ask.

kbssa commented 3 years ago

Do I need an echo dot to have my esp discovered ?

I have tried everything that was suggested here but with no success on getting my esp discovered with the Alexa app.

ddweber456 commented 3 years ago

@pvint I may be WAY off base with this, but I noticed the following release notes for the Alexa Voice Service (AVS) Devise SDK https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/overview.html I don't know if or how Fauzmo and Philips Hue interact with this SDK, but these the release dates look very suspicious to me. I started having discovery issues in June. Just a thought? maybe not?

pvint commented 3 years ago

@ddweber456 That is interesting. We don't actually use the SDK, we're just emulating Philips Hue, but no doubt there is a connection in the version updates. (also, I found it interesting that there was an update yesterday - I actually saw one of my Dots doing something last night while I was on a call)

Could you do me a favour, David? Would you mind creating a new issue for the problem that you're having? It seems like a very specific case, and I think it would be better to deal with it separately.

ddweber456 commented 3 years ago

I take it you are still able to discover new devices OK?

pvint commented 3 years ago

Yes, I just did a fresh test with both an ESP32 and an ESP8266, and both worked fine.

@kbssa I just did it with my Alexa app on my android and it worked fine (I should disconnect all of my Echo devices and test again to be sure though)

ddweber456 commented 3 years ago

Before I open a new issue, let me know if you see anything wrong with the library versions I'm using. Sketch you gave the the other day.

Using library ESP8266WiFi at version 1.0 in folder: C:\Users\David\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi 
Using library fauxmoESP-master at version 3.1.1 in folder: C:\Users\David\Documents\Arduino\libraries\fauxmoESP-master 
Using library ESPAsyncTCP at version 1.2.2 in folder: C:\Users\David\Documents\Arduino\libraries\ESPAsyncTCP 

Fauxmo master as of 12-6

pvint commented 3 years ago

I'm using:

Using library ESP8266WiFi at version 1.0 in folder: /home/pvint/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi 
Using library ESPAsyncTCP at version 1.2.2 in folder: /home/pvint/Arduino/libraries/ESPAsyncTCP 

Looks good.

For reference, here's my Arduino settings: fauxmoESP-minimal | Arduino 1 8 13_109

ddweber456 commented 3 years ago

I have been using IwIP "v2 Higher Bandwidth", I switch to "v2 Lower Memory" No Success! Switch to IwIP "v1.4 Higher Bandwidth" Discovery SUCCESS! I'll do some more testing with different Echo Dots and the App and different sketches and post an update.

Update:: I was able to discover devices with Dot Gen2, Dot Gen3 and the Alexa app (screen add device only).
It appears to be as expected.

I'm assuming the use of IwIP v1.4 vs v2 depends on the flash memory chip? Maybe I just have an older version flash chip.

pvint commented 3 years ago

Good news!

Interestingly, I always needed "Higher Bandwidth" before (never seemed to matter if it was 1.4 or v2) - I must have been experimenting with something and set it to "lower memory".

kbssa commented 3 years ago

@pvint any news about needing of having an echo dot for get the esp discovered by Alexa app ?