Skip to content

Gracefully fail when I2C device not present in u8g2_esp32_hal init #1197

Open
@amaschas

Description

@amaschas

I'm using u8g2_esp32_hal to interface with an I2C OLED device, and whenever the OLED screen is not connected the program aborts, causing a restart. The reason this happens is because ESP_ERROR_CHECK macros are used in several places, which simply abort the thread if they fail. I'm wondering if instead of using ESP_ERROR_CHECK, the relevant functions could print a message and return an error code that users could handle themselves.

Alternatively, maybe provide a function that can test the I2C connection without aborting?

This line is the one that generally causes the abort for me:

ESP_ERROR_CHECK(i2c_master_cmd_begin(I2C_MASTER_NUM, handle_i2c, I2C_TIMEOUT_MS / portTICK_RATE_MS));

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