Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

MeshTracker_X1 shutdown current ~10.8mA — powerOff() skips shutdownPeripherals()

Đang mở Phù hợp với người mới
#3,567 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
74/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
c
Lĩnh vực
embedded-iot

Hướng nghiên cứu

Bắt đầu với variants/meshtracker_x1/MeshTrackerX1Board.h và lần theo MeshTrackerX1Board::powerOff() cùng với NRF52Board::powerOff() và shutdownPeripherals(). Xác nhận chuỗi tắt hiện có của LR2021 và GPS, sau đó build môi trường MeshTracker_X1_companion_radio_ble và kiểm tra rằng khi tắt nguồn, thiết bị đạt trạng thái system off sau khi đã thực hiện peripheral shutdown.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Summary:
On MeshTracker_X1_companion_radio_ble(companion-v1.17.1), entering powerOff() (long-press user button or CLI poweroff) leaves the board drawing ~10.81 mA

Root cause:
MeshTrackerX1Board::powerOff() overrides the base implementation but never calls NRF52Board::powerOff() / shutdownPeripherals()

Reproduction
Build env:MeshTracker_X1_companion_radio_ble, flash to X1.
Boot, wait >8 s (past the CLI-rescue window).
Long-press USER (P0.6) ≥3 s, release.
Measure system current on the supply rail: observe ~10.8 mA persisting after the LED/sd_power_system_off() sequence.

Suggested fix:
In variants/meshtracker_x1/MeshTrackerX1Board.h, replace the trailing sd_power_system_off(); with: delegate to NRF52Board::powerOff() so shutdownPeripherals() runs (LR2021 reset + sleep(), GPS stop) before SYSTEMOFF.

void powerOff() override {
    #ifdef HAS_GPS
        digitalWrite(GPS_VRTC_EN, LOW);
        digitalWrite(GPS_RESET, LOW);
        digitalWrite(GPS_SLEEP_INT, LOW);
        digitalWrite(GPS_RTC_INT, LOW);
        digitalWrite(GPS_EN, LOW);
    #endif

    #ifdef PIN_DRV_EN
        digitalWrite(PIN_DRV_EN, LOW);
    #endif

    #ifdef PIN_BAT_ADC_EN
        digitalWrite(PIN_BAT_ADC_EN, LOW);
    #endif

    #ifdef PIN_3V3_EN
        digitalWrite(PIN_3V3_EN, LOW);
    #endif

    // set led on and wait for button release before poweroff
    #ifdef LED_PIN
    digitalWrite(LED_PIN, HIGH);
    #endif
    #ifdef BUTTON_PIN
    while(digitalRead(BUTTON_PIN));
    #endif
    #ifdef LED_PIN
    digitalWrite(LED_PIN, LOW);
    #endif

    #ifdef BUTTON_PIN
    nrf_gpio_cfg_sense_input(BUTTON_PIN, NRF_GPIO_PIN_PULLDOWN, NRF_GPIO_PIN_SENSE_HIGH);
    #endif

    NRF52Board::powerOff();
  }
Ngôn ngữ chính
C
Star
3.9k
Fork
1.5k
Merge trung bình
19 giờ 9 phút
Pull request đã merge (30 ngày)
27

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của meshcore-dev/MeshCore

Tất cả issue của meshcore-dev/MeshCore

Issue tương tự

Thêm issue về C

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.