Skip to content

Add Lilygo T-Impulse-Plus#10497

Open
vidplace7 wants to merge 26 commits into
masterfrom
t-impulse-plus
Open

Add Lilygo T-Impulse-Plus#10497
vidplace7 wants to merge 26 commits into
masterfrom
t-impulse-plus

Conversation

@vidplace7
Copy link
Copy Markdown
Member

@vidplace7 vidplace7 commented May 18, 2026

Adds support for Lilygo T-Impulse-Plus.

PXL_20260518_183446244.jpg

Working:

  • Display
  • Vibration Motor (acts as a notification LED for now)
  • Front touch sensor (acts as button)
  • Battery reading
  • LoRa
  • Vibrate upon screen-touch (haptic feedback) - thanks @caveman99 🍻
  • GPS - thanks @caveman99 📡
  • IMU (accelerometer)

Not working:

  • UI is oversized, even with OLED_TINY changes. This will need some special consideration @HarukiToreda

Depends on:

@caveman99 caveman99 marked this pull request as ready for review May 19, 2026 05:19
@thebentern thebentern requested a review from Copilot May 19, 2026 10:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for the LilyGo T-Impulse-Plus (nRF52840) wristband: SSD1315 OLED, SX1262 LoRa, MIA-M10Q GPS, TTP223 touch button, vibration motor used as notification/haptic feedback, and the SGM41562 I²C charger for input-power/charge-status reporting. Also introduces a small reusable HapticFeedback driver and an SGM41562 charger driver that AnalogBatteryLevel consults for isVbusIn()/isCharging().

Changes:

  • New nRF52840 variant (variants/nrf52840/t-impulse-plus/) plus its boards/t-impulse-plus.json, with a new HW_VENDOR mapping in src/platform/nrf52/architecture.h.
  • New src/power/SGM41562.{h,cpp} charger driver, wired into src/Power.cpp behind HAS_SGM41562.
  • New src/input/HapticFeedback.{h,cpp} with InputBroker integration that emits a short pulse on touch press and an armed long-press pulse on BACK fire.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
variants/nrf52840/t-impulse-plus/variant.h Pin map, capabilities (display, GPS, SX1262, IMU, charger, haptic), I²C/SPI/QSPI wiring.
variants/nrf52840/t-impulse-plus/variant.cpp g_ADigitalPinMap and initVariant() (QSPI CS high, battery sense enable, RT9080 LDO enable).
variants/nrf52840/t-impulse-plus/platformio.ini New PlatformIO env extending nrf52840_base. Missing the customary custom_meshtastic_* metadata used elsewhere.
boards/t-impulse-plus.json PlatformIO board definition. variant field and missing variants_dir need attention.
src/platform/nrf52/architecture.h Maps the T_IMPULSE_PLUS build flag to HardwareModel_T_IMPULSE_PLUS.
src/power/SGM41562.{h,cpp} I²C driver for the SGM41562 buck charger with cached refresh and ship-mode/charge-enable control.
src/Power.cpp Calls initSGM41562 in Power::setup() and consults the charger for isVbusIn/isCharging.
src/input/HapticFeedback.{h,cpp} Non-blocking GPIO motor pulser using OSThread, with delayed pulse arm/cancel.
src/input/InputBroker.cpp Hooks the haptic driver into the touch button (press pulse + armed long-press pulse).

Comment thread boards/t-impulse-plus.json Outdated
Comment on lines +1 to +9
[env:t-impulse-plus]
extends = nrf52840_base
board = t-impulse-plus

build_flags = ${nrf52840_base.build_flags}
-I variants/nrf52840/t-impulse-plus
-D T_IMPULSE_PLUS

build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/t-impulse-plus>
Comment thread src/platform/nrf52/architecture.h
@vidplace7 vidplace7 removed the needs-review Needs human review label May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hardware-support Hardware related: new devices or modules, problems specific to hardware

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants