SIM Card Programming
To connect commercial-off-the-shelf (COTS) user equipment (UE), a SIM card needs to be programmed with specific parameters. This guide walks through programming SIM cards using theOpen Cells UICC programming tool, which allows configuring the necessary authentication and identification parameters for network access.
Prerequisites
You will need theUICC software and a USB SIM card programmer from Open Cells. Ensuremake andgcc are installed.
UICC Software Setup
The following steps can be done on the Ubuntu host machine.
DownloadUICC v3.3 programming tool:
wgethttps://open-cells.com/d5138782a8739209ec5760865b1e53b0/uicc-v3.3.tgz
Extract and compile:
# Extract packagetarxzfuicc-v3.3.tgz# Compilemakecleanmakeprogram_uiccmakeprogram_uicc_pcsc
Programming SIM Card
Insert the SIM card and connect the USB programmer.Read current values:
sudo./program_uicc--adm1Example output:
Existing values in USIMICCID: 89330061100000000831WARNING: iccid luhn encoding of last digit not doneUSIM IMSI: 208920100001831PLMN selector: : 0x02f8297cOperator Control PLMN selector: : 0x02f8297cHome PLMN selector: : 0x02f8297cUSIM MSISDN: 00000831USIM Service Provider Name: open cellsNo ADM code of 8 figures, can't program the UICC
Now let’s program the SIM card with the network parameters.
Note
The parameters (key,opc,spn) must match your core network configuration, particularly the Access Management Function (AMF) settings. These values should align with the core network setup defined in the AMF. In OAI tutorials, these parameters are typically configured in an SQL file that initializes the network. Make sure thekey,opc, andspn values match your network configuration, and verify that the IMSI number is registered in your OAI database (config/common/oai_db.sql).
In this example, 262 represents Germany, and 99 is unassigned. These parameters are used for a test UE in the OAI tutorial setup.
sudo./program_uicc--adm12345678\--imsi262990100016069\--isdn00000001\--acc0001\--keyfec86ba6eb707ed08905757b1bb44b8f\--opcC42449363BBAD02B66D16BC975D77CC1\--spn"OpenAirInterface"\--authenticate
Example output:
Setting new valuesReading UICC values after uploading new valuesICCID: 89330061100000000831USIM IMSI: 262990100016069PLMN selector: : 0x02f8997cUSIM MSISDN: 00000001USIM Service Provider Name: OpenAirInterfaceSucceeded to authenticate with SQN: 352Set HSS SQN value as: 384