I recently purchased 2x Adafruit FONA 3G - Cellular Breakout boards. While Adafruit has had the 2g version out for awhile now. I live in a forest, in the mountains. Pretty much a death sentence terrain wise for cellular, or, wifi signals. The exception seems to be 3g. With the cellular booster i have setup, i tend to get a pretty stable 3g connection from the tower in the closest town, which happens to be owned by Sprint.
The unit it's self was fairly easy to work with thanks to the tutorials from Lady Ada.
First thing to note is that the tutorials maintain that you "need" the larger sim card size. Truthfully, this is not actually true. You can use the mini size that's in most cell phones. The trick is to set the sim card slightly offset in height since once you close the sim card lock. It will shift the mini sim card down just slightly. As long as the copper resetting pins align with the copper squares in the sim card. Size won't matter. It may take a few try's to understand what i mean. But it will work.
Second thing of note, the unit seem to work with most providers I've tried. The thing to check for is 3g service in your area for provider in question. I've been able to get this unit to work with Ting, Sprint, Verizon, and, T-Mobile. In the case of Verizon however, i did not activate the FONA with them. I used the sim card from one of a free tablets they gave out during a special that i re-purposed for my Nexus 7.
The Arduino code from Adafruit is still in beta. "Most" AT codes are added to the library and function. You can view, delete, and, send Text. You can make, and, receive phone calls. Lastly, you can retrieve an IP for internet access. However, the Arduino code is highly limited in that it can't load normal web pages as there too large. It's mostly only good for JSON API calls.
You can tether the unit to your system using the USB debug port. I have not actually tried to get internet through it via tether. But there are other tutorials online for this. The tether in theory should also work as a "phone" on the system. However, i have not had the best luck getting Windows 10 to see it as an actual phone it can use as phone card.
I could not actually get a GPS signal. To confirm it's quality. But this is my location at fault not the unit. It's hard to get a GPS signal with any low powered antenna here.
I've been using Wifi / Bluetooth / Network Shields. It would be nice to create a "text" protocol for Robotic communication since it seems to be the most stable source of sending IoT data extreme ranges.
I'm pretty excited to add this to a future Robot. I've been wanting to create Awkun 2.0 as a medium sized outdoor rover. But due to my location I've been concerned about the distance i could "rove" using nothing more than long range wifi antennas. This could solve that issue!