RAK3172 for a low-power sensor board

Dear Forum,
I’m trying to build a battery driven sensor node that will have multiple (4) switches connected (normally closed). It should send a ping every 10minutes and instantly react if any of the switches changes state. Communication will be P2P.
I was thinking of using RUI3 (Arduino) and already found the nice example code at GitHub - beegee-tokyo/RUI3-LowPower-Example: Example how to achieve lowest power consumption with a custom firmware created with RUI3 which looks promising, however I still got a few questions:

  • I will design a custom board with the RAK3172 module. I had a look at the breakout schematic, but can’t stop wondering if a 10k pull-up and 100nF are both absolutely mandatory on the reset pin. A 10k pull-up doesn’t seem fit to ultra low power…

  • Is there a way to define multiple wake pins in software? For instance is it possible to wake from a pin change interrupt? Are all pins capable of these “waking” pin change interrupts?

  • If that’s not the case, is it possible to wake just the cpu from a timer? I was thinking of timer waking every 500ms, check all the necessary inputs and only wake up the LoRa module if a change (or “ping”) has to be transmitted…

Thank you for your feedback…

Welcome to the forum @LoraTester

(1) You need the R/C combination on the RESET for a proper bootup. I didn’t measure the current, but as soon as the C is charged up, it will close to 0

(2) You can use interrupts on the GPIO’s to wake up the device. I tested PB5, PB12, PB2, PA15 PA9 and PA10. I don’t have a “bare” RAK3172 at hand, so I tested the GPIO’s that are available on our WisBlock modules.

(3) Timer is possible as well. The example you found is usually using RAK_TIMER1 for frequent wake up to send data. You can setup something similar with RAK_TIMER2 to RAK_TIMER5