Powersave modes


Is there a way to implement powersave modes in the rapidM2M script?

The rapidM2M should be in powersave mode until an external interrupt is triggered.

Thanks in advance!


Hello @simi1505

The power management is completely done by the firmware. The firmware selects the optimal power save mode automatically.

However depending on the functions you activate via the script you can indirect influence the power management of the firmware. For example if you activate the “online” connection mode using the “rM2M_TxSetMode()” function (see Device API -> Uplink) the firmware activates the modem and establish and maintain a connection to the rapidM2M Portal. This result in a high energy consumption. To reduce the energy consumption radically you can activate the “interval” connection mode. In this mode the connection is only established after calling up the “rM2M_TxStart()” function. The modem is switched on only for the short time required for the transmission of the Data and is switched off afterwards immediately.

Another advice to reduce power consumption is to close all interfaces which are currently not used. For example use the “rM2M_UartClose()” function (see Device API -> SPI, I2C, UART) to deactivate the Uart interface. Note: All interfaces are switched of per default. So you only have to deactivate them if you have explicitly activated them before.

Deactivating the GIPOs using the “rM2M_GpioDir()” function and the setting “RM2M_GPIO_DISABLED” (see Device API -> GPIO, IRQ) can also reduce the power consumption. The GPIOs as well as all other signals connected to the 52pin connector strip are grouped and routed via level shifters to the 52pin connector strip (see Block Diagram). If you deactivate all GPIOs respectively Signals routed via the same level shifter the firmware can switch off the level shifter and therefore save energy. IRQs can be deactivated using the “rM2M_IrqClose()” function. Note: All GPIOs and IRQs are switched of per default. So you only have to deactivate them if you have explicitly activated them before.

Regardless of the power management of the firmware it is advisable to activate the power saving function of the hardware connected with the rapidM2M M22x. For example sending the corresponding commands to the external ICs before deactivating the interface (e.g. the Uart interface) or setting GIPOs connected to the “Enable” pins of the external ICs in such a way to switch of the external IC.

When developing your own hardware into which the rapidM2M M22x is inserted you should consider the grouping of the Signals shown in the block diagram. If you for example only need two GPIOs you should use the ones which are routed via the same level shifter so that the firmware is able to deactivate the level shifters connected with the other groups of GPIOs.

Kind regards

Hi Josef!

Thank you for you detailed answers!

My situation:

I have a rapidM2M Base Starter. I removed the existing rapidM2M M220 from the Base Starter Board and connected the supply voltages with an external power supply (VSYS, VGPIO and the Enable Pins).

Everything is working like expected. However, during connection time the board is drawing up to 180mA and in idle mode it is drawing 4mA.
I do not use any peripherie except one input interrupt and I only use TxStart() (interval mode).

The Problem:
My project has to run 14 months permanently. For me to achieve this, a power consumption of <1mA would be desirable.
Is this possible? How can I further reduce the current?

A possible way would be desoldering “unnecessary” components from the rapidM2M M220.
Therefore, I would need the circuit diagram / PCB layout of the M220 Board and that is not available online, isn’t it?



Hello @simi1505

The typical minimum circuit for supplying the rapidM2M M22x by means of a rechargeable battery via Vaux can be found in the data sheet on page 5 (see rapidM2M M22x 2G/3G EU/3G US Data Sheet) Note: Vaux is connected to multiple pins because the current needed during the transmission could not be routed through a single pin.

The 180mA during the connection are plausible. In fact, the GSM typical current peaks of 1.9A can occur in transmission mode (see Data sheet page 18).
4mA in interval mode seem to me clearly too high. This is the typical current consumption for wakeup mode. You can find the current consumption of the operating modes on page 17 in the data sheet.
If no script is install in the rapidM2M M22x the wakeup mode is activated.

To activate “interval mode” you have to use the following code:

  rM2M_TxSetMode(RM2M_TXMODE_TRIG);       // Setting the connection type to "interval" mode

The “rM2M_TxStart()” function only initiates a connection to the server. It does not change the connection mode.

If you have connected rapidM2M M22x via USB to you PC the current consumption also increases as the controller activates the clock sources necessary for USB connection.

Removing components from rapidM2M M22x is not a good idea as the firmware might not boot any more if specific components could not be initialized.

Note: The specified pages apply for rev.06 of the data sheet.

Kind regards

Hi Josef!

Thank you for the code line!

Now, the rapidM2M Board only draws around 860uA in idle mode.

Best regards!