Finding IMEI and CCID

Last updated on: March 29, 2022

This page describes how to find the IMEI and CCID of the eSIM of the Icarus. This information can be used to register the Icarus onto the actinius.io platform.

Reading IMEI and CCID through the Actinius Asset Tracker

The Actinius Asset tracker application firmware which comes pre-programmed on the Icarus will print the IMEI and CCID on the serial monitor during initialization. Examples of serial monitors that can be used are PuTTY or Tera Term (this guide will use PuTTY).

  1. Download and install your serial monitor program of choice.
  2. Open your serial monitor program.
  3. Select the COM port on which your Icarus is connected (this can be checked in the device manager).
  4. Set the baudrate to 115200 Bd.
  5. Connect the Icarus to your computer using the USB-port.
  6. Open the serial monitor (example with PuTTY given below).

Example setup of COM port and baudrate in PuTTY
Example setup of COM port and baudrate in PuTTY

When open, the serial monitor should show boot-up messages from the Icarus. The Icarus will print its board information, which contains the IMEI and CCID required for registration of the device on Actinius IO. The lines below show how the boot-up messages would look like:

[00:00:00.201,751] <inf> board_control: eSIM selected
[00:00:00.204,162] <inf> app: ** Starting the Actinius Asset Tracker Firmware
[00:00:00.205,902] <inf> actinius_config: Loaded config defaults
[00:00:00.205,902] <inf> app: Press the user button on the board to start the shell...
...
***Board information***
Application version: 1.4.2
Modem firmware version: mfw_nrf9160_1.2.3
Modem IMEI: <your-imei-here>
eSIM CCID: <your-sim-ccid-here>
[00:00:05.605,651] <inf> actinius_icarus_utils: Selecting eSIM
[00:00:05.608,978] <inf> app: LTE Link Connecting...
[00:00:05.610,412] <inf> app: GPS + LTE MODE
[00:00:07.699,310] <inf> app: LTE Link Connected!
[00:00:08.299,407] <inf> app: LTE Link connection took 2 seconds
[00:00:11.900,726] <inf> app: The device is registered on actinius.io
[00:00:41.442,413] <inf> app: GPS search initiated
[00:00:41.442,504] <inf> app: Requesting AGPS Data
...

Code for retrieving the IMEI and CCID manually

In case of writing your own firmware, the following code example shows how to retrieve the IMEI and CCID from the modem and print it on the serial monitor:

char imei[32] = {'\0',};
char ccid[32] = {'\0',};
lte_lc_normal();
modem_info_string_get(MODEM_INFO_IMEI, imei, sizeof(imei));
modem_info_string_get(MODEM_INFO_ICCID, ccid, sizeof(ccid));
lte_lc_power_off();
printk("Modem IMEI: %s \n", imei);
printk("Modem CCID: %s \n", ccid);

This code will power on the modem, retrieve the IMEI and CCID and store them in separate char arrays and then turn off the modem again. Finally, it will print the information on the serial monitor.