[Logo] Anarduino and HopeRF Community Forum
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics     [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Anarduino LoRa power consumption  XML
Forum Index » Anarduino
Author Message

Joined: 01/12/2015 14:58:43
Messages: 1

Hi there!

I was wondering if anyone has any tips on for reducing the Anarduino LoRa (MiniWirelessLR-95-868Mhz) power consumption.

I am getting ~500uA current with the following code:

However, with similar code and RF69 module (Mini-WirelessHW-868Mhz) I am getting ~40uA:

Any help/ideas would be very much appreciated.


This message was edited 1 time. Last update was at 02/12/2015 01:02:07


Joined: 19/10/2015 17:21:10
Messages: 32

any updates on this?

I'm also experience same issues with LoRa modules..

Joined: 29/03/2015 22:49:48
Messages: 4

I use the RFM95 Anarduino Mini Wireless with lots of success:

I modify them by cutting out the Voltage regulator, and shorting pin Vin to 3.3V , there by by passing the regualtor and its losses and drop out voltage.

I run the devices from 2 L91 AA Lithium batteries for years.

Here is the setup code to get your current consumption down to 16 ua


#include <SPI.h>
#include <EEPROM.h>
#include <RHDatagram.h>
#include <RH_RF95.h>
#include <Time.h>
#include <MCP7940RTC.h>
#include <LowPower.h> //get library from: https://github.com/lowpowerlab/lowpower
//writeup here: http://www.rocketscream.com/blog/2011/07/04/lightweight-low-power-arduino-library/
#include <Wire.h>

//Radio settings
#define POWER_LEVEL 22 // can vary from 5 to 23, 5 is the lowest.
#define FREQUENCY 913 // Default Transmission frequency, can be changed by EEPROM value
#define TIMEOUT 3000 // transmit timeout until ack is received
#define RETRANSMIT_DELAY 60 // Will retransmit an alarm after this number of seconds.
#define RETRANSMIT_TIMES 1 // How many times to retransmit
#define RETRIES 4 // how many initial retries are used
#define ATTEMPTS_TO_TRY 10 //This times radio setting of timeouts gives number of attempts before giving up

#include <EnableInterrupt.h>

volatile uint8_t externalInterruptFlag=0;
volatile uint8_t pinChangeInterruptFlag=0;
volatile uint8_t pinState=0;

#ifdef ARDUINO_328
#define PINCOUNT(x) pin ##x ##Count

void interruptFunction () {

void interruptExFunction () {

#define disablePCInterrupt(x) \
disableInterrupt( x | PINCHANGEINTERRUPT)

#define setupPCInterrupt(x) \
EI_printPSTR("Add PinChange pin: "); \
EI_printPSTR(#x); \
EI_printPSTR("\r\n"); \
pinMode( x, INPUT_PULLUP); \
enableInterrupt( x | PINCHANGEINTERRUPT, interruptFunction, CHANGE)

#define setupInterrupt(x) \
EI_printPSTR("Add pin: "); \
EI_printPSTR(#x); \
EI_printPSTR("\r\n"); \
pinMode( x, INPUT_PULLUP); \
enableInterrupt( x, interruptFunction, CHANGE)

#define setupExInterrupt(x) \
EI_printPSTR("Add External pin: "); \
EI_printPSTR(#x); \
EI_printPSTR("\r\n"); \
pinMode( x, INPUT_PULLUP); \
enableInterrupt( x , interruptExFunction, CHANGE)
#error This sketch supports 328-based Arduinos only.

uint8_t client = 101; // we will change this with eeprom sn

RH_RF95 radio;
// Class to manage message delivery and receipt, using the driver declared above
RHDatagram manager(radio, client);

#define LED_BUILTIN 9 // mini-wireless board LED pin #
#define LED_ON digitalWrite(LED_BUILTIN,1)
#define LED_OFF digitalWrite(LED_BUILTIN,0)

//if we want to use a longer serial number this can be changed
#define SN_LENGTH 3
#define FULL_SN_LENGTH 7
#define FREQ_LENGTH 6
#define FULL_EEPROM_LEN 13
char serialNumber[4]; // this one gets transmitted
float frequency = 913.00; //this will get changed by value in eeprom

Joined: 11/06/2017 21:51:28
Messages: 1

I am confused about that.

This message was edited 2 times. Last update was at 14/09/2017 20:59:15

Forum Index » Anarduino
Go to:   
Powered by JForum 2.1.9 © JForum Team