XA1110 sleep / power saving mode

Hi

I’m playing around with the XA1110 GPs module and have fine connection. However I would like to set it into sleep / power saving mode, but it seems like the WAKE pin isn’t enough itself? From the datasheet I do not get much cleverer . Can anyone assist me :slight_smile:

Thanks

Lucas

Hi Lucas,

I did some digging to try find out how to put the XA1110 to sleep. As far as I can tell, it can only be put into backup or standby mode, which according to the datasheet, will draw 1.2 to 1.6 mA, respectively. While this is a very high current draw, it’s important to remember that it doesn’t appear to be a true power-down, but instead a power-saving mode.

Power Saving (Periodic)

Backup mode: 1.2mA (TYP)

Standby mode: 1.6mA (TYP)

To place the XA1110 in standby or backup mode, you’ll need to send it either a PMTK161 Standby Mode or PMTK225 Periodic Power Saving Mode command. Information on these commands can be found in the Sierra Wireless Software User Guide I attached. Sierra Wireless bought out GlobalTop back in 2017, in case you’re confused.

If you need help on how to configure the GPS, you can look to the SparkFun_I2C_GPS_Arduino_Library and Example5-ConfigureGPS.

The actual PMTK command to place the GPS in standby mode is as follows:

PMTK161 Standby Mode
$PMTK161,0*28<CR><LF>

You can use the SparkFun library to send this configuration message over I2C and I believe once in standby mode, you can pull the WAKE pin HIGH to bring it out of this mode. I don’t have one of these units on hand, so I’m afraid I can’t test this.

Best of luck and let us know how you make out!

Cheers,

Adam

AirPrime_GMM_G3_XA11xx_and_XM11xx_Software_User_Guide_Rev4_0.pdf (717 KB)

Hi Adam (and others),

Thanks a lot for your research and help. I think I do manage to understand both the datasheet and the example code. I’ve tried to combine these by inserting the following code from the sparkfun I2CGPS library to the XA1110 module (with the RTK mode 161 as you mentioned and “Type” 0 as it is stated in the datasheet).

 configString = myI2CGPS.createMTKpacket(161, ",0");
 myI2CGPS.sendMTKpacket(configString);

It seems like this works, as the module is not in reach afterwards (hopefully it is because it is in sleep and not just breaks down in some way).

GPS Configuration Example. Module failed to respond. Please check wiring.

When entering this “mode” or state I cannot wake it in any way by pulling the WAKE-pin either HIGH or LOW, but only by power-cycling it. By this I could use a transistor to just cut the power, but then I don’t really need the sleep-mode I guess?

I have the same problem, I manage to put it into energy saving mode but I can’t wake it up. WAKE PIN does not work

Before going any further, please check the sticker on the module. Does the sticker show “Titan X1”? If it does, it may use a different protocol command. Those can be found [here. The modules with that particular sticker are a different manufacturer version.](https://cdn.sparkfun.com/assets/parts/1/2/2/8/0/PMTK_Packet_User_Manual.pdf)

My apologies for the delay. I’ve looked into this issue more closely. Our most current version of the board using the modules without “Titan X1” is supplied by Sierra Wireless. I found this programming datasheet that gives a better account of the details we need for standby mode.

When I tried (161, “,0”), the module did go into standby mode. I used a [USB power meter to confirm. However, I’m not sure how you wake it up from that command. This command isn’t configured to wake up from pulling WAKE high. The manufacturer says to send a byte to wake up. I was unable to make that work and find a software solution.

I dug more and found that command (225,“,4”) is the designated function for using the WAKE pin ([link, pg. 23).

I wrote the following: ```
myI2CGPS.createMTKpacket(225,“,4”);


That does set it into standby, confirmed using Arduino Serial and my USB power meter. Using the [[RedBoard Qwiic](https://www.sparkfun.com/products/15123) and the GPS module I was seeing roughly <COLOR color="#FF0000">.05 A at 5.1V</COLOR>. The standby read out at <COLOR color="#00BF00">.02A at 5.1V</COLOR>. Touching WAKE using a jumper wire connected to 3.3V pin woke the module back up to normal operating conditions.

I hope this helps!](https://www.sparkfun.com/products/15123)](http://www.alphamicrowireless.com/media/570768/41111121%20-%20airprime%20xm_xa%20series%20software%20user%20guide_r1.pdf)](https://www.sparkfun.com/products/15571)

I’d like to revisit this topic for updates/clarification.

  • The link above is broken. Is this datasheet correct for modules that don’t say TITAN X1? Mine just says “XA1110 Made in China”, with what looks like a QR code that I can’t get to scan. https://cdn.sparkfun.com/assets/b/c/4/4/5/AirPrime_XM_XA_Series_Software_User_Guide_r3.pdf
  • My experience shows that (161,“,0”) really means “become unresponsive until the next power cycle”. Is this correct? Has any fix been found?
  • Then, (225,“,4”) means “become unresponsive until the WAKE pin is pulled high, and forget the current configuration”. Is this still correct–i.e., there’s no way to wake it just with commands? I did confirm that pulling WAKE high does in fact wake it; however, it’s really annoying to have to use a scarce digital pin just for this and do have to re-send the configuration info (this is a time-sensitive application).
  • What I’m really trying to do is cycle the GPS to save power and because I don’t need it running all the time. Ideally, I’d like it to wake every 15 minutes and then run long enough to collect 20 fixes, but a simple duty cycle like 13-off 2-on would be fine too. Is there a better way to do this? Do you have a different GPS I should use?
  • I recommend documenting these behaviors in an example or with clear instructions somewhere, and marking the documents better on the product page to be clear that most customers should be looking at the “Airprime Software User Guide”.

Basically all of that is covered on the product page

You’re supposed to send 4 things is the power save array, see pg 19 https://cdn.sparkfun.com/assets/b/c/4/4/5/AirPrime_XM_XA_Series_Software_User_Guide_r3.pdf

You might try the other wake mode, pg 16…but my main guess is that you need to pass a RunInterval too so that it wakes back up