> 5.3 | Power Saving

> The module supports several power saving modes which can be configured by the AT command AT+CFUN [1]. Power saving affects the Java application in two ways. First, it limits access to the serial interface (RS-232-API) and the GPIO pins. Second, power saving efficiency is directly influenced by the way a Java application is programmed.
> Java hardware access limitations:

> • | In NON-CYCLIC SLEEP mode (cfun=0) the serial interface cannot be accessed. Toggling RTS does end NON-CYCLIC SLEEP mode. In CYCLIC SLEEP mode (CFUN=7 or 9) the serial interface can be used with hardware flow control (CTS/RTS).

> • | In all SLEEP modes the GPIO polling frequency is reduced so that only signal changes which are less than 0.2Hz can be detected properly. Furthermore, the signal must be constant for at least 2.7s to detect any changes. For further details see AT^SCPOL in [1] or refer to [2].

> Java power saving efficiency:

> • | As long as any Java thread is active, power consumption cannot be reduced, regardless whether any SLEEP mode has been activated or not. A Java application designed to be power efficient should not have any unnecessarily active threads (e.g. no busy loops). Threads waiting in a blocking method (e.g. read) do not hinder power saving.

> • | When using networking functionality close all connectors and hang-up the bearer manually (using ATH for circuit switched connections or AT+CGATT=0 in case of GPRS) every time you intend to reduce power consumption. Disable the network idle timeout (=0).

> When going to low power mode there always might be a transition time of around 10s till low power consumption state is reached.