Had a quick question for you today. I have an application where I have to achieve the maximum possible sleep efficiency. To do that, I’d like to sleep the system right up until UART data is received, parse that data, then go to sleep again.
I’ve seen others say one way to do it is to configure a change interrupt for the rx pin, but I understand this technique sometimes misses the first byte, which I don’t have the luxury of doing.
@nmcc Do you happen to have any wisdom to add? Apologies for tagging you directly, but you’ve been a great help in the past, wondering if you had something for this as well.
Sorry for the ambiguity, talking about RUI3 here with the RAK4630-R stamp module. It’ll be on a custom board but nothing really fancy on the UART side. Programmed with the Arduino IDE
I’ve read some more documentation that says that the UART peripheral may stay active during some sleep modes, which is exactly what I need for this application. Can you confirm that UART stays active during one of the sleep modes I can call with RUI3?
UART peripheral is not active during sleep. This is to fully minimize current consumption but you can trigger wake on specific IO pin also on UART RX. So basically, you can wake up the device whenever you send anything via UART. Btw, you are using the module with external MCU right? Not as an independent board via RUI3 API?
I see. Hmm. I am afraid we do not have that sleep mode where UART peripheral is on. If you have control on the external device/sensor where you communicate via UART, maybe you can have a trigger first before getting the needed data. Just to be sure that the device is fully away before doing any UART read.
Unfortunately I have no such control over the target device, as it’s a 3rd party device I am interfacing with.
Is this functionality available elsewhere outside of RUI3? Perhaps if I used the older Arduino API? Is it possible to directly call the Nordic SDK to do sleep?