Skip to content

ESP8266 might crash in S8_UART::serial_read_bytes if sensor not connected #4

@EricDuminil

Description

@EricDuminil

In https://github.com/jcomas/S8_UART/blob/main/examples/co2/co2.cpp, if Senseair S8 isn't connected, the example code is supposed to display Serial.println("SenseAir S8 CO2 sensor not found!");.

On a ESP8266, it often doesn't. The microcontroller crashes instead, because the while loop in S8_UART::serial_read_bytes blocks during 5 seconds, and the watchdog resets the ESP.

Adding a short delay (e.g. delay(50)) in the loop, before end_t = millis(); seems to fix the problem.

Other than that, the library seems to work well, on both ESP32 and ESP8266.
On ESP8266, I replaced SoftwareSerial with https://github.com/CrazyRobMiles/Esp8266EdgeSoftwareSerial, which uses much less memory.
Thanks for the good work!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions