Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Option to turn off LED inducators on ESP32 Heltec V3 #3635

Closed
punkpar opened this issue Apr 15, 2024 · 12 comments · Fixed by #3674
Closed

[Feature Request]: Option to turn off LED inducators on ESP32 Heltec V3 #3635

punkpar opened this issue Apr 15, 2024 · 12 comments · Fixed by #3674
Labels
enhancement New feature or request

Comments

@punkpar
Copy link

punkpar commented Apr 15, 2024

Platform

ESP32

Description

Please can we have an option in the Android app to turn off the blinking indicator LEDS when connected to USB power. It lights up the window and room at night in which the Heltec V3 is in.

@djoris
Copy link

djoris commented Apr 16, 2024

in my opinion, that would be a great option.
Preferably the user could choose to have the LED always off, always blink, or blink when there's an unread message.
I'm not exactly sure how the different LED indicators work on different boards. As I see it now, the bright white LED on many Heltec boards just blinks every wake cycle or so, while other boards also have a power on LED, a GNSS LED...?

@todd-herbert
Copy link
Contributor

I suppose one function of the blink is that it indicates the crucial OSThread system is still running happily; not bogged down with one big blocking task. I'm not sure whether this was the original intention.

It lights up the window and room at night in which the Heltec V3 is in.

I could certainly see the benefit in having a setting to disable the blink, for situations like this.

[it could] blink when there's an unread message.

This could be another useful option, certainly on boards with only the one LED. There is already support for an alert LED, through the External Notification module. It would actually be fairly straight-forward to allow repurposing of the blink LED for alerts through this module. This isn't as user friendly as a simple toggle switch in settings would be, but it would avoid the hurdle of getting a new setting added, so it might make a good back-up option?

@garthvh
Copy link
Member

garthvh commented Apr 16, 2024

Problem is that we generally only control one or two of the up to 4 led's.

@todd-herbert
Copy link
Contributor

Going to have to implement at an even lower hardware level:
covering LED with tape

@Sniffleupagus
Copy link

I implemented this last week as a user configuration option, and stalled on "now how do I check this in since it depends on a change to protobuf, and that seems kind of major..." I was imagining "dark hours" to not blink during certain (or all. or none if you're into that sort of thing) hours, instead of just a. boolean, but so far I only implemented the boolean.

Is the hurdle of adding a config option a big one? And how would one go about such a thing?

@todd-herbert
Copy link
Contributor

todd-herbert commented Apr 17, 2024

Is the hurdle of adding a config option a big one? And how would one go about such a thing?

From a technical standpoint:

  • the protobufs are defined in https://github.com/meshtastic/protobufs/, that would be the place where a pull-request would need to be made.
  • a good example commit showing a new setting added to the protobufs might be meshtastic/protobufs@6ae27a2
  • what I have done previously for testing:
    • locally clone the git repos for firmware, protobufs and the python cli
    • make your changes in the protobufs repo
    • in both the firmware and python repo, change the protobufs submodule to point at your local protobufs repo
    • in both the firmware and python repo, use the scripts in the bin folder to rebuild their protobufs code. From memory the python script needed some tweaking (have been told that the python repo is a bit broken)
    • flash your device with the now updated protobufs code
    • use the python cli to test out changing your device's user config
  • I assume that wider changes (apps, web-ui etc.) require manual intervention. See this Andoird App commit and its matching protobuf code: meshtastic/Meshtastic-Android@4f29e7a, config.proto L187

From a decision making standpoint:

  • my impression is that changes to user settings are more carefully considered, and that currently the general desire is to simplify user settings rather than add to them, though I do believe that new settings are still an option if the case is very strong.

@AssetBurned
Copy link

Coming from yet another perspective… being able to switch off LEDs would also have a positive impact on battery life. Every little counts sometimes.

ndoo added a commit to ndoo/meshtastic-firmware that referenced this issue Apr 20, 2024
Fixes meshtastic#3635 and depends on [protobufs PR meshtastic#485](meshtastic/protobufs#485)

Signed-off-by: Andrew Yong <me@ndoo.sg>
@garthvh
Copy link
Member

garthvh commented Apr 20, 2024

Coming from yet another perspective… being able to switch off LEDs would also have a positive impact on battery life. Every little counts sometimes.

This is not going to have any appreciable battery life impact, and will not enable dark mode, all I see this doing is causing confusion

ndoo added a commit to ndoo/meshtastic-firmware that referenced this issue Apr 20, 2024
Fixes meshtastic#3635 and depends on [protobufs PR meshtastic#485](meshtastic/protobufs#485)

Signed-off-by: Andrew Yong <me@ndoo.sg>
@todd-herbert
Copy link
Contributor

todd-herbert commented Apr 20, 2024

While the power savings would be negligible, it certainly sounds there's a demand for this behavior as a customisation option.

@ndoo
Copy link
Contributor

ndoo commented Apr 20, 2024

Hi, I raised a draft PR to allow users to turn the LED off. #3674

Right now, the only option for those of us who have nodes we can see from our beds, or run a solar node and want the power saving, is to desolder/remove the status LED.

Also, for products like RAK4361 on RAK19007, the solar panel is connected to the battery charging IC, resulting in a 1Hz on-off cycle for the status LED to indicate charging, which does consume more power than the regular 1ms flash.

@thebentern
Copy link
Contributor

I don't see this as useful for power savings, but I do appreciate being able to turn off the Heltec white LED 😆

ndoo added a commit to ndoo/meshtastic-firmware that referenced this issue Apr 20, 2024
Fixes meshtastic#3635 and depends on [protobufs PR meshtastic#485](meshtastic/protobufs#485)

Signed-off-by: Andrew Yong <me@ndoo.sg>
thebentern added a commit that referenced this issue Apr 22, 2024
* Add ability to turn off status LED blinking

Fixes #3635 and depends on [protobufs PR #485](meshtastic/protobufs#485)

Signed-off-by: Andrew Yong <me@ndoo.sg>

* led_heartbeat_disabled

* trunk

---------

Signed-off-by: Andrew Yong <me@ndoo.sg>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
@chichimus
Copy link

An app setting ti go dark would be great. In the meantime have a look at this thread. I updated my firmware and got the very bright flashing LED. #4063

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants