2.1. Setup: hardware and software

2.1.1. Cinterion® IoT SDK installation

2.1.1.1. Install the Cinterion® IoT SDK

The Cinterion® IoT SDK is distributed by Thales as an archive. Extract its content on your system.

In the following sections, {Cinterion SDK} refers to the directory that directly contains the README.txt file.

2.1.1.2. Set up the Cinterion® LGA DevKit

  1. Set up the Cinterion module:
    • For the EXS82 module, use the LGA DevKit S+M.
    • For the PLS63 module, use the LGA DevKit L.
    • Screw the socket to the PCB.
    • For the EXS82 module, put the SMALL fixing frame in the socket.
    • For the PLS63 module, put the LARGE fixing frame in the socket.
    • Put the module in the fixing frame.
    • Close the socket.
  2. Check hardware configuration of LGA DevKit (both EXS82 and PLS63):
    • Set PWR and ASC0 switches to USB.
    • Place jumpers on: ASC0_A, CONTROL, B+BB, B+RF, A.
    • For GPIO test with STATUS LED blinking, place jumper on: GPIO5
    • (optionnal) For GPIO test in input, place button with pull down on: GPIO6
  3. Insert the SIM card.
  4. Plug the wideband antenna into either the Main or the DRX ports.
  5. Connect the dev kit to your PC using the Native USB port.
  6. Press on the ON button to start the firmware.

2.1.1.3. Configure the connection

  1. Follow the section 2 Setup of the SDK Getting_Started.pdf. On Windows 10, make sure to use the SDK drivers to have the names correctly displayed.

  2. Note the following COM ports: Cinterion PID 0X006C USB Modem and Cinterion PID 0X006C USB Com Port2. They will be refered as the modem COM port and the logging COM port respectively. If these devices are not accessible, make sure the drivers are updated.

  3. Configure the logging interface:

    {Cinterion SDK}/tools> python log.py config -d "COMX,460800" -p COMY
    COMX,460800
    

    where COMX is the logging COM port and COMY the modem COM port.

  4. Listen to logs:

    {Cinterion SDK}/tools> python log.py read
    {Logs will appear here}
    

    The command must be repeated if the module is rebooted (broken connection).

2.1.1.4. Serial interfaces

The serial interfaces of the DevKit are used as follows:

  • USB (native):
    • Virtual Port “modem”: AT commands (used by app.py / fs.py)
      • It is also the interface to use for the ECOM-MOBILE mock
    • Virtual Port “logging”: Logging interface (used by log.py)
  • ASC0:
    • Serial communication: applications can communicate through this interface using ECOM-COMM APIs.
      • It is also used for the Cinterion mock (MQTT, AT commands, ..)
  • ASC1:
    • Serial communication: applications can communicate through this interface using ECOM-COMM APIs.

2.1.2. MICROEJ SDK installation

2.1.2.1. Install the MICROEJ SDK

The MICROEJ SDK is distributed by MicroEJ with an Eclipse-based IDE.

Follow instructions in Download and Install.

2.1.2.2. Create a workspace

Open the IDE and create a workspace.

2.1.3. Cinterion evaluation package installation

2.1.3.1. Import the module repository

  • In the workspace, select File > Import > MicroEJ > Module Repository,
  • Select Select file and browse to the file cinterion-offline-repository-<version>.zip,
  • Click on Apply and Close.

2.1.3.2. Import the projects

For Cinterion-Platform-Clangv4_cortexa7-<version>.zip, cinterion-demo-kernel-<version>.zip and cinterion-demo-application-<version>.zip:

  • In the workspace, select File > Import > General > Existing Projects into Workspace,
  • Select Select archive file and browse to the archive file,
  • Select all projects and click on Finish.

2.1.3.3. Build the VEE Port

  • The Security implementation is based on the Mbed TLS v2.28.0 LTS Third Party Library. The BSP project must contain Mbed TLS v2.28.0 LTS Third Party Library sources in cinterion-threadx-bsp/thirdparty/mbedtls directory. Before building the VEE Port project, please clone Mbed-TLS repository and checkout to the LTS tag v2.28.0 with the following command:

    > git clone -b v2.28.0 https://github.com/Mbed-TLS/mbedtls.git
    
  • [Optionnal] To use the DTLS mock, download the following Bouncy Castle v1.7 libraries:

    and drop the files in the cinterion-threadx-configuration/dropins/mocks/dropins folder, create the folder if it does not exist.

  • [Optional] For use with a production license, in cinterion-threadx-configuration/module.properties change the com.microej.platformbuilder.architecture.usage property value to prod.

  • For smaller footprint on EXS82 modules with mono-sandbox application only, the Tiny VM capability must be enabled: open cinterion-threadx-configuration/cinterion.platform file with a text editor and remove the kf group.

  • In the Package Explorer view, right-click on cinterion-threadx-configuration and click on Build Module.

  • Detailed documentation is available in the VEE Port sources, at the location of the import, to open with any rst viewer or text editor, by default: {workspace}/Cinterion-Platform-Clangv4_cortexa7-<version>.zip_expanded

    • README.rst: General VEE Port documentation.
    • CHANGELOG.rst: VEE Port changelog.
    • RELEASE NOTES.rst: VEE Port release note.
    • cinterion-threadx-bsp/projects/cinterion/README.rst: Advanced VEE Port documentation.
  • Configure the VEE Port with your environment: in cinterion-threadx-bsp/projects/cinterion/scripts, copy set_local_env.bat.tpl to set_local_env.bat and set the variables.

2.1.3.4. Demo configuration

The modem can be preconfigured with modem connectivity information.

To enable the modem connectivity, open a terminal to the modem COM port with baudrate 460800:

  1. Check if the SIM card needs to be unlocked:

    > AT+CPIN?
    +CPIN: READY
    OK
    
  2. Unlock the SIM card if previous result isn’t READY:

    > AT+CPIN={PIN}
    OK
    

    where PIN is the PIN code (e.g. 0000). PIN information is stored and SIM will be automatically unlocked on each startup.

  3. Check the network attachment status:

    > AT+CGATT?
    +CGATT: 1
    OK
    

    This may not be successful at first attempt. Retry on failure.

  4. If the status is not 1, trigger and wait for network attachment:

    > AT+CGATT=1
    OK
    

    This may not be successful at first attempt. Retry on failure. If the command still fails after a few attempts, and the previous command returns 0, check your SIM card, your GPRS antenna, and potentially, the operator configuration.

  5. Configure the PDP context:

    > AT+CGDCONT={CID},"IP",{APN}
    OK
    

    where CID is the context ID (e.g. 1) and APN is the name of the APN to use (e.g. "myapn"). This configuration will persist on each startup.

  6. Activate the internet connection:

    > AT^SICA=1,{CID}
    OK
    

    where CID is the context ID (e.g. 1). If this command succeeds, the modem is correctly configured.

Also, the demo contains several application configurations (MQTT host, topic, …)

To configure the application:

  1. Edit the file {Package}/config/demo.config to set the appropriate configuration where {Package} is the path to the Cinterion MICROEJ evaluation package.

  2. Push the file on the filesystem of the Cinterion module, using the Cinterion SDK tools:

    {Cinterion SDK}/tools> python fs.py download {Package}/config/demo.config A:/demo.config
    Sent 100 %
    
  3. If configured, push the CA certificate on the filesystem of the Cinterion module:

    {Cinterion SDK}/tools> python fs.py download {Package}/config/mosquitto.org.crt A:/mosquitto.org.crt
    Sent 100 %
    

Note

These configurations are persistent, the above instructions are not required after a reboot of the module.