I am very new to IOT (primarily in Connected Cars segment) and came across the terms like: Shoulder Tap , Using SMS to awake device. I did search online, but didn't get proper information.

Can anyone please help me understand what is Should tap, what it is used to awake and how do we achieve this? I read using SMS.

PS: I am not sure which tag to use for this question, so if anyone can suggested would be of great help.


Many IoT devices are battery-powered, and to conserve battery, enter sleep modes as much as they can. They usually get out of sleep in either of two cases (or both):

  • At fixed intervals, like every 6 hours, or every day for instance
  • When they receive an external signal from a sensor

When they wake up, they connect to a server, send their data, may check for data from the server (configuration updates...), and then go back to sleep.

The issue is that if you want to talk to a device immediately, it won't be possible, you'll have to wait for the next wake-up connection.

"Shoulder tap" is a way to remotely wake up the device. The idea is that most of the device is off, and only a low-level cellular connection is maintained, in some low-power mode. Then, whenever the server wants to talk to the device, it sends an SMS, and the modem will wake up the device to do whatever is requested.

This requires the device to have a cellular modem, which is capable of getting into low-power modes but still receive SMS messages, that the modem is able to wake up the device. Maintaining the cellular connexion in a state that allows reception of SMS will most likely increase the power draw quite a bit compared to the usual deep sleep modes, so the benefit comes at a cost.

The exact details vary a lot with the type of device, what kind of battery it can count on, how often and for how long it would be awake or sleeping, the sleep modes in use, the type of modem, the kind of cellular connection, and so on.

What is your actual use case, and what is the actual problem you are trying to solve?

  • 1
    That's the whole issue I was trying to point out: to receive SMS, at least one part of the device (the modem) must be at least a little bit active and maintain the cellular connection. Depending on the exact technology used (2G, 3G, 4G), the capabilities of the modem and of the network, this may mean pretty significant power draw, so the cases were this is really useful are most probably edge cases. – jcaron Apr 6 '20 at 15:05
  • 1
    Regarding testing or simulating this, do you already have a chosen platform (MCU, modem, cellular technology, network provider...)? This would probably affect possible solutions quite a bit. – jcaron Apr 6 '20 at 15:09
  • 1
    There's an awfully complex example here github.com/aerisiot/sms-shoulder-tap/wiki but really, using a Raspberry Pi for an IoT device which needs to be woken up just shows the lack of usefulness of the whole scheme IMHO. – jcaron Apr 6 '20 at 15:22
  • 1
    But really, what is your use case? How is your device powered? How is it connected? How often/how long does it sleep/wake up? When does it transmit? When does it need to receive data? – jcaron Apr 6 '20 at 15:24
  • 1
    How is the update sent? If it is sent as unicast over the cellular network, then just send the update whenever the device wakes up. If it is somehow broadcast, then set a schedule and wake up all devices on schedule. – jcaron Apr 6 '20 at 15:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.