smart-swimmingpool / pool-controller

🏊 Smart Swimming Pool 2.0 - ESP8266 based Controller managing your swimming pool
https://smart-swimmingpool.com/
MIT License
18 stars 7 forks source link

Wemos D1 mini Pro crashes in debug mode because of watchdog reset #14

Open breezer15 opened 3 years ago

breezer15 commented 3 years ago

Hi,

I wanted to run the pool controller on a "Wemos D1 mini Pro".

Unfortunately the ESP always crashed (WDT reset), see in the log.

The code is only executable when I change "build_type = debug" to "build_type = release" in the platformio.ini.

Is it possible that the code is too slow in debug mode or that the serial interface is too slow and the watchdog is triggered as a result?

Many greetings

log:

11:29:27.817 > ✖ /homie/config.json doesn't exist

11:29:27.817 > Configuration invalid. Using CONFIG MODE

11:29:27.817 > 💡 Firmware pool-controller (2.0.0)

11:29:27.817 > 🔌 Booting into config mode 🔌

11:29:27.817 > Device ID is f4cfa2d0904a

11:29:27.817 > AP started as smart-swimmingpool-f4cfa2d0904a with IP 192.168.123.1

11:29:27.817 > 1227 [DEBUG]: void setup(): ngpool-f4cfa2d0904a
11:29:27.817 > Free heap: 31080

11:29:27.817 > Triggering Wi-Fi scan...

11:29:35.377 > 

11:29:35.378 >  ets Jan  8 2013,rst cause:4, boot mode:(3,7)

11:29:35.378 > 

11:29:35.378 > wdt reset

11:29:35.378 > load 0x4010f000, len 3656, room 16 

11:29:35.384 > tail 8

11:29:35.385 > chksum 0x0c

11:29:35.385 > csum 0x0c

11:29:35.385 > v9c56ed1f

11:29:35.385 > ~ld
11:29:35.456 > 72 [DEBUG]: void setup(): Before Homie setup())
11:29:36.547 > ✖ /homie/config.json doesn't exist

11:29:36.548 > Configuration invalid. Using CONFIG MODE

11:29:36.625 > 💡 Firmware pool-controller (2.0.0)

11:29:36.626 > 🔌 Booting into config mode 🔌

11:29:36.626 > Device ID is f4cfa2d0904a

11:29:36.626 > AP started as smart-swimmingpool-f4cfa2d0904a with IP 192.168.123.1

11:29:36.626 > 1228 [DEBUG]: void setup(): ngpool-f4cfa2d0904a
11:29:36.626 > Free heap: 31080

11:29:36.626 > Triggering Wi-Fi scan...

11:29:44.999 > 

11:29:44.999 >  ets Jan  8 2013,rst cause:4, boot mode:(3,7)

11:29:44.999 > 

11:29:44.999 > wdt reset

11:29:44.999 > load 0x4010f000, len 3656, room 16 

11:29:45.006 > tail 8

11:29:45.006 > chksum 0x0c

11:29:45.006 > csum 0x0c

11:29:45.006 > v9c56ed1f

11:29:45.006 > ~ld

platformio.ini:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[platformio]
;default_envs = esp32dev
;default_envs = nodemcuv2
default_envs = d1_mini_pro

[common]
; build_flags = -g -DDEBUG_PORT=Serial
;Add the PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY build flag to ensure reliable OTA updates.
build_flags = -D PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY

; serial_speed = 74880
serial_speed = 115200

; You MUST inject these options into [env:] section
; using ${common_env_data.***} (see below)
[common_env_data]
lib_deps =
    DallasTemperature
    Wire
    paulstoffregen/OneWire
    Adafruit Unified Sensor
    DHT sensor library
    RelayModule
    NTPClient @ 3.1.0
    TimeZone @ 1.2.4
    ArduinoJson @ 6.18.0
    me-no-dev/ESP Async WebServer
    thomasfredericks/Bounce2
    marvinroger/AsyncMqttClient
    Homie
    ; git+https://github.com/xoseperez/Time.git
    ; git+https://github.com/homieiot/homie-esp8266.git#develop
    ;../homie-esp8266

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
build_flags = -D SERIAL_SPEED=${common.serial_speed}
build_unflags = -Werror=reorder
lib_deps = ${common_env_data.lib_deps}
monitor_speed = ${common.serial_speed}

; Monitor filters: https://docs.platformio.org/en/latest/core/userguide/device/cmd_monitor.html#filters
monitor_filters = esp32_exception_decoder, log2file, time, default

upload_speed = 230400
;upload_protocol = esptool
;upload_port = 192.168.178.23
;upload_flags =
;  --timeout=20
;  --port=3232
;   --auth=st25277472

; Unit Testing options
test_ignore = test_desktop

[env:nodemcuv2]
platform = espressif8266 @ 2.5.0
board = nodemcuv2
framework = arduino
build_type = debug
build_flags = -D SERIAL_SPEED=${common.serial_speed}
lib_deps = ${common_env_data.lib_deps}
monitor_speed = ${common.serial_speed}

; Monitor filters: https://docs.platformio.org/en/latest/core/userguide/device/cmd_monitor.html#filters
monitor_filters = esp8266_exception_decoder, log2file, time, default

upload_speed = 230400
test_ignore = test_desktop

[env:d1_mini_pro]
platform = espressif8266 @ 2.5.0
board = d1_mini_pro
board_build.filesystem = SPIFFS
board_build.ldscript = eagle.flash.8m7m.ld
framework = arduino
build_type = debug
build_flags = -D SERIAL_SPEED=${common.serial_speed}
lib_deps = ${common_env_data.lib_deps}
monitor_speed = ${common.serial_speed}

; Monitor filters: https://docs.platformio.org/en/latest/core/userguide/device/cmd_monitor.html#filters
monitor_filters = esp8266_exception_decoder, log2file, time, default

upload_speed = 115200
stritti commented 3 years ago

Hm, probably the memory of D1 is too small. The release version is smaller than debug version.