I was playing with Lora (sx1276) and i end up with knowing it's not possible to wake up the module from sleep mode when it receive message.
So now I'm just wondering, for future projects, how other companies do it on other sensors like Temperature sensor, fire sensor or presence detector (PIR sensor). Most of them will consume normally few mA, and with a coin cell like CR2032 we can not reach 1 year of autonomy even with 1mA.
This is an entirely different control arena then the Arduinos.
Ultra-low-voltage processors (ULV processors) are a class of microprocessor that are deliberately underclocked to consume less power, generally at the expense of performance. Component devices are designed for ultra power operation. Normally peripherals etc are turned off unless being used. The sleep function helps a lot in extending the processors battery operating time but it is highly code dependent.
For reference the average CR2032 battery is a Lithium-manganese dioxide battery (LiMn02). It is composed of a Mn02 cathode and a lithium anode. The device is specified for about 225 milliamp hours (mAh) giving you a little over 1/2 Mah per day. There are devices that are capable of this used as modules for the Arduino such as several RTC (Real Time Clocks)/
are you referring to LoRa peer to peer or LoraWAN applications
generally in LoRaWAN applications i would have the host processor, LoRa module and peripherals in deep sleep woken up at regular intervals by an RTC to transmit and receive data.
in LoRa peer to peer one possible approach would be to have host processor and peripherals in deep sleep woken up by the DIO0 signal when a message is received
Thats the case with most all receiver devices, when they are in low power sleep mode, the receiver is powered off. If the receiver is powered off then it wont work.
So the simple soloution is that the receiver of the messages needs to be permanently powered. The transmitters then wake up from low power sleep, send their message and go back to sleep. With the right choice of Arduino even a set of AA batteries can last for many years with this mode of operation.
For LoRa you can arrange it so that the receiver is active but the rest of the Arduino is asleep waiting for an incoming packet. Current consumption can be in the region of 5mA in this mode, assuming a good choice in devices.
@gilshultz i would love to learn those low level stuff without long and boring ingineer class. @horace it's for 2 Lora peer to peer, the dio0 will work only on standbye mode not in sleep and i tried and got confirmation by other people. Because i need each node to be able receive message at any time i was thinking increase the preambule then wake up Lora every 1s and check for message. For that i estimate about 0.75mAh including an attiny84 and wakeup time, consomption is too high, last just few days. @srnet that's good approche in general but in my case both node need to have good mobility (stay in pocket) so...
If by dio0 you mean the DIO0 pin going active to indicate a packet received, that will only happen when the LoRa device is in receive mode, circa 10mA for a SX127x, 5mA for an SX126x.