Prepare your device for Advanced eSIM

Under SGP.32, the eUICC starts every profile operation. The eUICC has no radio of its own, so it asks your device to open an IP connection. The eUICC also sends your device instructions to run. Your device supplies both.

This page lists what that takes, and how to check each item before you build at volume.

This page isn’t a certification, and it isn’t a compatibility list. Nearly every IoT module released in the past five years can do what SGP.32 needs. The question is whether the function is switched on in the firmware build you ship. Two devices with the same part number often answer that differently, so the only reliable check is a test on your own hardware.

How to use this page

Settle the three design decisions first, because they change which checks apply to you.

The connection checks decide whether the eUICC can reach the emnify eIM at all. The profile switch checks decide whether an operation completes once the eUICC can reach the eIM. The recommended checks don’t stop your device from working. They decide how fast anyone can help you when something goes wrong.

Settle these three before you design

Which IPA runs

The IoT Profile Assistant (IPA) runs either in the eUICC (IPAe) or in your device operating system (IPAd). Almost every device sends the TERMINAL CAPABILITY command to the SIM, and Tag ‘84’ inside that command is optional. The eUICC reads Tag ‘84’ to decide which IPA runs.

Your deviceResult
Sends no TERMINAL CAPABILITY command at allThe eUICC keeps IPAe active
Sends TERMINAL CAPABILITY without Tag ‘84’The eUICC keeps IPAe active
Sends TERMINAL CAPABILITY with Tag ‘84’ and the related dataYour device has a working IPAd, so the eUICC suspends IPAe

If you plan to implement IPAd, your device must send TERMINAL CAPABILITY with Tag ‘84’. Without that tag, the eUICC keeps IPAe active and the ES10 functions your IPAd needs stay disabled. Tell emnify which mode you intend to use early, because a fixed configuration is also an option.

Buffer size

Size your Bearer Independent Protocol (BIP) buffers before you commit the firmware build. See check 6 below. No AT command reports this value back, so you can’t discover it later on a bench.

The buffer carries the IPAe data trunk, so it matters wherever the eUICC keeps IPAe active. Where your device runs its own working IPAd, the IPAd manages the data flow instead.

Poll timers

The eUICC schedules its own next poll using your device’s timers, and it needs at least five of them. By default, the eUICC polls the eIM at every device restart and every 24 hours.

Checks that decide whether the eUICC can poll the eIM

Miss any of these and the eUICC never polls. Your device looks healthy on the network and does nothing with its profiles.

CheckYour device must supportHow to check it
1At least one 3GPP access technology (GERAN, UTRAN, or E-UTRAN), plus UDP over IP for DNS and TCP over IP for HTTP.Confirm the module offers UDP and TCP to its BIP stack, not only to your application processor. An application that opens sockets successfully doesn’t prove this.
2The terminal requirements in ETSI TS 102 221.Ask your module vendor for the conformance statement.
3SIM Toolkit transport: TERMINAL PROFILE that sets byte 33 bit 1 for the DNS server address request (letter class ‘aa’), plus FETCH and TERMINAL RESPONSE.Capture TERMINAL PROFILE at boot and check byte 33 bit 1. Without it, the eUICC can’t ask for a DNS server, and the eIM hostname never resolves.
4POLL INTERVAL, POLLING OFF, TIMER MANAGEMENT with at least five timers, ENVELOPE (TIMER EXPIRATION), and SET UP EVENT LIST.On the bench, confirm your device honors POLL INTERVAL and delivers TIMER EXPIRATION. Without these, the eUICC polls once at boot and then goes quiet.
5BIP as defined in ETSI TS 102 223: OPEN CHANNEL (UDP and TCP over IP), the default bearer, the DNS server address request (class ‘aa’), CLOSE CHANNEL, RECEIVE DATA, SEND DATA, GET CHANNEL STATUS, and ENVELOPE (EVENT DOWNLOAD) for data available and channel status.Confirm OPEN CHANNEL succeeds in an APDU trace. This is the most common reason an eUICC never polls.
6BIP transmit and receive buffers of at least 1500 bytes each. Buffers of 2 KB or 4 KB perform better.Read the buffer size from the module datasheet or the firmware release notes. This buffer carries the IPAe data trunk, so it applies wherever the eUICC keeps IPAe active. Undersized buffers produce the hardest case to spot: the eUICC polls normally and the profile download stalls partway.

Checks that decide whether a profile switch completes

Your device polls the eIM, and a profile operation doesn’t take effect.

CheckYour device must supportHow to check it
7REFRESH, at least Mode 4 UICC RESET.On the bench, activate a second profile and confirm your device re-attaches without a manual power cycle.
8A new network selection after a SIM or USIM update.Use the same test as check 7. Without it, your device stays on the previous profile’s network.
9ENVELOPE EVENT DOWNLOAD for location status, call connected, call disconnected, access technology changed, and network rejection.Ask your module vendor for its SIM Toolkit event support, or confirm it in a trace. Without network rejection events, the eUICC can’t react when a network turns your device away.

These checks don’t stop your device from working.

CheckYour device should supportWhy it matters to you
10AT+CSIM, or another interface that sends raw APDUs to the eUICC.Without it, you can’t read the EID, run bench diagnostics, or implement IPAd.
11A unique IMEI in the 3GPP TS 23.003 format, and PROVIDE LOCAL INFORMATION for IMEI, location information, NMR, date and time, and access technology.These fields identify your device when you open a support ticket.
12Reading the EID from the eUICC.Lets you capture the EID yourself instead of asking emnify for it.
13An eUICC that has no installed profile.A blank eUICC can otherwise look like a failed SIM to your device, at first boot and during recovery.
14The GSMA-EICTA document “Security Principles Related to Handset Theft.”A compliance obligation. It has no effect on eSIM operations.

If emnify triggers a poll by SMS

Where you agree with emnify to trigger a poll by SMS, your device also needs SMS management, SMS-PP MT, and ENVELOPE (SMS-PP DOWNLOAD). Confirm your module passes SMS-PP to the SIM instead of consuming it. Otherwise the eUICC polls on its own timer, and your device doesn’t need any of this.

If your device doesn’t poll the eIM

Open a support ticket with these six facts. The last one decides where your case goes, so include it even if the others take longer to gather.

  • Your account reference
  • Device make and model
  • Modem or radio module make and model, which is often not the device brand
  • Modem firmware version, if your device exposes it
  • The EID of the affected eUICC, and the ICCID of the profile
  • Whether the eUICC is polling the eIM, which you can see as the last eUICC poll time on the eSIM tab in Connected Devices

Standards referenced

  • GSMA SGP.32, Annex A
  • ETSI TS 102 221, terminal requirements and TERMINAL CAPABILITY
  • ETSI TS 102 223, SIM Toolkit and BIP
  • ETSI TS 124 008
  • 3GPP TS 23.003, IMEI format
  • 3GPP TS 31.111, USIM Application Toolkit
  • GSMA-EICTA, Security Principles Related to Handset Theft

Test early, on the hardware you ship. A firmware gap costs an afternoon on a bench and a redesign in the field.

For what you can do with the profiles once your device polls the eIM, see Advanced eSIM.