I have an OpenAT application running on an SL808XT module which depends on a GPRS connection for it to work.
Startup time is important for this applications use case, and I’ve noticed it takes ten seconds or more for the SIM to finish initialising before a GPRS connection can be established. This might not sound like much, but when combined with the total module + gprs + application startup time it’s becoming irritating to the end user.
Every time the module is restarted it goes through the same cycle of taking ten or more seconds waiting for the SIM to initialise before going online. I have to put a loop in my application to continually test the SIM is available before the GPRS connection can be established.
Is there any way of reducing the time it takes for the SIM to become available, or is there some way of caching the SIM details so the GSM connection can be established immediately when the module restarts? The SIM is very rarely changed.
If you shut down the GSM connection using AT+CFUN=4, it retains access to the SIM, so when you restart the GSM stack using AT+CFUN=1,0 your start time should be fast. If you are powering down the modem completely, then this will not be possible.
Also, make sure the SIM Speed enhancement function is enabled, this should give you a SIM init and GSM registration time of around 9 seconds under good GSM conditions.
I’ll check we are using the SIM Speed enhancement function to see if that makes any difference.
Unfortunately when our application loses its GPRS connection we need to restart the entire OpenAT application (using a hard modem reboot) as an embedded component doesn’t reset cleanly when the connection is resumed. So the AT+CFUN trick won’t work for us.
Does anyone else have any tips/tricks I could try?