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.


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.


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.


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


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

1 Like