nRF 91x1 changing APN

Hi,

I am developing an application with LTE-M connectivity to nRF Cloud. Our previous SIM apparently supported auto-APN provisioning, we did not have to set the APN, the code connected fine (using SDK 2.9.0).

Now we are switching to a Vodafone SIM which has a custom APN for us, and apparently this does not auto-provision, so the APN must be set in the device explicitly.

I reviewed the PDN APN documentation and browsed the forums (finding many outdated posts on this topic), but have not yet found a definitive description on what is needed to change the APN.

What I tried so far is (prj.conf)

CONFIG_PDN=y
CONFIG_PDN_ESM_STRERROR=y
CONFIG_PDN_DEFAULTS_OVERRIDE=y
CONFIG_PDN_INIT_PRIORITY=89
CONFIG_PDN_DEFAULT_FAM_IPV4V6=y
CONFIG_PDN_DEFAULT_APN="my-apn"

but I get 

modem_info_params: Link data not obtained: 5 -5

and later

lte_lc: Registration rejected, EMM cause: 19, Cell ID: 32026369, Tracking area: 16543, LTE mode: 7

I can see in the Vodafone portal that the device has registered on LTE-M, but has not established a data session, presumably because it is not using the custom APN.

It is not clear to me if configuration alone is sufficient and the PDN / LTE library will automatically use that configured APN, or whether it is necessary to change the code to explicitly create a new PDN context using pdn_ctx_create() before calling nrf_cloud_connect(). 

Any help is appreciated.
Thanks,
Terrence
Related