Skip to content

Repository files navigation

T-Impulse-Plus V2.0

English | Chinese

Current baseline

This repository currently targets the T-Impulse-Plus V2 hardware debug baseline. The nRF52840 remains the MCU, but the V2 pin map, peripheral ownership, power-up sequence, and LoRa/I2C resource handoff are different from the original V1 examples.

The integrated v2_bringup example is the tested reference for the V2 initialization order. The other v2_* examples are focused diagnostics that initialize only the hardware under test. A successful serial log does not replace external measurements of power rails, battery voltage, RF output, or GNSS power.

Baseline Status Scope
V2 hardware debug examples Current 16 focused or integrated PlatformIO environments

Product information

Product MCU Flash RAM Purchase link
T-Impulse-Plus V2 nRF52840 1 MB 256 KB N/A

Contents

Overview

T-Impulse-Plus V2 is a low-power wristband based on the nRF52840. The board includes an OLED display, SX1262 LoRa radio, MIA-M10Q GNSS module, ICM20948 inertial sensor, QSPI Flash, TTP223 touch input, SGM41562 power-management IC, and an RT9080-controlled 3.3 V rail.

The V2 examples use English serial logs at 115200 baud. The v2_bringup sketch keeps the original integrated-test behavior and naming where required, but uses the V2 hardware definition and the V2 resource-ownership rules.

Preview

T-Impulse-Plus board T-Impulse-Plus board detail

Power consumption comparison

Compared with the V1 hardware, the V2 power path uses a DC-DC converter for the 3.3 V rail. Under the same operating state, measurement conditions, and test method, the V2 hardware reduces power consumption by approximately half compared with V1. Actual results depend on battery voltage, load, operating mode, USB connection, and measurement point; the two reports below show the current comparison and contain the V1 and V2 power measurements.

V1 power consumption report (PDF)     V2 power consumption report (PDF)

Hardware modules

MCU

Display

  • Type: SSD1315-compatible OLED
  • Resolution: 128 x 64
  • Bus: screen I2C on Wire1
  • Address: 0x3C
  • Pins: SDA=P1.06, SCL=P1.04
  • Libraries: Adafruit_GFX and Adafruit_SSD1306
  • SSD1315 documentation

LoRa

The S62F uses AcSiP RF switch control mode A. RF_VC1 and RF_VC2 are direct MCU control signals. DIO2 is a separate SX1262 signal and must not be used as a replacement for the RF switch controls. The V2 RF switch truth table is RF_VC1/RF_VC2 = LOW/HIGH for receive and HIGH/LOW for transmit.

The module uses a 3.0 V TCXO setting and the SX1262 DC-DC regulator mode. These settings are part of the V2 examples and must match at both ends of a LoRa test.

GNSS

  • Module: MIA-M10Q
  • Bus: UART, 38400 8N1
  • Module TX net: P0.02
  • Module RX net: P1.15
  • GNSS power control: GPS_EN=P0.24
  • MIA-M10Q documentation

GPS_EN is active low in the current examples: HIGH keeps the GNSS power control disabled and the UART test drives it LOW before receiving data. GPS_1PPS is only a legacy alias for P0.24; the V2 board does not define an independent PPS input on this net.

IMU

  • Chip: ICM20948
  • Bus: main I2C
  • Address: 0x69
  • Pins: SDA=P1.08, SCL=P0.11
  • Interrupt: P0.07
  • ICM20948 documentation

QSPI Flash

  • Compatible JEDEC IDs include ZD25WQ32C (BA 60 16) and ZD25Q32D (BA 40 16)
  • Bus: QSPI
  • CS=P0.12, SCLK=P0.04, IO0=P0.06, IO1=P1.09, IO2=P0.08, IO3=P0.26
  • Library: Adafruit_SPIFlash
  • Record the JEDEC ID and capacity from v2_flash_test; no separate Flash PDF is included in this repository.

Touch input

  • Chip: TTP223
  • Q output: P0.15
  • The V2 focused test treats this as an input and applies software debounce. Keep the key confirmation macro disabled until the assembled board is independently checked.
  • TTP223 documentation

Power and battery

  • Charger/power-management IC: SGM41562
  • SGM41562 address: 0x03
  • SGM41562 main-I2C pins: SDA=P1.08, SCL=P0.11
  • 3.3 V rail enable: RT9080_EN=P0.19
  • Battery-divider switch control: P0.17
  • Battery ADC: P0.05
  • SGM41562 documentation

V2 hardware pin map

The authoritative software definitions are in libraries/private_library/pin_config.h. The schematic is available at project/T-Impulse%20Plus.pdf.

Function V2 pin or setting Notes
Screen I2C SDA=P1.06, SCL=P1.04 Wire1, address 0x3C, 128 x 64
Main I2C SDA=P1.08, SCL=P0.11 SCL is shared with SX1262 DIO1
SX1262 CS P0.29
SX1262 reset P0.03
SX1262 SCLK P1.14 NRF_SPIM3
SX1262 MOSI P0.28
SX1262 MISO P0.30
SX1262 BUSY P1.12
SX1262 DIO1 P0.11 Shared physical net with main-I2C SCL
SX1262 DIO2 P0.31
SX1262 RF_VC1 P1.13 RF switch control
SX1262 RF_VC2 P1.10 RF switch control
Flash CS P0.12 QSPI
Flash SCLK P0.04 QSPI
Flash IO0 P0.06 QSPI
Flash IO1 P1.09 QSPI
Flash IO2 P0.08 QSPI
Flash IO3 P0.26 QSPI
GNSS module TX net P0.02 Used as the module TX side of Serial2
GNSS module RX net P1.15 Used as the module RX side of Serial2
GPS_EN P0.24 GPS_1PPS is only a legacy alias
ICM20948 interrupt P0.07
TTP223 Q P0.15
Vibration motor P0.22 Active-high pulse output
RT9080 enable P0.19
Battery control / ADC P0.17 / P0.05 P0.17 switches the divider

Shared-net restriction

P0.11 is physically both main-I2C SCL and SX1262 DIO1. Main I2C and LoRa cannot safely operate in parallel on this board. A LoRa-focused example must call Wire.end(), release P1.08 and P0.11, and then start the radio SPI bus. When the radio window ends, the radio callback, SPI peripheral, and radio pins are released before main I2C is restored.

LoRa parameters

Use identical parameters on the transmitter and receiver:

Parameter V2 value
Frequency 868.0 MHz
Bandwidth 125 kHz
Spreading factor SF10
Coding rate 4/6
Sync word 0xAB
Output power 22 dBm
Preamble 15 symbols
CRC Disabled
TCXO 3.0 V
Regulator DC-DC

V2 examples

Every current example directory contains its own README.md with serial procedure, expected behavior, and failure diagnosis.

Example Purpose
v2_battery_test 16-sample battery-divider ADC statistics for each P0.17 LOW/HIGH state
v2_ble_test nRF52840 internal BLE Nordic UART Service test
v2_bringup Tested integrated V2 startup-order and board diagnostic reference
v2_flash_test Read-only QSPI Flash JEDEC ID and capacity test
v2_gnss_pps_test GPS_EN/P0.24 control-net test; no independent PPS measurement
v2_gnss_uart_test 38400-baud GNSS UART and TinyGPSPlus NMEA test
v2_icm20948_test ICM20948 accelerometer, gyroscope, and magnetometer test
v2_lora_receive Standalone fixed-parameter SX1262 receive example
v2_lora_transmit Standalone fixed-parameter SX1262 transmitter; sends every five seconds
v2_lora_external_antenna_transmit SX1262 antenna-switch test with P1.07 HIGH selecting the internal LoRa antenna
v2_main_i2c_test Main-I2C line state, address scan, and error statistics
v2_motor_test Bounded 50 ms, 100 ms, and 150 ms motor pulses
v2_original_test V1-compatible integrated menu and V2 peripheral regression test
v2_screen_test Screen I2C line, address, and 128 x 64 display test
v2_sgm41562_test SGM41562 device ID, configuration, fault, and status test
v2_ttp223_test TTP223 P0.15 baseline and debounced input test

The v2_original_test LoRa window is receive-only. Use v2_lora_transmit with v2_lora_receive or v2_lora_test on another board to verify a two-device RF link.

Setup and flashing

PlatformIO

The repository includes the custom LilyGo T-Impulse Plus nRF52840 board definition and registers one PlatformIO environment for each V2 example. Use an explicit environment name so the selected example is mapped to its matching examples/ directory:

pio run -e v2_bringup
pio run -e v2_bringup -t upload
pio device monitor -e v2_bringup -b 115200

Replace v2_bringup with any name in the V2 examples table. The helper script tools/platformio_select_example.py prevents the default source directory from silently replacing the selected environment.

Install Visual Studio Code and the PlatformIO IDE extension, open this repository as the project folder, and select the included LilyGo T-Impulse Plus nRF52840 board. If the local board or framework setup needs repair, run the repository setup script:

python "tool/win10 vscode platformio start/t_impulse_plus_setup.py"

The repository also includes static V2 contract checks. They inspect source and configuration only:

powershell -NoProfile -ExecutionPolicy Bypass -File .\tools\tests\verify_v2_hardware_config.ps1

Arduino IDE

  1. Install Arduino IDE and the Adafruit nRF52 board package.
  2. Run tool/win10 arduino ide start/t_impulse_plus_arduino_setup.py to install the T-Impulse-Plus board variant and the required compiler library flags.
  3. Open an .ino file inside the selected examples/v2_* directory.
  4. Select LilyGo T-Impulse Plus nRF52840 and the correct USB port.
  5. Use a serial monitor at 115200 baud.
  6. To enter bootloader download mode, press and release RST, wait one second, then press and release RST again. A new USB drive indicates bootloader mode.

J-Link

The J-Link/SWD wiring image is image/12.jpg. Use nRF Connect for Desktop Programmer with the bootloader and firmware assets only when a prebuilt image is specifically required. The V2 examples are normally built and uploaded through PlatformIO or Arduino IDE.

Recommended validation order

  1. Run v2_bringup first to confirm the tested integrated startup markers.
  2. Run v2_power_test and measure VDD3V3 externally.
  3. Run v2_screen_test and confirm the 0x3C display result.
  4. Run v2_flash_test and record JEDEC ID and capacity.
  5. Run v2_main_i2c_test, v2_sgm41562_test, and v2_icm20948_test.
  6. Run v2_battery_test and compare the calculated voltage with a multimeter.
  7. Run v2_motor_test and v2_ttp223_test separately.
  8. Run v2_gnss_uart_test, then v2_gnss_pps_test for GPS_EN control levels.
  9. Run v2_ble_test.
  10. Run v2_lora_receive or v2_lora_test, then run v2_lora_transmit on a separate board with matching parameters.
  11. Run v2_original_test for the integrated menu and resource-handoff regression.

LoRa transmit and receive test

Flash v2_lora_receive to one board and v2_lora_transmit to another board. Start the receiver first. Both boards must use the parameters in the LoRa parameters table. The transmitter sends an ASCII test payload every five seconds and checks TX_DONE through SPI because DIO1 is on the shared P0.11 net. The receiver reports the packet source, bytes, RSSI, SNR, and frequency error.

Use an antenna, a suitable 50 ohm load, or an RF test fixture. Never connect a transmitter output directly to a receiver input. Do not run a main-I2C example in parallel with a standalone LoRa example on the same board.

FAQ

Why is there no serial output?

Please enable the "DTR" option in your serial assistant software.

Open the monitor at 115200 before resetting or reconnecting USB. Check USB CDC, VBUS, MCU power, reset, and the selected PlatformIO environment. The focused examples bound their USB wait; a late monitor connection can still miss the first startup lines.

Why does direct USB programming fail?

Press and release RST, wait one second, and press and release RST again. When the new USB drive appears, select the correct port and upload again.

Battery Life Estimation

Calculate battery life given the device's average current consumption and battery capacity. Below are examples of battery life calculation for batteries with different energy capacities: Example 1: Average current consumption of the device: 20uA Battery capacity: 220mAh (standard CR2032 coin cell battery) Battery life: 0.22Ah/0.00002A=11000hours=458days

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages