Getting started with the 93m1 ppp application: build, flash, provision credentials, and connect to nRF Cloud over CoAP/DTLS.
The application runs on the nRF54L15 host of the nRF93M1 DK, with cellular over the on-board nRF93M1 Serial Modem via PPP. The host terminates DTLS and CoAP itself. PPP just carries IP traffic between the host's network stack and the modem's cellular radio. The modem's own onboard AT-based cloud client is not used here. It targets the non-secure (TF-M) build and stores the host's TLS credentials in Protected Storage. Telemetry, location, and FOTA go to nRF Cloud over CoAP. Location fixes still pull raw cell and Wi-Fi scan data out of the modem with AT commands, but the actual cloud request is host-side CoAP. Diagnostics go to your nRF Cloud project.
- nRF93M1 DK running Serial Modem firmware with PPP and CMUX enabled on the nRF93M1.
- An nRF Cloud account and API key.
- nRF Cloud Utils:
pip3 install nrfcloud-utils.
Run west from inside the nRF Connect SDK toolchain environment (see Initialize the workspace):
nrfutil sdk-manager toolchain launch --ncs-version v3.4.0 --shellcd applications/93m1_ppp
west build -p -b nrf93m1dk/nrf54l15/cpuapp/ns
west flash --eraseNote:
--recoverand--erasewipe Protected Storage, so the device credentials are lost and must be re-provisioned (steps 3–4). After the first flash, use a plainwest flashto keep the credentials in place.
Open a serial terminal on the host console (uart20). Note the device ID from the boot log:
<inf> nrf_cloud_info: Device ID: <16-hex-device-id>
It comes from the nRF54L15 SoC HW ID, not the modem UUID.
Once per CA, in the directory where you keep the CA files:
create_ca_cert -c US -f self_From the same directory as the CA files:
device_credentials_installer \
--ca self_<serial>_ca.pem --ca-key self_<serial>_prv.pem \
--id-str <device_id> \
-s -d --verify --coap --local-cert --cmd-type tls_cred_shell \
--port /dev/cu.usbmodem*The sec tag is 16842753. On success it writes onboard.csv.
nrf_cloud_onboard --api-key <your_api_key> --csv onboard.csvWait for the cellular link, then for the connection and first upload:
<inf> main: Network connected
<inf> nrf_cloud_coap_transport: Authorized
<inf> cloud: Cloud connected
<inf> cloud: Diagnostics uploaded
If the CA certificate or private key is missing, each cloud synchronization logs the missing items instead and skips the connection attempt until the credentials are installed:
<wrn> cloud: Missing nRF Cloud credentials (see docs/applications/93m1_ppp/README.md)
<wrn> cloud: - CA cert (run device_credentials_installer --coap)
Heartbeats and metrics appear in the linked nRF Cloud project. Location and FOTA use the same CoAP session.
See the 91m1_ppp README for credential and troubleshooting detail, which applies here too.