I’m using an XBee Wifi S6B module to transmit data to the internet. I’m controlling the XBee using an Arduino compatible board, called a Pololu A* 32U4 Mini LV, which as an atmega32u4 chip. I’m connecting to the XBee over serial using Arduino’s hardware Serial interface (so I’m using pins 0 and 1 on the Arduino). I can successfully configure the XBee using AT commands sent by the Arduino and submit HTTP requests as long as I don’t sleep the XBee. To conserve power I need to sleep the XBee using pin mode. I have pin 6 on the Arduino hooked up to Pin 9 on the XBee and have issued the ATSM1 command to enable pin sleep. All pins are going through a bidirectional 5V to 3.3V level shifter. Using a voltmeter and a micro current gold, I can measure the amperage and see that the XBee is indeed going to sleep (a deep sleep). The consistency of the XBee begins to degrade, though. After waking up, I issue AT commands or HTTP requests and it often fails, sometimes it stops even going into command mode. If I take out the sleep/wake calls (setting pin 6 on the arduino high, then low to wake it up) the code runs flawlessly, so I must not be doing something correctly after waking up from sleep. Right now I wake up, then issue ATAI until it returns 0, then issue the request. Sometimes it fails to go into command mode (over time it seems to stop going into command mode at all), sometimes it fails to issue the request (it just times out without returning anything). Is there something that comes to mind that I need to make sure I do after waking up the XBee?
Try adding the CTS flow control line and controlling when you send and receive data based off of that line.