Skip to content

Add RGB LED and haptic notifications for SenseCAP MeshTracker X1 - #3122

Merged
ripplebiz merged 2 commits into
meshcore-dev:devfrom
Hacuchino-hash:x1-notifications
Aug 7, 2026
Merged

Add RGB LED and haptic notifications for SenseCAP MeshTracker X1#3122
ripplebiz merged 2 commits into
meshcore-dev:devfrom
Hacuchino-hash:x1-notifications

Conversation

@Hacuchino-hash

Copy link
Copy Markdown

Summary

Follow-up to #3112, adding notification and sensor support for the SenseCAP MeshTracker X1's remaining onboard hardware.

RGB status LED (the X1 has a discrete RGB LED on P0.03/P0.24/P0.28):

  • Color-coded status blinks with the same stock duty cycle: green heartbeat, blue when a phone is connected over BLE, amber when messages are waiting, red when battery is low
  • A short rainbow sweep on boot and on message arrival
  • Implemented in ui-orig behind PIN_STATUS_LED_R/G/B defines, so boards with a single status LED keep the stock code path (verified by building t1000e_companion_radio_ble)

DRV2605 haptics (LRA motor behind the DRV2605 on I2C):

  • New DRV2605Vibration helper with the same interface as GenericVibration, using the register config and effect that Meshtastic ships for this same chip
  • Vibrates on incoming messages, and fires whether or not the app is connected (the buzzer keeps its stock disconnected-only behavior)
  • Triple-press now cycles four alert modes: Buzz+Vibe, Buzz only, Vibe only, Silent. Each mode confirms by tone and/or vibration since the X1 has no screen, and both flags persist (buzz_q, new vibe_q pref)

SPA06-003 barometer:

  • Temperature and pressure reported through TELEM_PERM_ENVIRONMENT telemetry, using the same library and settings as Meshtastic (8x oversampling, 1 Hz continuous so reads never block)

Charge status on the LED:

  • While docked: amber breathing during charge, dim green when the charger signals done. The charger asserts both status pins at full charge, so the done pin (P1.04) takes priority, and both open-drain status lines get internal pullups
  • Message indications always outrank the charge display

Testing

All verified on real hardware (X1 + phone app + other MeshCore nodes):

  • Status colors and both flourishes behave as described, and messaging/BLE are unaffected
  • Vibration fires on messages while connected and disconnected, honoring mode and a 5 s cooldown
  • Alert mode cycling persists across reboots
  • Barometer readings appear in telemetry alongside GPS
  • Charge LED transitions amber to green at charge termination, and the battery reads 4.40 V at the charger's CV point (high voltage cell)
  • All four X1 envs build clean, plus t1000e_companion_radio_ble as a regression check for the shared ui-orig changes

@ripplebiz

Copy link
Copy Markdown
Member

Thanks for this.

@ripplebiz
ripplebiz merged commit 47154f0 into meshcore-dev:dev Aug 7, 2026
15 checks passed
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