Skip to content

Add Lilygo T-Impulse-Plus - #10497

Merged
thebentern merged 27 commits into
masterfrom
t-impulse-plus
May 27, 2026
Merged

Add Lilygo T-Impulse-Plus#10497
thebentern merged 27 commits into
masterfrom
t-impulse-plus

Conversation

@vidplace7

@vidplace7 vidplace7 commented May 18, 2026

Copy link
Copy Markdown
Member

Adds support for Lilygo T-Impulse-Plus.

PXL_20260518_183446244.jpg

Changes Made

  • New board definition: boards/t-impulse-plus.json
  • New variant: variants/nrf52840/t-impulse-plus/ (variant.h, variant.cpp, platformio.ini)
  • Added custom_meshtastic_* metadata to variants/nrf52840/t-impulse-plus/platformio.ini so the variant is correctly picked up by the CI build matrix and device manifest generator (bin/platformio-custom.py):
    • custom_meshtastic_hw_model = 135
    • custom_meshtastic_hw_model_slug = T_IMPULSE_PLUS
    • custom_meshtastic_architecture = nrf52840
    • custom_meshtastic_actively_supported = true
    • custom_meshtastic_support_level = 1
    • custom_meshtastic_display_name = LILYGO T-Impulse Plus
    • custom_meshtastic_tags = LilyGo
    • custom_meshtastic_requires_dfu = true
    • board_level = pr
  • HW_VENDOR mapping added to src/platform/nrf52/architecture.h

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 / Known Issues

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

Dependencies

🤝 Attestations

  • I have tested that my proposed changes behave as described.
  • I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other: Lilygo T-Impulse-Plus nRF52840

@vidplace7
vidplace7 requested a review from HarukiToreda May 18, 2026 18:36
@github-actions github-actions Bot added needs-review Needs human review hardware-support Hardware related: new devices or modules, problems specific to hardware labels May 18, 2026
@vidplace7
vidplace7 requested a review from caveman99 May 18, 2026 20:02
@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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 thread variants/nrf52840/t-impulse-plus/platformio.ini
Comment thread src/platform/nrf52/architecture.h
@vidplace7 vidplace7 removed the needs-review Needs human review label May 20, 2026
Copilot AI requested a review from thebentern May 27, 2026 20:33
@thebentern
thebentern merged commit cb867cc into master May 27, 2026
84 checks passed
@vidplace7
vidplace7 deleted the t-impulse-plus branch May 27, 2026 21:44
Evil8it pushed a commit to Evil8it/ME4TACTNK that referenced this pull request Jun 10, 2026
* Add Lilygo T-Impulse-Plus

* Enable small screen layout 64x32

* trunk'd

* Haptic Feedback (short and long press)

* enable Charging Indicator

* enable nrfutil uploads

* trunk fmt

* Add Lilygo T-Impulse-Plus

* Enable small screen layout 64x32

* trunk'd

* Haptic Feedback (short and long press)

* enable Charging Indicator

* enable nrfutil uploads

* trunk fmt

* enable proper device model

* Dim the haptic duration a bit.

* Fix GPS pins and speed. Module enable is active low, speed is 38400

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* set correct geometry.

* Add custom_meshtastic_* metadata to t-impulse-plus platformio.ini

---------

Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
thebentern added a commit that referenced this pull request Jun 25, 2026
Forward-port: Add Lilygo T-Impulse-Plus (#10497) to develop
NomDeTom pushed a commit to NomDeTom/MeshtasticFirmware that referenced this pull request Jun 25, 2026
* Add Lilygo T-Impulse-Plus

* Enable small screen layout 64x32

* trunk'd

* Haptic Feedback (short and long press)

* enable Charging Indicator

* enable nrfutil uploads

* trunk fmt

* Add Lilygo T-Impulse-Plus

* Enable small screen layout 64x32

* trunk'd

* Haptic Feedback (short and long press)

* enable Charging Indicator

* enable nrfutil uploads

* trunk fmt

* enable proper device model

* Dim the haptic duration a bit.

* Fix GPS pins and speed. Module enable is active low, speed is 38400

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* set correct geometry.

* Add custom_meshtastic_* metadata to t-impulse-plus platformio.ini

---------

Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
(cherry picked from commit cb867cc)
@caveman99 caveman99 mentioned this pull request Jul 8, 2026
@lyusupov

lyusupov commented Jul 28, 2026

Copy link
Copy Markdown

It was reported by LilyGO R&D department that SGM41562 driver needs an update to match current revision(s) of the IC supplied with the T-Impulse Plus device

The chip ID and registers of the old version of the SGM41562 are incompatible with the new version of the SGM41562. If you use the old version of the SGM41562 library, it will report an error. I only recently updated the SGM41562 library – you can take a look here:
SGM41562xx changes

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.

6 participants