Author Topic: An observation on Simblee power consumption  (Read 90 times)

StillAlive5

  • RFduino Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
An observation on Simblee power consumption
« on: September 20, 2017, 01:30:09 PM »
Something that is obvious in hindsight, but I was not expecting.  In the modified SimbleeCom send example below.  The current consumption of an unconnected (except power of course) RFD77203 will change from a few mA to over 16 mA if a receive interrupt is simply present in the code.  So if there is an on_receive interrupt the radio is being kept on at all times.  If there is not, it is powering down between sends.  Just comment out the on_Receive below to see the difference.

/*
 * Copyright (c) 2015 RF Digital Corp. All Rights Reserved.
 *
 * The source code contained in this file and all intellectual property embodied in
 * or covering the source code is the property of RF Digital Corp. or its licensors.
 * Your right to use this source code and intellectual property is non-transferable,
 * non-sub licensable, revocable, and subject to terms and conditions of the
 * SIMBLEE SOFTWARE LICENSE AGREEMENT.
 * http://www.simblee.com/licenses/SimbleeSoftwareLicenseAgreement.txt
 *
 * THE SOURCE CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.
 *
 * This heading must NOT be removed from this file.
 */

#include "SimbleeCOM.h"

char payload[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };

void setup() {
  SimbleeCOM.begin();
}

void loop() {
  SimbleeCOM.send(payload, sizeof(payload));
//  SimbleeCOM.end();
//  Simblee_ULPDelay(100);
//  SimbleeCOM.begin();
  delay(100);
}

void SimbleeCOM_onReceive(unsigned int esn, const char *payload, int len, int rssi)
{
}

Wayne

  • RFduino Jr. Member
  • **
  • Posts: 34
  • Karma: +0/-0
    • View Profile
Re: An observation on Simblee power consumption
« Reply #1 on: September 25, 2017, 06:54:23 AM »
I have worked with ULP and systemoff options a lot.

During the 100ms delay, you will draw 16ma.. That is normal for full power.
Since you are not doing any sleep, the simple will idle at a higher rate.

In the android world, I have learned that delay() is a no no.  It stops all programming routines until done.  I use elapsemillis (exact name?) to delay.

With systemoff, I do see 400nA when in the lower power.