Modules per application

Serial Modem Host Applications

tags
Serial Modem Host Applications

The applications share the pattern but not the code. Each application has its own copy of its modules, adapted to its modem and cloud connection. The PPP Host Application builds the same modules for every board and selects board-specific behavior through Kconfig and the board files:

Module PPP nRF93M1 AT nRF91 AT
Main State machine State machine State machine
Network State machine. PPP link to the Serial Modem State machine. PPP link used only for connectivity status State machine. LTE registration from +CEREG, no PPP
Cloud State machine. nRF Cloud CoAP from the host Message loop. Modem nRF Cloud client through AT commands State machine. Serial Modem provisioning (AT#XNRFPROV) and nRF Cloud client through AT commands
FOTA State machine. Host firmware updates through nRF Cloud Not included Not included
Location On the nRF54 hosts, state machine. Wi-Fi scan with the nRF7002-EB II, only with the location overlay. On the nRF93M1 DK, message loop. Cell and Wi-Fi measurements from the modem Message loop. Location fix from the modem nRF Cloud client Message loop. Cell fix through nRF Cloud, GNSS fallback, both from the Serial Modem
Battery Message loop. Fuel gauge sampling, only on the nRF93M1 DK Message loop. Fuel gauge sampling Not included
Buttons No thread. Publishes DK button presses No thread. Publishes DK button presses Not included
Modem AT No channel. Serializes access to the modem AT pipe No channel. Serializes access to the modem AT pipe No channel. Owns the Serial Modem UART, serializes AT commands, and routes URCs

A state machine module runs its messages through an SMF state machine, as described in this document. A message loop module has its own thread, channel, and watchdog like the others, but handles each message in a plain switch statement because it has no state worth modeling. The Buttons module publishes from the button callback and needs no thread. The Modem AT module is a helper that other modules and the shell call directly.

The module guides for the PPP Host Application, linked from its module overview, describe each module's states and messages in detail.