Important note if you are powering nodes with solar/external batteries

Hi ya’ll,

So starting with the 1.1 series of releases the firmware is smarter about power management. And part of that is that it assumes that if it has power coming in via the USB port it doesn’t need to sleep. This is really useful for most users because if they hook up external power the bluetooth stays always connected (or they can connect to the deivce over USB). But if you are trying to run a remote node for a long period of time on battery you do not want this.

So…

If you are running a remote node that is battery/solar powered you’ll want one of the following to options:

  • “meshtastic --set-router” tells node to be power conscious and to only power up the screen/BLE if the user presses a button. Eventually will also imply that “this node has good line of sight and should be heavily weighted when routing”. This is the option you should probably use.

  • “meshtastic --set is_low_power true”. This option means “work like a regular node, with the normal sleep/wake pattern but even though you see power coming in on USB don’t constantly stay awake”. You probably don’t want this option but it is useful for some edge cases (‘solar powered node that still talks bluetooth to the app etc…’).

btw: Soonish (I just added this to my task queue) I’ll supplement the nice user manual ya’ll have been making with details on these optional / more geeky parameters.

12 Likes

will I be able to upload new firmware over the app and set one of these options? as in my case I’ll be hiking to my node and would prefer not to have to access the usb port with a laptop.

THANK YOU THIS IS VERY COOL!

The next version of the app will have this for ble it’s update (it is still in alpha test until testers bless).

awesome! actually I have the beta, I see ability to upgrade over bluetooth (AWESOME) but how can I set the router mode?

Oh good point. This build (1.1.5 is not yet bundled into the app, once blessed I’ll bundle it). I think @lgx is working on a feature so you can set options like this, but for now you’ll need to use a laptop sorry.

1 Like

I will accelerate the dev for the router options, this week I promise

5 Likes

Is there a way to set the battery powered device to change between a hiking low speed mode (geographic changing) to a faster mode like biking or driving ? Probably relates to GPS sleep and main processor sleep settings ?

I was thinking about the rate of change in directions, or turning like the aprs smart beaconning.

If I remember correctly, you can get many GPS locks, with the same amount of battery drain, compared to one location packet sent with LoRa. However, as battery drain is offcource depending on the speed of the GPS locks (environment), GPS locks does not affect the battery drain as much as the LoRa channel speed setting (lower speed = greater battery drain for sending a packet).

Therefore, and this is based on assumptions made on battery drain, Meshtastic device could be programmed to do multiple GPS locks within one location packet transmission interval. If the change of heading, or the location, is out of predefined scope, the location packet could be sent immediately. This is how typical location tracking programs, like ATAK or Locus maps, are configured by default.

Unfortunately, if I have understood correctly, doing GPS locks more often, means Meshtastic device has to wake up from sleep, and use the CPU more often, causing more battery drain. However, if Meshtastic devices gets GPS locks energy efficient, then a dynamic location updating method, as described, could save a lot of battery drain. This is due to minimizing the need to send a location packet, or the location packet could be minimized to a really short “0 change” -message (for I’m alive messages).

@geeksville and @lgx might be the right ones to confirm theese assumptions.

One interesting thing to consider, regarding the management of battery drain more dynamically, would be to categorise different types of energy drain. This could be done for example by indexing the battery drain (0-100), and giving certain operations a score number. The score number would indicate the battery drain of a certain operation (less is better).

This would, in a later phase of development, allow the device to dynamically set the parameters regarding to the user settings: If LoRa speed is set to low (high battery drain for a packet), the device should send location updates (battery drain index 50) infrequently, and do GPS locks more often. However, if the LoRa speed would be set to fast (lower battery drain for a packet), location packets could be sent more often, as the battery drain scores between a GPS lock (battery drain index 20) and a location packet (index 30) are closer.

Those index scores are just tu illustrate the idea (not real measurements).

@ac8dg You can manually modify the location broadcast interval with a python command:
meshtastic --setpref position_broadcast_secs 60 (the default setting is position_broadcast_secs: 900). More: Bicycle Tracking - #3 by mc-hamster

2 Likes

Any progress on this? I’m hiking up to my node today and am going to charge the battery and update the software, I’d love to easily set it to router mode without taking the whole thing apart.

Thanks!

1 Like

Basically fully implemented for a while (though making routing ‘more optimized’ will happen someday). If your device has a recent 1.1 build “meshtastic --set-router” should configure the node properly to run for a long time on battery and never go to deepsleep.

outch, 1 month later :frowning:

I am blocked on the UI design and since I’ve been playing on ps4, with the winter coming, I had a tons of thing to do around the house

And I have an article to read (https://psyche.co/guides/to-become-indistractable-recognise-that-it-starts-within-you) , on top of the list, too much distracted to take the time

I just set a node as --set-router and then proceeded to --set is_low_power false. (as I dont want the bluetooth to be on nor the screen)

However, the screen and bluetooth remain active even when disconnected for more than one minute with power applied via USB (from a larger battery pack).
Does this behaviour require BOTH set-router and is_low_power to be true?

So I’m a bit confused, I send that command over the serial monitor? Or i use this command when flashing? I see alot about can configuring with these flags, but I’m not clear on how to actually do it.

1 Like

Kind of serial monitor…
You habe to install meshtastic python API and then run ‘meshtastic --“flags”’ in a terminal, which sends the settings via serial.

1 Like

No need to set is_low_power. Just say --set-router.

And setting is_low_power to false means “don’t try to save power”.

When I --set-router and then --info afterwards, the is_low_power is also set to true in the preferences. v1.1.8 on a tbeam.

1 Like

@geeksville should I leave the is_low_power as true after doing --set-router? Will it then turn the screen and BT off after inactivity?

Yes the screen and Bluetooth will go off. Set-router just sets a few parameters to make device use minimum power and to always have the Lora radio rx on. One of those params is is_low_power.

Great, I’ll be sure to change back when I retrieve my local router for a battery charge.

Wording is a bit ambiguous as I want the radio to maintain its tx power as the channel setting, but I guess is_low_power is for everything else and does not affect tx?