These are chat archives for Makuna/NeoPixelBus

20th
Dec 2018
Benik3
@Benik3
Dec 20 2018 00:00
I got new message (the BaudRates are really pain :D )
'''
Fatal exception (0):
epc1=0x40100003, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x0
0000000
'''
Yes, the previous was sent on 115200, this one on 74880
and it hang here, even WD doesn't reset now
Michael Miller
@Makuna
Dec 20 2018 00:03
The Watchdog exception is a pain. To diagnose it the code has to be peppered with debug Serial.write() to see where it is looping for ever and not letting the core work.
Benik3
@Benik3
Dec 20 2018 00:09
yeah, what I tried few SW with ESP I always righted with WD resets :D
*fought
Michael Miller
@Makuna
Dec 20 2018 00:12

try changing the ino around the show with this...

    Serial.print("S");
Serial.flush();
    strip.Show();
    Serial.println("s");
    Serial.flush();

And capture the output. If the watchdog fires and no small s, then the problem is in the show.

Benik3
@Benik3
Dec 20 2018 00:20
I added it to first 4 .Show.
The first is OK (after .begin), second also works even with small s but then it freeze (so the strip light red)
Michael Miller
@Makuna
Dec 20 2018 00:27
BTW, if you look in the monitor window of the Arduino IDE (that lower window), you will find a line that includes the location of the map file of the sketch, like....
C:\Users\<you>\AppData\Local\Temp\arduino_build_139940/
Open the map file in a text editor, you can look for the address from the exception, 0x40100003, this will point at the code that caused the exception.
Benik3
@Benik3
Dec 20 2018 00:34
Hmm I don't see in the map file any addres starting 0x401....
There is 0x3ff and then it jumps to 0x402
ok, it was after 0x402 :D
I don't know if it changed how I tried the debug output. Anyway I went back in the code and this is on the place in map file:
.text           0x40100000     0x6c0c
                0x40100000                _stext = .
                0x40100000                _text_start = ABSOLUTE (.)
 *(.UserEnter.text)
 .UserEnter.text
                0x40100000        0xd C:\Users\benik\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2/tools/sdk/lib\libmain.a(vector.o)
                                 0x14 (size before relaxing)
                0x40100004                call_user_start
                0x40100010                . = ALIGN (0x10)
 *fill*         0x4010000d        0x3
Benik3
@Benik3
Dec 20 2018 01:17
Here I made a test file with data for 110LED strip. It should show RGB pixels when sent to the ESP. It's like the Prismatik output.
I tried to send it with RealTerm, if you send it few times in a row, it should freeze and reset ESP.
I have 2:15 hour in the morning, so I go to bed. If you want some other information from me, I will be here again today/tomorrow :)
Thank you for your effort!
Michael Miller
@Makuna
Dec 20 2018 18:45
@Benik3 Ok, figured out what is the problem. AsyncUart can't be used if other serial receiving is required. This is due to the uart ISR can't be shared today, so my AsycUart will register for the ISR and thus mess with Serial object.
Benik3
@Benik3
Dec 20 2018 22:35
Great. But why this restriction now? It works OK with 2.4.2
Michael Miller
@Makuna
Dec 20 2018 22:44
they added some hardware support for receiving data, which now relies on the interrupt.
There was an old pull to fix the int sharing, but it is to far out of date, I was going to look at re-implementing it for them.