I have summarized my current understanding of the various was to enter sleep mode in this post. The general idea though is that sleep allows the board to still run (but with reduced power) and it does not reset when you exit sleep. Deep sleep resets the board (will not execute any code after the deep sleep command and will reboot and run boot.py and main.py)
@giorgio Hi, I've not worked before with the EB3, but I think you should use the Deep Sleep API (https://docs.pycom.io/datasheets/boards/deepsleep/api.html), which may sends messages to the PIC in expansion board to take control of the low power mode, in a similar way as the PySense API does. Also power the board with a LiPo battery.
As the EB3 doesn't have an accelerometer, you should be able to wakeup the SiPy either via an external interrupt, on-board button or timer. Hope this was useful for you.
In fact, lorawan callback in the network operator that i have used (objenious and orange) doesn't allow dynamic downlink data setup via callback service. I have to prepare the downlink data and when (even several hours/day later) the device send an uplink message the downlink data is send to the device.
So, if you know the periodicity of your uplink frame you can predict the time to send to your device on his next uplink frame and set your operator downlink frame in advance.
With Sigfox, when the device send an uplink frame with download request bit (by device choice) set, there 2 choices
-default call back method can send back to the device network time and some static data
-you have 20 secondes to send back from your device (from your own callback service) some data and time.
With NB-IOT , network time availability is not mandatory so it depend of your network provider.