• Sleep modes should be present in almost any code. They will help to
    enlarge the battery life. They must be handled with care.
  • It can be good idea to have 2 types of loops in your code: the
    normal loop and the "low-cost" loop. This "low-cost" loop will
    be executed if the battery level is detected to be low (you can
    place a first if() in your code to make the code flow as you wish).
    In this case the battery is low (i.e., <10%), you may want:
    • implement just part of the normal loop
    • notify of low battery status via a special frame
    • implement the normal loop, but setting a longer sleep time at the end
    • do nothing but sleep as fast as possible to enable the battery is charged
  • As said above, you can have different types of loops depending on the current conditions. Depending on the situation, you perform certain parts of the code, but not others.
  • Erratic behaviour could be observed when the battery is below 15% or 10%, because the battery voltage could fall below the minimum 3.3 V that Waspmote's microcontroller needs. You want to be above that level.
  • Try to write fast loops. The faster the loop, the less time Waspmote is awake, and you get better energy performance.
  • Choose the duty-cycle with care. The duty-cycle is the percentage of time a device is on, compared to the total time. It is normally defined by the number of times we want to read sensors each hour. Most of the projects can have their Waspmotes sleeping most of the time. For example, there is no reason to measure temperature every 1 minute: it just does not change in such a quick way! Depending on the parameters you want to control, you will have different duty cycles. Most of our clients measure each 5-10 minutes, which means sleep times of 5-10 minutes and loops of few seconds.
  • A good developer will check the energy consumption of the written codes (time to go from 100% to 0% battery level or from 80% to 60%, for example). This will help to have a battery life estimation. It could lead to the need of re-doing the code to make it more efficient and have a longer life.
  • Remember any battery has a self-discharge rate. It can go from 3% to 10% per month in a rechargeable battery.
  • Always consider the possibility of adding external power supply to your Waspmote (a solar panel for example). The "energy budget" will probably be positive in any project which has external power supply: the energy constraint just disappears.
  • Bear in mind that most of the Waspmote power consumption is due to the communication module (dozens or hundreds of mA!!). You may find interesting not to send frames in every single loop. You can send "summary frames" each hour, for example, with the latest measured values. It depends on how important it is to the project to have "real time information". Another tip is that you can send one frame only in the case that certain parameter is above a threshold. Or you can send one frame only in the case the value you just read has changed in a significant way compared to the last sample sent.
  • Above, we gave tips to avoid sending redundant information and save battery, but anyway any code should send one frame ALWAYS after a certain number of loops or after a certain time (hours).
  • 4G, GPRS, GPRS+GPS and 3G modules are the most energy-costly modules; the main reason is because they take several seconds to connect to the cellular network. WiFi PRO must connect the router before transmitting too. Sigfox, LoRaWAN and LoRa modules are also very energy-hungry, in this case because it takes long to transmit frames with them due to their slow RF data rate. Bear this fact in mind when using these modules.
  • It is possible to control the power supply of several modules in Waspmote:
    • XBees
    • Sigfox
    • LoRaWAN
    • LoRa
    • Bluetooth_Pro
    • Bluetooth Low Energy
    • GPRS
    • GPRS+GPS
    • 3G
    • 4G
    • NFC/RFID
    • WiFi PRO
    • Sensor Boards
    • RTC
    • SD card
  • These are some recommendations depending on the module used :
    • After switching on the XBee modules, it is recommended to wait for some seconds in order to establish the network in the case of ZigBee and DigiMesh protocols.
    • After powering the GPRS, GPRS+GPS, 3G, 4G and GPS module, please check the correct connection to the network and satellites respectively.
Last modified 3yr ago