Cellular X-CUBE-CELLULAR

Click here for Cellular overview

1 Introduction

This wiki page contains information to help the user navigate ST Cellular software. When the information is already present in a data brief or a user manual, this wiki redirects to those reference documents. While the information in this wiki article is not exhaustive, it is an aid to finding further information.

2 X-CUBE-CELLULAR versions

Since the initial version V1.0.0 in mid-2018, the software content and hardware support have increased continuously.
Versions 1.0.0 to 5.2.0 progressively encompassed new features, applications, and hardware. The Cellular middleware however was part of X-CUBE, which is not sufficiently independent.
Therefore, V6.0.0 is reworked to provide standalone Cellular middleware that is easier to integrate into existing applications. Therefore the boot menu has been removed but command line calls are still available. The Cellular middleware API is also redesigned to ease/clarify its usage by application. Finally, V6.0.0 is the first delivery that introduces low power modem features for some modems (BG96 and Murata).
The current version, V6.0.0, supports the following hardware configurations:

  • P-L496G-CELL02 (pack with a screenless 32L496GDISCOVERY associated with an STMod+ BG96 Quectel modem)
  • STEVAL-STWINKT1B (STWIN SensorTile Wireless Industrial Node development kit and reference design for industrial IoT applications)
  • B-L462E-CELL1 (Discovery board with T1SE Murata module (STM32 L462, ST4SIM, ALT1250 modem))
  • STEVAL-STMODLTE (LTE connectivity expansion board for STMod+ connector compatible evaluation boards, based on the Quectel BG96 modem, the same modem board in the P-L496G-CELL02 pack described above)
  • GM01Q-STMOD or GMS01Q-STMOD (Monarch from Sequans, GMS01Q is a GM01Q that also contains an internal SIM with a prepaid data plan).


P-L496G-CELL02 and B-L462E-CELL1 are standalone setups. For other STM32 boards (B-L4S5I-IOT01A, 32L496GDISCOVERY, STEVAL-STWINKT1B), just plug in the STEVAL-STMODLTE or GM01Q-STMOD modem boards. Note: for B-L4S5I-IOT01A, an X-NUCLEO-STMODA1 (ARDUINO® / STMod+ adapter) must be used.
For the complete description of deliveries (software and supported hardware), please refer to the release notes included in the X-CUBE package.

3 What is X-CUBE-CELLULAR?

X-CUBE-CELLULAR (or XCC) allows applications to send and receive data on the cellular network using BSD API sockets.

Remember that the official web page on X-CUBE-CELLULAR on www.st.com provides access to multiple resources (software, documents, and so on).

X-CUBE-CELLULAR consists of a set of libraries and application examples for STM32L4 Series MCUs acting as hosts for cellular connectivity applications.



The colors highlight the different parts, Light Green for applications, light Blue for Middlewares, dark Blue for HAL, Purple for hardware.

L4 family STM32 MCUs are currently scoped, and more families are to be added in the future. However it is easy to port the Cellular middleware on other STM32 MCU families.

4 Applications provided

A single application, Cellular App, is provided with examples of all the supported hardware configurations. It allows the Cellular middleware to be tested, and contains the following features:

  • ECHO to provide an example of connection and data exchanges using the TCP or UDP (connected or not-connected mode) socket protocols. By default one instance of ECHO is started but a second one can be started to test multiple-socket configurations
  • PING to test the access to a remote machine
  • Performance to test throughput.

At boot, after hardware initialization, Cellular App is started and this then starts the Cellular middleware.
X-CUBE-CELLULAR also contains a command tool (to interact with the firmware through a terminal on a connected PC)

The following hardware setup (B-L462E-CELL1) embeds more than the others. It also brings BSP for sensors and display, and a complete IoT application: displays information on the screen, reads humidity, pressure, temperature sensors, and uses Cellular middleware to exchange with the network (Echo, Ping).

5 Board support package

The X-CUBE-CELLULAR targets 2 goals, the first is to demonstrate the Cellular middleware based on multiple hardware setups. The second is to demonstrate the B-L462E-CELL1.
In the X-CUBE-CELLULAR the BSP is only available for B-L462E-CELL1 boards.
For users who need to develop an application that uses sensors on supported hardware setups other than B-L462E-CELL1, please refer to the Cube FW deliveries to copy/paste/adapt for cellular usage.
The B-L462E-CELL1 BSP is composed of 2 parts, the board part (Drivers/BSP/B-L462E-CELL1) and the component part (Drivers/Components/).
All the required component drivers are listed below:

  • hts221 (capacitive digital sensor for relative humidity and temperature) from STMicroelectronics
  • lps22hh (260-1260 hPa absolute digital output barometer) from STMicroelectronics
  • lsm303agr (Ultra-low-power 3D accelerometer and 3D magnetometer) from STMicroelectronics
  • ssd1315 (display driver for 0.96-inch 128 x 64 OLED / SPI Ref=9OL9935701000)
  • M24128 (128-Kbit serial I²C bus EEPROM) from STMicroelectronics
  • w25q80ew (8 Mbit-bit hence 1 MByte Serial Flash Memory) from Winbond
  • mt25qu512 (MT25Q Serial NOR Flash, 512 Mbit hence 64 MByte) from Micron.

Notes:

  • An EEPROM driver is not needed because the board BSP uses the HAL API directly
  • The w25q80ew QSPI is internal Flash memory located in the Murata module
  • The mt25qu512 QSPI is an external Flash memory soldered on the board outside the module
  • The 2 QSPIs are exclusive and the default is the internal one. To use external QSPI soldering is needed, information about this is available in the board user manual.


QSPI drivers are to be provided into next delivery, X-CUBE-CELLULAR V6.1.0.

6 X-CUBE-CELLULAR dynamics

The following sequence diagram shows the Cellular middleware setup from an application, more sequence diagrams are to be provided soon.

Application setups the middleware


7 Miscellaneous information

To support low power, the application must close the socket before entering low power mode.