lmarzen / esp32-weather-epd

A low-power E-Paper weather display powered by an ESP32 microcontroller. Utilizes the OpenWeatherMap API.
GNU General Public License v3.0
2.49k stars 196 forks source link

Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. #51

Closed Ianszh closed 1 year ago

Ianszh commented 1 year ago

Hello and thanks for the cool project.

After solving a USB Serial problem I managed to compile and upload the code. But I now have another problem, it get's into a reboot loop because of this error

Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled

Here's the complete output

ELF file SHA256: dee408f393c3a310

Rebooting...

ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13232 load:0x40080400,len:3028 entry 0x400805e4 Battery voltage: 4.14 Connecting to '***'......................................... IP: 192.168.0.44 Saturday, September 23, 2023 15:13:34 Attempting HTTP Request: api.openweathermap.org/data/2.5/onecall?lat=47.4222&lon=8.3639&lang=en&units=standard&exclude=minutely&appid={API key} 200 OK Attempting HTTP Request: api.openweathermap.org/data/2.5/air_pollution/history?lat=47.&lon=8.&start=1695388418&end=1695474817&appid={API key} 200 OK Reading from BME280... Success Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. Memory dump at 0x40176c2c: 00004136 00004136 1d004136 Core 1 register dump: PC : 0x40176c32 PS : 0x00060f30 A0 : 0x800db446 A1 : 0x3ffd8a80
A2 : 0x3ffc4188 A3 : 0x020036d1 A4 : 0x3ffd8acc A5 : 0x00000000
A6 : 0x3ffd8a7c A7 : 0x3ffc5820 A8 : 0x3f44ace8 A9 : 0x3ffd8a40
A10 : 0x00000003 A11 : 0x401775e8 A12 : 0x00000045 A13 : 0x0000015c
A14 : 0x3ffd8a78 A15 : 0x3ffd8a7a SAR : 0x00000010 EXCCAUSE: 0x00000000
EXCVADDR: 0x00000000 LBEG : 0x4008bc75 LEND : 0x4008bc85 LCOUNT : 0xffffffff

Backtrace: 0x40176c2f:0x3ffd8a80 0x400db443:0x3ffd8aa0 0x400d99a1:0x3ffd8b40 0x400e72de:0x3ffd8d20

Thanks

(PS I didn't put the output as code as it looks quite messy)

lmarzen commented 1 year ago

What epaper panel are you using?

Ianszh commented 1 year ago

Found the problem the "C" was missing in #define EUROPE_CAQI

But, my screen is not showing anything, I've gone over the screen connections a few times and I'm sure they're correct?

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13232 load:0x40080400,len:3028 entry 0x400805e4 Battery voltage: 4.17 Connecting to '**'........................................ IP: 192.168.0.44 Saturday, September 23, 2023 16:17:28 Attempting HTTP Request: api.openweathermap.org/data/2.5/onecall?lat=47.4222&lon=8.3639&lang=en&units=standard&exclude=minutely&appid={API key} 200 OK Attempting HTTP Request: api.openweathermap.org/data/2.5/air_pollution/history?lat=47.&lon=8.&start=1695392251&end=1695478650&appid={API key} 200 OK Reading from BME280... Success _PowerOn : 22 _Update_Full : 14 _PowerOff : 2 _PowerOff : 2 Awake for 10.113s Deep-sleep for 756s

Ianszh commented 1 year ago

What epaper panel are you using?

a Waveshare 7.5-inch HD e-paper (B). Just noticed it's a 880×528

lmarzen commented 1 year ago

Hmmm, the output looks promising. Are you using the default pinout from config.cpp?

Ianszh commented 1 year ago

Hmmm, the output looks promising. Are you using the default pinout from config.cpp?

I did pinouts per the wiring_diagram.png which looks the same

lmarzen commented 1 year ago

Maybe a recent change is causing issues for that panel.

Try the following. Go to renderer.cpp and find the function initDisplay()

You will see the following lines...

  // display.fillScreen(GxEPD_WHITE);
  display.setFullWindow();
  display.firstPage();

Change this to

  display.fillScreen(GxEPD_WHITE);
  display.setFullWindow();
  // display.firstPage();
Ianszh commented 1 year ago

Still the same I'm afraid.

Does GxEPD2 support this panel? Should I change the height in renderer.h to 528?

`

ifdef DISP_3C_B

define DISP_WIDTH 800

define DISP_HEIGHT 480

include

extern GxEPD2_3C<GxEPD2_750c_Z08, GxEPD2_750c_Z08::HEIGHT / 2> display; `

lmarzen commented 1 year ago

Do you have the 800×480 or 880×528 version. this project only has support for the 800x480 version

Ianszh commented 1 year ago

Unfortunately the 880x528 Discontinued version 😢

https://www.waveshare.com/7.5inch-hd-e-paper-b.htm

lmarzen commented 1 year ago

I think GxEPD2 supports that panel so it's possible to add support for this project however there is no scaling support for the display so only part of the display would be occupied.

Ianszh commented 1 year ago

Ok thanks, looks like I'll have to get a 800x480 version and do something else with this one.

One other question or I could start another issue. How about an option for a 2nd BME280, local outside temp etc. data sent via a MQTT broker?

lmarzen commented 1 year ago

I am not opposed to that feature, however I do not have the time to develop that right now.

Ianszh commented 1 year ago

Ok thanks, if you ever do have time, would be interesting