Disclaimer: I don't have a lot of knowledge about hardware and cellular networks so these concepts are quite new for me, I apologize for the lack of knowledge however I'm eager to learn more and make this work!

I'm attempting to achieve a LTE connection on the Raspberry PI 4 using an eSIM.

List of requirements:
-Raspberry PI 4
-eSIM module (M.2 connector)
-M.2 to usb adapter
-WWAN antenna, optionally a GPS antenna

For the eSIM module i decided to use the Quectel EM120R-GL which has built in eSIM support it's used in some Lenovo Thinkpads and people have gotten it to work with Linux, since kernel version 5.13 it should work with the mhi_pci_generic driver. The WWAN antenna is listed in reference.


The M.2 connector has a B key, so our USB to M.2 adapter needs to have B key compatibility. I mainly chose to connect it via an M.2 connector since it's easy, no need to solder anything or fiddle around with things and well with a USB to M.2 adapter it would be easily portable to other devices as well. So I decided to use below M.2 to USB adapter, it supports B key cards and the exact dimension our Quectel EM120R-GL has.


So all that's left to do is to plug the card in the M.2 to USB adapter and screw it down then plug it in, now this should work and this module should be connected / recognized. We also connect the WWAN antenna and now we should be ready to configure our eSIM profiles / connect. On Android there are API's for managing eSIMs, however on Linux as far as my knowledge goes there are no API's like that around so I suppose one must manually setup eSIM profiles via AT commands?

I have searched a lot on the internet but it seems to me like there is quite a lack of information about eSIMs especially for IoT devices, I really hope someone can help or at least guide me in the right direction! Password Thank you!

  • 3
    Why do you think setting up eSims is specific to the Pi? Surely they would be set up in the same way on every platform.
    – joan
    Dec 17, 2021 at 8:17
  • Well not necessarily but in my case I'm specifically trying to set it up with the PI since it's the most popular SBC / IoT device around figured I'd give it a try here. I've scattered around on tons of forums articles I've even looked at the GSMA specification yet i just can't figure it out or find any articles about people who have done this before, even with other devices.... :( If you feel like there is a more appropriate place to ask, please guide me to them!
    – icyli2
    Dec 17, 2021 at 8:27
  • Why do I always get down voted? It pushes my question to the bottom...... I literally researched this topic, read whitepapers it's not like it's an easy thing to do? Like honestly what do you expect I stated I'm not good with hardware recently getting into it I'm eager and trying to learn yet that deserves a down vote? There are 0 articles of people who have done this before how do you even expect me to research this topic whilst eSIMs are only recently getting popular there is slim to no information about them. Correct me if I did something wrong don't just down vote and leave.
    – icyli2
    Dec 17, 2021 at 10:56
  • While I don't have an answer this looks like a similar project to a current one of mine, feel free to dm me on discord (same username). I cant comment (dont have enough rep so i have to answer).\ - A
    – ath0rus
    Aug 15, 2023 at 9:47

1 Answer 1


The Quectel EM120R-GL is not an eSIM module, it is a wireless modem module or WLAN module, broadband module, etc. While the EM120R-GL does support the use of an eSIM, it does not include one.

An eSIM is a physical device which it appears you don't have. It is just like a SIM card, but instead of being a card that fits into a socket, it is designed to be soldered directly to a circuit board. The eSIM form-factor, footprint, pinout and other interfacing details are carefully specified by ETSI TS 102 671 MFF2. The Lenovo Thinkpads you mentioned have an eSIM soldered to their mainboard near the M.2 WLAN socket.

In your setup, you could replace the M.2 to USB adapter with one which provides an eSIM. I've not seen one that does this, but it is certainly possible. Or find a different modem module which provides an integrated eSIM, not just eSIM support. The eSIM must have RST, CLK and I/O pins connected directly to the modem module, so putting it somewhere else on the Raspberry Pi USB tree will not work.

By far the easiest option would be to use a regular SIM card in the slot provided by your M.2 USB adapter. Purchasing and installing an eSIM is possible, but significantly more complicated.

Not the answer you're looking for? Browse other questions tagged or ask your own question.