Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1) #7

Open
fanlessfan opened this issue Feb 9, 2021 · 9 comments

Comments

@fanlessfan
Copy link

Hello,

the ULPSound is fantastic. But I got error "Guru Meditation Error: Core 1 panic'ed" when I try the stereo sound for a minute or two. the Mono example is perfect. I tried to change the sound for Mono. it's perfect when it's short and got the same error if it's long.

Could you give some advice ?

thx

@fanlessfan
Copy link
Author

after around 30 seconds it keep rebooting. I have to press the reset button to have it work for anther 30s. Please see the serial logs bellow.

thx

11:26:24.080 -> ets Jun 8 2016 00:22:57
11:26:24.080 ->
11:26:24.080 -> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
11:26:24.080 -> configsip: 0, SPIWP:0xee
11:26:24.080 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
11:26:24.080 -> mode:DIO, clock div:1
11:26:24.080 -> load:0x3fff0018,len:4
11:26:24.080 -> load:0x3fff001c,len:1216
11:26:24.080 -> ho 0 tail 12 room 4
11:26:24.080 -> load:0x40078000,len:10944
11:26:24.080 -> load:0x40080400,len:6388
11:26:24.080 -> entry 0x400806b4
11:26:24.408 -> 1006
11:26:24.408 -> Total stereo samples :Buffer length: 0.023
11:26:24.455 -> Real RTC clock: 8704610
11:26:48.671 -> Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1)
11:26:48.671 -> Core 1 register dump:
11:26:48.671 -> PC : 0x4000c271 PS : 0x00060034 A0 : 0x800869f4 A1 : 0x3ffb36c0
11:26:48.671 -> A2 : 0x3ffb2068 A3 : 0x3f4f2530 A4 : 0x00000014 A5 : 0x3ffbef90
11:26:48.671 -> A6 : 0x3ffbefd8 A7 : 0x00000001 A8 : 0x00000001 A9 : 0x3f4f2531
11:26:48.671 -> A10 : 0x000000a5 A11 : 0x00000000 A12 : 0x80087583 A13 : 0x3ffbef60
11:26:48.671 -> A14 : 0x00000008 A15 : 0x00000001 SAR : 0x00000014 EXCCAUSE: 0x00000006
11:26:48.706 -> EXCVADDR: 0x00000000 LBEG : 0x400d0fe2 LEND : 0x400d0fe7 LCOUNT : 0x00000000
11:26:48.706 ->
11:26:48.706 -> ELF file SHA256: 0000000000000000
11:26:48.706 ->
11:26:48.706 -> Backtrace: 0x4000c271:0x3ffb36c0 0x400869f1:0x3ffb36e0 0x40088368:0x3ffb3700 0x4008831e:0x3ff000e0
11:26:48.706 ->
11:26:48.706 -> Core 0 register dump:
11:26:48.706 -> PC : 0x400ea31a PS : 0x00060f34 A0 : 0x800e093e A1 : 0x3ffbc0c0
11:26:48.706 -> A2 : 0x00000000 A3 : 0x00000001 A4 : 0x00000000 A5 : 0x00000001
11:26:48.706 -> A6 : 0x00060120 A7 : 0x00000000 A8 : 0x800e0446 A9 : 0x3ffbc090
11:26:48.752 -> A10 : 0x00000000 A11 : 0x40083ee8 A12 : 0x00060120 A13 : 0x3ffbb820
11:26:48.752 -> A14 : 0x3ffc005c A15 : 0x3ffc0060 SAR : 0x00000000 EXCCAUSE: 0x00000006
11:26:48.752 -> EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
11:26:48.752 ->
11:26:48.752 -> ELF file SHA256: 0000000000000000
11:26:48.752 ->
11:26:48.752 -> Backtrace: 0x400ea31a:0x3ffbc0c0 0x400e093b:0x3ffbc0e0 0x40087572:0x3ffbc100 0x400860dd:0x3ffbc120
11:26:48.752 ->
11:26:48.752 -> Rebooting...
11:26:48.799 -> ets Jun 8 2016 00:22:57
11:26:48.799 ->
11:26:48.799 -> rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
11:26:48.799 -> configsip: 0, SPIWP:0xee
11:26:48.799 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
11:26:48.799 -> mode:DIO, clock div:1
11:26:48.799 -> load:0x3fff0018,len:4
11:26:48.799 -> load:0x3fff001c,len:1216
11:26:48.799 -> ho 0 tail 12 room 4
11:26:48.799 -> load:0x40078000,len:10944
11:26:48.799 -> load:0x40080400,len:6388
11:26:48.799 -> entry 0x400806b4
11:26:49.174 -> 1006
11:26:49.174 -> Total stereo samples :Buffer length: 0.023
11:26:49.268 -> Guru Meditation Error: Core 1 panic'ed (IntegerDivideByZero). Exception was unhandled.
11:26:49.268 -> Core 1 register dump:
11:26:49.268 -> PC : 0x4000d099 PS : 0x00060430 A0 : 0x800d0da7 A1 : 0x3ffb3730
11:26:49.268 -> A2 : 0x00000000 A3 : 0x00007a12 A4 : 0x00000000 A5 : 0x00000000
11:26:49.268 -> A6 : 0x00000001 A7 : 0x3ffb0060 A8 : 0x00000001 A9 : 0x00007a12
11:26:49.268 -> A10 : 0x00000000 A11 : 0x00000000 A12 : 0x00000000 A13 : 0x00004e1f
11:26:49.268 -> A14 : 0x00000000 A15 : 0x3ffb8440 SAR : 0x00000010 EXCCAUSE: 0x00000006
11:26:49.268 -> EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
11:26:49.268 ->
11:26:49.268 -> ELF file SHA256: 0000000000000000
11:26:49.268 ->
11:26:49.268 -> Backtrace: 0x4000d099:0x3ffb3730 0x400d0da4:0x3ffb3750 0x400d1057:0x3ffb37c0 0x400860dd:0x3ffb37e0
11:26:49.268 ->
11:26:49.268 -> Rebooting...

@Martin-Laclaustra
Copy link
Collaborator

I integrated this code in ESP8266Audio. You might try that.
earlephilhower/ESP8266Audio#340

@fanlessfan
Copy link
Author

Thank you @Martin-Laclaustra. Could you point me which sample is using the ULP sound? https://github.com/earlephilhower/ESP8266Audio/tree/master/examples

@Martin-Laclaustra
Copy link
Collaborator

These are the generic instructions:

//Instructions:
AudioOutputULP out = new AudioOutputULP(); // stereo
//Connect left channel on pin 25
//Connect right channel on pin 26
//OR
//Connect mono channel on either of them (stereo samples are downmixed)
AudioOutputULP out = new AudioOutputULP(1); // mono, only DAC 1
//OR
AudioOutputULP out = new AudioOutputULP(2); // mono, only DAC 2

Just pick any example, include the AudioOutputULP.h file and replace the output object.

I would recommend starting with: PlayWAVFromPROGMEM.ino

Replace line 10 with #include "AudioOutputULP.h"

Then replace line 17 as follows:
AudioOutputULP *out;
and line 28:
out = new AudioOutputULP();

@fanlessfan
Copy link
Author

Thank you @Martin-Laclaustra. I successfully run your talkingClock with AudioOutputULP, but it keep rebooting again if I use timer to call the sound every minute. Do you think ULP works with timer call?

thx

@Martin-Laclaustra
Copy link
Collaborator

It seems that you are trying to run too many instructions within the timer interrupt.
Use the timer only to modify a system-wide flag. Check that flag in the main loop and act accordingly to its status.

@fanlessfan
Copy link
Author

Thanks @Martin-Laclaustra. do you think what is the best way to implement talkingClock to let it speak every hour or any pre-configured interval if we can't use timer to call the saytime() function. I am currently use timer call every minute to update the clock handles in a VGA monitor.

@Martin-Laclaustra
Copy link
Collaborator

Use CronAlarms, which runs by pooling in the main loop (without interrupts).
You can set several Alarms (so you can have one for every minute to update the display and one for every hour to say the time). Check the issues section to find tips on how to operate it with the SDK NTP system.
Isn't a VGA monitor permanently on overkill for a clock project? Are you using ESP32Lib? (In the later case, use the development branch, and include ESP32Video.h instead of the whole ESP32Lib.h because you will be controlling the sound with a different library)

@fanlessfan
Copy link
Author

Thank you @Martin-Laclaustra for the suggestion. Yes I use ESP32Lib and have remove the audio part from it. only include ESP32Video.h is very good suggestion. I just want to re-use a dust-covered monitor so far. not sure if it's permanent on or not ;-o)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants