Skip to content

Improve reset robustness for sensitive RAK Hotspot V2 / RAK7248 carriers#62

Merged
KMX415 merged 1 commit into
KMX415:feat/v0.7.6from
aggiebill:improve-rak7248-reset-robustness
Jun 1, 2026
Merged

Improve reset robustness for sensitive RAK Hotspot V2 / RAK7248 carriers#62
KMX415 merged 1 commit into
KMX415:feat/v0.7.6from
aggiebill:improve-rak7248-reset-robustness

Conversation

@aggiebill
Copy link
Copy Markdown

@aggiebill aggiebill commented May 31, 2026

Summary

Some RAK7248-based carriers (especially enclosed Helium Hotspot V2 units) are more sensitive to reset timing than standard RAK Pi HATs. The combination of the systemd ExecStartPre reset + the early Python wrapper.reset() call can leave the SX1302 in a bad state (chip version 0x00 / 0x05, STANDBY_RC failures), even though a single well-timed reset immediately before lgw_start() succeeds reliably.

Changes

  • Add CONCENTRATOR_RESET_HOLD_SEC environment variable to control the hold time used by the Python-side reset (defaults to the existing 0.1s behavior).
  • Add CONCENTRATOR_LATE_RESET=1 to skip the early reset and perform it right before lgw_start() instead.
  • Fix the missing + prefix on the reset ExecStartPre / ExecStopPost lines in meshpoint.service (so they correctly run as root).
  • Add documentation for these RAK Hotspot V2 / RAK7248-specific issues in TROUBLESHOOTING.md and HARDWARE-MATRIX.md.

Testing

These changes were developed and verified on a real RAK7248 + RAK2287 carrier where the stock reset path was unreliable, but a fresh reset with longer hold time right before the HAL call worked consistently.

Closes issues where users on repurposed RAK Hotspot V2 boards see repeated concentrator initialization failures despite correct wiring and power cycling.

  • Add CONCENTRATOR_RESET_HOLD_SEC env var to control Python-side reset hold time (default 0.1s preserved)
  • Add CONCENTRATOR_LATE_RESET=1 to perform the reset immediately before lgw_start() instead of early in startup
  • Fix missing '+' prefix on reset ExecStartPre/ExecStopPost in meshpoint.service
  • Document RAK Hotspot V2 specific reset timing and SPI overlay gotchas in TROUBLESHOOTING.md and HARDWARE-MATRIX.md

This addresses real-world issues seen on RAK7248 + RAK2287 carriers where the stock reset sequence + early Python reset could leave the chip in a bad state (0x00/0x05), while a fresh, well-timed reset right before the HAL call succeeds reliably.

Summary

What does this PR change?

Why

Why is this needed?

Type

  • Bug fix
  • Feature
  • Docs
  • Refactor
  • UI
  • Installer
  • Region support
  • Hardware change

Testing

How tested?

  • Local only
  • Tested on hardware
  • Dashboard tested
  • Docs only
  • UI only

Hardware:

  • Pi:
  • Concentrator:
  • Node/radio:
  • Region:
  • OS:

Impact

Does this affect:

  • Parsing
  • Relay
  • TX
  • Radio driver
  • Region logic
  • UI only
  • Installer only

Notes:

AI-assisted?

  • No
  • Yes

If yes, how:

- Add CONCENTRATOR_RESET_HOLD_SEC env var to control Python-side reset hold time (default 0.1s preserved)
- Add CONCENTRATOR_LATE_RESET=1 to perform the reset immediately before lgw_start() instead of early in startup
- Fix missing '+' prefix on reset ExecStartPre/ExecStopPost in meshpoint.service
- Document RAK Hotspot V2 specific reset timing and SPI overlay gotchas in TROUBLESHOOTING.md and HARDWARE-MATRIX.md

This addresses real-world issues seen on RAK7248 + RAK2287 carriers where the stock reset sequence + early Python reset could leave the chip in a bad state (0x00/0x05), while a fresh, well-timed reset right before the HAL call succeeds reliably.
@KMX415 KMX415 force-pushed the improve-rak7248-reset-robustness branch from 114556b to 1bab948 Compare June 1, 2026 02:27
@KMX415 KMX415 changed the base branch from main to feat/v0.7.6 June 1, 2026 02:27
@KMX415 KMX415 merged commit 7c29afb into KMX415:feat/v0.7.6 Jun 1, 2026
@KMX415
Copy link
Copy Markdown
Owner

KMX415 commented Jun 1, 2026

Rebased onto f eat/v0.7.6 and merged. Default behavior unchanged; the systemd + on reset scripts is a nice catch. We still want a quick RAK V2 regression on our bench before this rides main in the v0.7.6 release. Thanks for the hardware-validated work.

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.

2 participants