Skip to content

Feature Request / Bug: Re-add support for RAK12039 (PMSA003I) Air Quality Sensor + Boot Loop fix #2253

@localwind

Description

@localwind

Hardware Setup:

  • MCU: WisBlock RAK4631
  • Base: RAK19007
  • Sensor: RAK12039 (PMSA003I Dust / Air Quality Sensor)

Description of the problem:
I am trying to build an environmental node using the MeshCore firmware (Companion/Sensor roles). However, connecting the RAK12039 sensor causes the board to instantly crash and enter an infinite boot loop (only the red charge LED stays on).

The exact same hardware setup works perfectly on the official upstream Meshtastic firmware.

Root Cause Analysis:
After reviewing the MeshCore source code (specifically src/helpers/sensors/EnvironmentSensorManager.cpp), it appears that the initialization logic for the PMSA003I and the entire AirQualityTelemetry module has been completely removed in MeshCore compared to the upstream Meshtastic code.

Important Note for Implementation:
If you decide to re-add support for this sensor, please be aware of a known hardware quirk that causes the boot loop: the PMSA003I requires a strict delay(4000); right after powering on and before calling PMSA003I.begin(). This allows its internal internal fan/motor to spin up. Without this 4-second delay, the sudden current draw crashes the I2C bus and sends the nRF52 into a Kernel Panic during the boot sequence.

Would it be possible to bring back the Air Quality module and add this startup delay so we can use dust sensors in the MeshCore network?

Thank you for your great work on this firmware!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions