Modem
The modem consists of two cores: the cellular core and the application core. The cellular core contains the Nordic firmware that handles cellular functions. The application core can be programmed.
To add cellular capabilities to the SmolPhone device, we explored two architectures:
- The serial modem architecture
- The custom API architecture
In the serial modem architecture, the board sends directly AT commands to the modem. The application flashed on the modem is the Serial Modem add-on. This application forwards the AT commands to the modem and provides different operating modes. For example, it handles AT commands and data multiplexing.
In the custom API architecture, we program a modem application that handles the low-level details such as opening sockets and sending HTTP requests. The board communicates with the modem application though a custom API that we designed.
We chose the second architecture because it allows taking full advantage of the application core. This avoids an overhead in parsing and printing AT commands. During our testing, we encountered several bugs with the serial modem add-on. The add-on doesn’t appear to be intended for production use.
Figure 1: Serial modem architecture.
Figure 2: Custom API architecture.