Librem5 5G is here! Working alternative modem setup tested successfully

(tl; dr: *It is possible to upgrade Librem5 to 5G by using an alternative modem, Sim8202G. At the moment it requires Mobian - potentially it is possible with other up to date OSs as well. It’s not quite perfect but better than the old setup. *)



Today (24/05/2025), at 11:03 Helsinki, Finland time, I managed to make the first 5G voice phone call with Librem5, making it probably the first of it’s kind - as far as it seems that there are no mentions online of linux phones making 5G calls (although, I’m sure they have been made). I called another phone on my table (old UBports - of course “L2L” #MobileLinux) and with earphones could tell that voice was transmitting both directions (it’s a bit tricky so close). :partying_face:

After weeks (and months, and this isn’t event he first time testing alternative modems) of tinkering and hitting annoying brick walls, the feeling was like a last ditch effort to check “one more thing” - and unexpectedly everything clicked together. The Simcom modems have been a bit annoying as they haven’t been perfectly compatible with modemmanager. This is to say, several things had to come together: there’s the modem (which has to be the right size and specs), the audio connection (from the modem card to the internals and all the way to the speakers and mic), the modem management and calling apps (is the modem recognized and usable) and also the network (there are not only differences in whose services you use but also what type of service/plan). Sooo many little things to check and apparently it was all almost perfectly ready - just needed to have the right combo.

As testimony, getting data to work (now average about 120/45Mbps, peaking 136/50 at best vs. 80/45Mbps and worse in my local network with my current data plan) last week was “plug and play” (the Gnome settings for the modem for instance already has 5G available when a suitable modem is seen - current PureOS couldn’t see it and there was nothing to indicate that 5G could even be an option for the system) after I started testing with up to date Mobian, but there was no life using PureOS (normal, nor backported; byz nor crim). [apologies for that horrible sentence and the ones to come - tired] The only real fix that I did may have been to modprobe snd-usb-audio and add myself to dialout group - both of which may not even be needed. And as I was testing, I used a prepaid sim card. For some reason voice calling nor audio availability did not appear (I spend a week trying to solve audio from m.2 pcm from wiring diagram to all the way to audio sinks - for some reason bm818 is still haunting inside the system) until I happened to use instead a normal post paid contract sim from another operator (I had tried these sims in reverse with normal L5 and then only the prepaid found network service - no idea why).

[Edit to add: Looking back, most of my time went in several dead ends and the path to solution seems much shorter than the actual journey with all the resets and backtracking. This was less of a technical deepdive in the end and more of realizing how to make sure the already made buildingblocks form a functioning house - not how I’ve learned to approach linux problems, and it’s kinda upsetting. Speaks more about how linux apps and modules and configs are updating - we may miss what the combinations can do.]

The second call was to operator number service and the quality of heard audio was perfect - unfortunately (and still a mystery) for those calls I was not heard (and changing audio settings didn’t seem to help). So, not perfect (and these things happen), but definitely verified working L5G [intentional]. Other oddity was that there’s no ringing sound on L5G when making a call (I wonder if it’s just that Mobian doesn’t have a ring sound available for outgoing - as the Mobile Settings app is empty by default on feedback sounds and only has files setting for inbound ringing). These kinds of things are the reason to spread the word: there are still a few little tiny details that need to be checked and probably some code needs to be written - the more there are testers, globally, the better. But these also seem like something that can be fixed.

I am hoping the PureOS Crimson (and Dawn) development gets a boost from this, as Librem 5 could be updated (remembering that there are two variations of the motherboard and us original L5 owners might want to upgrade by just switching that and the modem. And is anyone has a spare or otherwise broken device laying around, I’ll take donations - also a new replacement screen or a flexboard would be appreciated). At this point this is a simple thing to get more out of the device but also a proof that L5 hardware and software still have potential. L5 needs the tweaks PureOS has (for minimizing power consumption etc.), or Mobian needs to be tweaked.

For now, I’m going to set this project aside (other things, life etc.). I hope some of you will try it out. [I expect it’s going to take a t least a week or few for anyone else to get their hands on that modem]



Process, as far as I can remember what I did (at your own risk, as always):

  • Physical card installation (see, for instance: Disassemble Librem 5 – Purism)
  • Antennas to the connectors (see pic, be careful when bending the antenna wires, don’t do sharp bends)
  • Possibly re-flash your operating system (see, for instance: Tips & Tricks · Wiki · Librem5 / Librem 5 Community Wiki · GitLab), in this case Mobian (I used one of the weekly images and Disks to write it to the L5)
  • Possibly do modprobe to make sure you have Simcom “option” (modem) and usb audio enabled in kernel
  • Find appropriate sim (service and service provider network - prepaid may not work - you may want to test, using friends or at a shop, if 5G appears)
  • Check for ringing and audio when calling (if it doesn’t work, Calls just mutely tries to make a call, but it just fails after a while; and if it works, it may not ring on caller/L5 end)


Simcom Sim8202G m.2 modem

My impression is that it seems to generate a bit more heat but that could also be that I’ve been running speed test sites a lot lately. No separate VolTe fixes needed - just worked. It has 4 antenna connectors but needs only two, as L5 only has two (for basic operating only ANT0 and ANT3, as per HW manual - I also tested with an additional third antenna on ANT1 but that didn’t seem to do much; ANT2 has also GNSS, which L5 does separately). In addition to speed and functional improvement, this modem should be a true global modem, covering all used bands even with two antennas (one or two rarer may be missing), but testing from users is needed to confirm. In general it also seems more stable with connection than BM818.

Basic info:
Dimensions(mm): 42.0 x 30.0 x 2.3
Temperature: -30°C ~ +70°C (normal; manual has “HW Extended operation temperature: -40 to +85”, so same as BM818)

Freq bands, Sub-6G: n1,n2,n3,n5,n7,n8,n12,n20,n28,n38,n40,n41,n48,n66,n71,n77,n78,n79
Freq bands, LTE-FDD: B1/B2/B3/B4/B5/B7/B8/B12/B13/B14/B17/B18/B19/B20/B25/B26/B28/B29/B30/B32/B66/B71
Freq bands, LTE-TDD: B34/B38/B39/B40/B41/B42/B43/B48
Freq bands, LAA: B46
Freq bands, WCDMA: B1/B2/B3/B4/B5/B8

Data Transfer Sub-6G: 2.4Gbps(DL)/500Mbps(UL)
Data Transfer LTE: 1Gbps(DL)/200Mbps(UL) [bm818: 150/50]
Data Transfer HSPA+: 42Mbps (DL)/5.76Mbps(UL) [bm818: same]
Protocol: TCP/IP/IPV4/IPV6/Multi-PDP/FTP/FTPS/HTTP/HTTPS/MQTTS/DNS/SSL3.0

Power consumption:
Typical in sleep: 2-3mA (depending on mode)
Typical in idle: 20-22mA (depending on mode) [bm818: “<40mA”]

USB Driver: Microsoft Windows Win7/Win8/Win10/Linux/Android
MBIM: Win8/Win10
NDIS: Linux/Win7/Win8/Win10
Regulatory Certifications: CCC/SRRC*/CTA*/RoHS*/REACH*/CE* [bm818: same]
Price range: 240-280 € and $ [about 5 times more than bm818 was]
Lifecycle: nearing EOL (according to one vendor and also Simcom support, but I wouldn’t be too concerned about that [as it just works])

Product page, specs and manuals: SIM8202X-M2
Collection of manuals on hardware, antennas, drivers, protocols etc. (alternative, without need for login): Index of /pdf/5G/SIM8200G/
There is a lot of good info on this card (compared to BM818) and it’s used in other applications with linux as well, that provide info.
Potentially interesting alternative in the same card family may be sim8262 (with A/E variants), as it is not so far in timeline and has a slightly improved chip but also less freq bands (not fully global) but also a bit less pricey (200-250), see table.

(ping @ChriChri - get a new modem? :wink: )

16 Likes

Installing bm818-tools will do this automatically. While bm818-anything may well be either unnecessary or even harmful if using a different modem, you presumably do still need to enable VoLTE (unless it is enabled by default on that modem? does that modem support 3G?). Note that you cannot enable VoLTE on the standard Librem 5 modem, if using bm818-tools to do it, unless you are in the dialout group.

2 Likes

I did find an undocumented AT command “AT+voltesetting” for sim8202g but that was already set to “1”, so I didn’t include it here. At this point it’s a bit hazy why I did that group addition but it was during the audio troubleshooting phase and as I said, it may not have been necessary (it didn’t hurt - but on the other hand, if and when PureOS ever officially supports this modem, I hope privileges will be checked and strict).

The modem seems to support 3G, 4G and 5G, but not 2G, which may be an issue somewhere that has shut down 3G and has 2G as fallback in rural areas.

3 Likes

Well, generically, if you want to issue any AT commands to any modem while being user purism then said user will need to be in the dialout group.

If you look at the Tips and Tricks Wiki, this is unnecessary because both methods illustrated use sudo.

In the final washup, being in the dialout group probably isn’t going to be necessary for any modem because all the necessary initialisation would be done behind the scenes as root or similar anyway. You wouldn’t normally be hacking around issuing AT commands directly as user purism.

2 Likes

Btw. as a side note, I tried using AI to solve some issues. I abandoned it, when it kept repeating that the /dev/ttyUSB4 was for AT commands (it’s 2; 4 is for audio) even after I provided correcting info. And at one point it was convinced that the modem had no audio functionality - or at least that L5 wasn’t capable of pcm audio (probably because it’s not explicitly mentioned anywhere). It got funny when I realized that it was repeating stuff from this forum as it’s main source - and most posts here are not solutions :slight_smile:

8 Likes

Some mmcli -m any info of sim8208g:

  -----------------------------------
  General  |                    path: /org/freedesktop/ModemManager1/Modem/0
           |               device id: 69bde8e7507797d3f8c0bed47be3eb523fa0a174
  -----------------------------------
  Hardware |            manufacturer: QUALCOMM INCORPORATED
           |                   model: 0
           |       firmware revision: MPSS.HI.2.0.3-00269-SDX55_CPEALL_PACK-1  1  [Aug 03 2021 13:00:00]
           |          carrier config: Elisa_Finland
           | carrier config revision: 0A015200
           |            h/w revision: 20000
           |               supported: gsm-umts, lte, 5gnr
           |                 current: gsm-umts, lte, 5gnr
           |            equipment id: 861164060034834
  -----------------------------------
  System   |                  device: /sys/devices/platform/soc@0/38200000.usb/xhci-hcd.4.auto/usb1/1-1/1-1.2
           |                 physdev: /sys/devices/platform/soc@0/38200000.usb/xhci-hcd.4.auto/usb1/1-1/1-1.2
           |                 drivers: qmi_wwan, option
           |                  plugin: simtech
           |            primary port: cdc-wdm0
           |                   ports: cdc-wdm0 (qmi), ttyUSB0 (ignored), ttyUSB1 (gps), 
           |                          ttyUSB2 (at), ttyUSB3 (at), ttyUSB4 (audio), wwu1u2i5 (net)
  -----------------------------------
  Status   |                    lock: sim-pin2
           |          unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                   state: [connected]
           |             power state: on
           |             access tech: lte, 5gnr
           |          signal quality: 78% (recent)
  -----------------------------------
  Modes    |               supported: allowed: 3g; preferred: none
           |                          allowed: 4g; preferred: none
           |                          allowed: 3g, 4g; preferred: 4g
           |                          allowed: 3g, 4g; preferred: 3g
           |                          allowed: 5g; preferred: none
           |                          allowed: 4g, 5g; preferred: 5g
           |                          allowed: 4g, 5g; preferred: 4g
           |                          allowed: 3g, 5g; preferred: 5g
           |                          allowed: 3g, 5g; preferred: 3g
           |                          allowed: 3g, 4g, 5g; preferred: 5g
           |                          allowed: 3g, 4g, 5g; preferred: 4g
           |                          allowed: 3g, 4g, 5g; preferred: 3g
           |                 current: allowed: 3g, 4g, 5g; preferred: 5g
  -----------------------------------
  Bands    |               supported: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, 
           |                          utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, 
           |                          eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, 
           |                          eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, 
           |                          eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39, 
           |                          eutran-40, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48, 
           |                          eutran-66, eutran-67, eutran-71, utran-19, ngran-1, ngran-2, ngran-3, 
           |                          ngran-5, ngran-7, ngran-8, ngran-12, ngran-20, ngran-28, ngran-38, 
           |                          ngran-40, ngran-41, ngran-48, ngran-66, ngran-71, ngran-77, ngran-78, 
           |                          ngran-79
           |                 current: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, 
           |                          utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, 
           |                          eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, 
           |                          eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, 
           |                          eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39, 
           |                          eutran-40, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48, 
           |                          eutran-66, eutran-67, eutran-71, utran-19, ngran-1, ngran-2, ngran-3, 
           |                          ngran-5, ngran-7, ngran-8, ngran-12, ngran-20, ngran-28, ngran-38, 
           |                          ngran-40, ngran-41, ngran-48, ngran-66, ngran-71, ngran-77, ngran-78, 
           |                          ngran-79
  -----------------------------------
  IP       |               supported: ipv4, ipv6, ipv4v6
  -----------------------------------
  3GPP     |                    imei: [redacted]
           |           enabled locks: fixed-dialing
           |             operator id: 24405
           |           operator name: FI elisa
           |            registration: home
           |    packet service state: attached
  -----------------------------------
  3GPP EPS |    ue mode of operation: csps-2
           |     initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
           |      initial bearer apn: internet
           |  initial bearer ip type: ipv4v6
  -----------------------------------
  SIM      |        primary sim path: /org/freedesktop/ModemManager1/SIM/0
           |          sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
           |                          slot 2: none
  -----------------------------------
  Bearer   |                   paths: /org/freedesktop/ModemManager1/Bearer/2
           |                          /org/freedesktop/ModemManager1/Bearer/1
4 Likes

Woah, this is awesome, so this talk about us being able to keep our phone current (without needing to throw it away and buy new ones all the time) is not just marketing, it’s actually real! :wink:

So far, I got my phone in 2022, and in three years I’ve replaced the wi-fi card with a better one, replaced the battery to have as-new battery life, replaced a damaged USB board, and it looks like I may replace the 4G modem with one that supports 5G in the near future. And I’m thinking of changing to another Linux distribution (Mobian).

Don’t think I could have done much, or indeed any, of that on my old Samsung phone. :slight_smile:

8 Likes

Just for funzies, as the Dl speed is quite good already, I got to wondering: how fast could L5 download, in theory? The sim8202g has theoretical limits of 2.4Gbps(DL)/500Mbps(UL) for “sub-6G” (which I take to meaning 5G specific frequencies and protocols) and 1Gbps(DL)/200Mbps(UL) using LTE (which it seem to be doing in my current network and with L5’s antennas). This is much faster than the theoretical upper limits of bm818, 150/50. Real world is never as fast and L5 has adequate but less than super optimal antennas.

But setting those aside, what internal parts are the bottleneck? I have a hunch that L5 (and any currently existing phone for that matter) is not able to handle 1Gbps or 2.4Gbps top speeds of data download. Upload speeds either - maybe peak, but not consistently. Is the USB setting the limits for this (somewhere around 200-480Mbps range, maybe), as it does with the memory card? Or is it something else?

2 Likes

Yes.

Absolute theoretical limit 480 Mbit/sec. Real world limit somewhat lower. (There’s no point having a 5G modem from the point of view of download speed.)

Random question … and I apologise if you already answered but … how do you know for sure that the modem is actually using 5G for voice? for data? (given that the modem also supports 4G)

One answer to that might be “you chose the mode where only 5G is allowed”. Another answer to that is that you issued the command AT+BMRAT during a voice call / not during a voice call and it clearly indicated that 5G was in use. A third possible answer is that the plan associated with your SIM is 5G-only (but I would be a little surprised if providers were offering that - certainly in my country we are still a million miles from 5G-only being viable).

For privacy reasons therefore you would never want to connect ANT2 with this modem.

That by itself is a win for some Librem 5 customers, and probably a win for Purism if they want to switch over to a global modem.

4 Likes

Well, it is faster and more stable too. Bm818 couldn’t reach the potential maximum.

Interesting point. I’ve been so caught up on having a stable modem (the bm818 has never worked well for me here) that I’ve yet to do much testing. I’m pretty sure the actual connections - especially data - is via LTE (at better speed and stability than before). 5G comes from how the system sees it as it identifies if it’s connected via 3G, 4G or 5G (looking at upper left corner of screen). My settings are automatically “3G, 4G, 5G (preferred)” and it never drops from 5G. What I’d question here is that, due to L5 antennas, it must use the freq areas same or close to 4G (as the 5G special frequences are not available - but those are only part of the whole) but it’s using 5G protocols and algorithms to manage the signals, datastreams and network use.

When I now tested it, it still retains network connectivity but gives no 5G marking when selecting “5G only” and voice call fails. It does give 4G when selecting “4G only” [meaning also that if someone wants to limit the modem not to use 5G, it works well without it]. yet, when I select the “3G, 4G, 5G (preferred)”, it shows 5G for network. This seems like the logic is that 5G can not function without 4G (probably due to Volte needing LTE data), at least in this network. As for further testing, I’m open for suggestions (of the previous, number one done, two is a bit redundant, three is not possible) but I think more can be learnt if we’d understand how the system interprets 5G (what does it - or standards regarding 5G - consider to be 5G in order to show that symbol).

[edit to add: quick test with using ANT1 too (and additional external antenna) didn’t produce anything new on 5G so I surmise that having extra antennas does not bring 5G - it’s something else (extra antennas are not connected to frequencies or bands available, they are separate channels if I understand the manual correctly). A slight increase in DL speeds - even a bit over 200Mbps single temporary peak.]

Same with bm818 (it has three antenna connectors) and most other modems as well.

5 Likes

Truly inspiring result!

Just two questions:

  • Where are you get the additional antenna? Was it sold together with the modem or separately?
  • You mentioned about GNSS functionality. Are you trying to get satellites data? In my case L5 GNSS module shows only GPS ones, no GLONASS or BeiDou at all. So, the modem could improve this point too :).
2 Likes

That doesn’t sound good. (The term, VoLTE, tends to be used even when using 5G but maybe that indicates that the modem firmware can’t do calls over actual 5G and wants to drop down to 4G.)

Even so, that is exactly why you would want to use AT+BMRAT

1 Like

They (I have couple different - small flat to fit inside L5 back cover, a 30cm table antenna etc.) are from online radio stores. The connector is standard and there are adapters to connect even larger externals to it. I wasn’t about the specs - “works for3G/ 4G” was enough as that covers most fregs and all that the modem manual has listed. They look ridiculous and since I live in a city, there’s no real need for them to get signal.

GNSS is something I’m not testing on the modem. I’m not sure if the L5 would even receive it, how the wiring is done, since it has a separate receiver for that. For all I know, it’s only the network operator (and bad actors) that even could get that info then from the modem. True, there is potential there but it does go against the L5 security fencing of the modem.

4 Likes

I may try that. But if you missed it, the one AT command that I did check and use was “AT+VOLTESETTING=1” that the modem has. As it’s not documented, I’m not sure if it’s to enable “Volte only” or “possible to use Volte”. (it’s probably the equivalent of the BMRAT)

And what’s the definition, is Volte for 4G only or is it what 5G also uses? Noting, “VoLTE = Voice over LTE”.

[edit ot add: for a deepdive into VoLTE vs. VoNR (the 5G upgrade that is still rolled out and needs devices that suport it), see VoLTE vs. Vo5G (VoNR): A Comprehensive Technical Comparison - Cafetele Telecom Training Sim8202 supports both SA and NSA modes, so it should (?) potentially be able to do VoNR… if everything else supports it too (my network maybe uses 5G VoLTE for instance) - and I’m not sure if my current setup is using it (how would the user even know as 5G uses VoLTE too and the quality is so good with both that it’s impossible for a normal human to tell them apart - the loudspeaker may be the limitation)]

3 Likes

The datasheet says that GLONASS and BeiDou are mutually exclusive, but I don’t know how to switch your choice between them.

2 Likes

Librem 5’s module supports GPS, GLONASS, Galileo, QZSS and BeiDou, with SBAS augmentation (though GLONASS and BeiDou are mutually exclusive unless all other constellations are disabled). If you don’t see other constellations, they’re probably disabled in the module’s configuration. Following the instructions at Assisted GNSS ($1207) · Snippets · GitLab will enable them (GPS, Galileo and BeiDou to be exact, but changing the bitmask is trivial).

I’m not sure how a BroadMobi’s custom command could be useful there.

6 Likes

Oops, yes. Need to discover the equivalent command for this modem in order to work out what is actually in use at any given time. Otherwise it’s just guesswork.

2 Likes

It is true, but not for me :joy:
I even downloaded the original datasheet and protocol specification to manipulate the bitmask, but I never able to see more satellites… I will try again when make Crimson backports be ready for upgrading my Byzantium backports installation, but I have no illusions about. Thanks for the link and sorry for offtopic :innocent:

1 Like

Btw. I’m not associated with this entity, but it seems like it should be mentioned that someone has a pile of these modems used on eBay for a more decent price (from Germany): SIMCom SIM8202G-M2 M.2 Multi-Band 3G/4G/LTE/5G NR/LTE-FDD/LTETDD/HSPA+ _0.008_6 | eBay

2 Likes

Yeah, it never makes a ring sound. There is no default sound file.

2 Likes