Skip to content

Fix RAK4631 hang when I2C WisBlock modules are present#2380

Draft
benders wants to merge 1 commit intomeshcore-dev:devfrom
benders:rak4631-oled
Draft

Fix RAK4631 hang when I2C WisBlock modules are present#2380
benders wants to merge 1 commit intomeshcore-dev:devfrom
benders:rak4631-oled

Conversation

@benders
Copy link
Copy Markdown

@benders benders commented Apr 23, 2026

This change fixes a problem where the RAK4631 will hang on startup when I2C based WisBlock modules are present. These can be sensors or the RAK OLED display.

WB_IO2 controls the 3V3_S switched peripheral rail on RAK base boards. gpsIsAwake() left the pin as INPUT on failure, dropping the power rail. Then, when the I2C devices were probed, they couldn't respond and so the boot process hung. This fixes that by making the power rail code match that on the RAK3401, and making sure to restore it after GPS probing, re-init the display before UI start, and disable the 3V3_S rail on shutdown.

Fixes #1874
Refs #2222 and #2215

WB_IO2 controls the 3V3_S switched peripheral rail on RAK base boards.
gpsIsAwake() left the pin as INPUT on failure, dropping the rail and
resetting the SSD1306 display. Centralize rail control via PIN_3V3_EN,
restore it after GPS probing, re-init the display before UI start, and
disable the rail on shutdown.

Fixes meshcore-dev#1874
Refs meshcore-dev#2222

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant