Quectel EC25 Modem Android Support for i.MX 8 based Nitrogen Platforms

Published on May 26, 2021

We are excited to announce the EC25 modem is now fully supported in our Android 10 BSP for all our Nitrogen8 family of platforms.

EC25 modem details

The Quectel EC25 mPCIe Modem is a series of LTE category 4 modules adopting standard PCIe Mini Card form factor.

It is optimized for M2M and IoT applications, and delivers 150 Mbps downlink and 50 Mbps uplink data rates.

Here is the full datasheet:

This modem has several possible configurations depending on region of use (EMEA, Americas, Asia).

Boundary Devices has been offering this modem as an accessory since it was fully supported in Linux:

Android support

RIL integration

Luckily for us, Quectel provides great support to integrate their solution in Android.

Their package is now part of our default BSP tree in order to ease our customers life.

The integration was done for our upcoming i.MX 8M Mini-based Tablet design which incorporates the modem. Here is what it looks like when running the Android OS:

LTE Web Browsing Settings SIM Status

Note that the Access Point Names (APN) xml file was taken from Google AOSP repository:

However, in case one of the settings is not correct or up-to-date, you can change the APN from the Settings application:

APN Settings

Build instructions

As the previous section mentions, this integration already exists for our Nitrogen8MM Tablet target.

If you're new to Android on our platform, we strongly recommend reading our latest release post:

Once you are setup, you can try these commands:

$ source build/envsetup.sh $ lunch nitrogen8mm_tab-userdebug $ ./imx-make.sh -j10

Or if you want to integrate the modem to another platform, we recommend looking here for inspiration:

In case you have troubles integrating those patches for another Nitrogen platform, feel free to contact us.

When everything goes according to plan, you should see the following on your console

nitrogen8mm_tab:/ # getprop | grep -iE 'gsm|ril' [gsm.current.phone-type]: [1] [gsm.defaultpdpcontext.active]: [true] [gsm.network.type]: [LTE] [gsm.operator.alpha]: [F-Bouygues Telecom Bouygues Telecom] [gsm.operator.iso-country]: [fr] [gsm.operator.isroaming]: [false] [gsm.operator.numeric]: [20820] [gsm.sim.operator.alpha]: [Bouygues Telecom] [gsm.sim.operator.iso-country]: [fr] [gsm.sim.operator.numeric]: [20820] [gsm.sim.state]: [LOADED] [gsm.version.baseband]: [EC25EUGAR06A03M4G] [gsm.version.ril-impl]: [Quectel_Android_RIL_Driver_V3.2.2] [init.svc.ril-daemon]: [running] [ro.boottime.ril-daemon]: [8981753125] [ro.ril.wake_lock_timeout]: [300]

 That's it! You should now be able to fully use the modem under Android!