I've seriously mAngLEd my original FONA library, but it worked well enough for the basic operations. It was just when I started doing things like taking the time from the network, that I found the 5320 command set differed slightly. (AT+CTZU etc)
I also have modified it to get the carrier name, RSSI, signal type and other service info.
Also since then, I've made it completely non-blocking - but not documented or really portable yet.
(Normally sendng an SMS using:(AT+CMGS+number(CR) > message... OK) will take 2-5 seconds before releasing the CPU for other things) My revised code doesn't block the processor at all.
I'm about to update it again - for tidiness & readability of the code.
So - in summary - go with the standard FONA library for now (I always use hardware UARTs)
If you want to do anything special - enable the FONA debug messages, and make sure the modem is doing what you expected!
Your code should be straightforward - a couple of separate blocks
[u]Make them work reliably by themselves[/u], then start tying them together.
- LCD driver / display formatting
- Keypad handler and 'number' buffer
- SMS Message storage
- Glue to hold it together,
- Push the number & messages to the modem.
Let us know how you're going.