How to check my miniPCIe LTE module is working?

Hi everyone,
Following the friendly advice i got in this thread, i bought a Routerboard M33G and a Quectel EP06-E LTE mini PCI express module.

I finally managed to replace RouterOS with OpenWrt, and was now looking at the next step: using the mpcie module as a 4G uplink.

My understanding was that the card should just show up in the available interfaces, at the very least after installing the right packages (i've installed the packages suggested on the "How To use LTE modem in QMI mode for WAN connection" page).
Except i doesn't show up in my interfaces, and, more worryingly, the kernel log show this:

[ 1.892413] PCIE0 no card, disable it(RST&CLK)
[ 1.896771] PCIE1 no card, disable it(RST&CLK)
[ 1.901164] PCIE2 no card, disable it(RST&CLK)

Full log available here: https://paste.debian.net/1143464

I've tried moving the card between the two mpcie slots, and have booted with a SIM card inserted or not. In all three cases (slot 1, no SIM, slot 1 SIM, slot 2 SIM) the same appears in the kernel log.

Is my card simply faulty?

For more context, not long after i got it, i had to send the Routerboard back for an RMA after it stopped answering and wasn't able to reset in any way. I'm not sure now (of course) but i think i had already connected the mpcie LTE module to the board when that first Routerboard died.

I must admit i wasn't as careful as i could have been, and did manipulate the board and the card bare handed, not thinking about ESP damage. (I've been much more careful since i got the replacement board, manipulating it with rubber gloves, FWIW).

Is my mpcie LTE card dead? Is there something i can do to check?
Any advice would be much appreciated!

Lastly, i see that the RBM33G came with some extra screws and metal pods (marked with a mysterious "K-25" that only appears in Mikrotik's documentation here, so, pretty useless). They look like they can be screwed to holes on the board that are set under the mpcie cards and create an extra connection between the board and the card? I'm not sure, any advice would be appreciated.

Did you get it working? I am interested in a similar setup with a U7621-01 and EP06E as I now have unlimited data. Check this page for your routerboard, maybe you need to tape some pins https://wiki.mikrotik.com/wiki/Cellular_Quectel_modems_01

I have u7621 router with 3 miniPCIe slots and one slot is dedicated to LTE module. So very similar to yours.

Only one slot is dedicated to LTE module. I have the PCIE0 no card, disable it problem on one of my wireless cards when device is booted from cold boot (powered on)

Can you try to reboot your device (don't power off / on) while testing your slots?

This board requires some manipulations with GPIO in order to provide power to PCIe slots and configure USB port(s). I recommend to use this OpenWrt-based firmware, no manual configuration will be necessary.

Your router is different from what the OP has, it will be better to create a separate thread on your issues. You will need to tape the pins or disable USB3 on the modem.

Thanks a lot for this answer @AndrewZ.
I had understood (mistakenly, it appears) that installing the right kmod- packages would provide the kernel modules / drivers necessary to use the LTE module.

I'm looking at ROOTer and considering using it, however i'm always a little weary of using OpenWrt derivatives rather than OpenWrt itself.
Do you know if applying the necessary modifications to OpenWrt to use the module is documented somewhere? Does it requires recompiling OpenWrt entirely?

I'm happy to take this as an opportunity for further learning.

@Toomoch Thanks for finding that piece of documentation too!

To make the EP06 modem working on most of the mini-pcie slots of the RouterBoard you need to tape the USB 3.0 pins on the modem or tape the PCIE pins on the mini-pcie slot as the USB3.0 pins are not compatible with the PCIE pins - modem will not be recognized in the board.

Had completely missed this, will try that.

No need to worry about that. LTE modems use USB even if the slot is mini pcie. So those messages are expected unless you also have a wifi card or other pcie card in one of the slots.

If the modem doesn't show up as a USB device then it is probably because of one the reasons already mentioned here: some board specific gpio's must be used to enable power and/or USB to the slot. See device page,if there is one.

And if the modem supports USB3 Superspeed, then you may have to cover the pins shared with PCIe as also mentioned.

Thanks for the clarification. It was not obvious that a mini PCIe device would only show up as USB and never as PCIe.

I'm still trying to figure out what exactly i should do to make the module be recognised.
If my understanding is correct, two things need to be done, one on the card itself, one on the board.

The "you need to tape the USB 3.0 pins on the modem or tape the PCIE pins on the mini-pcie slot as the USB3.0 pins are not compatible with the PCIE pins" from the Mikrotik wiki means pragmatically putting some tape over pins 23 to 33 (or only 23+25 and 31+33?), if this picture from the Mikrotik forum (actually no, from the Quectel forum, deeper down the rabbit hole…) is to be believed:

On the board side, according to the Quick Start PDF on Mikrotik's product page, page, USB jumper section, if i plug the mpcie modem in the left-hand slot it should be enough? Or do i also need to change the jumper? In any case, both options are not too hard to test out.

Then, one needs the drivers too. I think installing the packages i mentioned above is enough, but we'll see when the board is recognised, i suppose.

All in all, to answer @Toomoch, no, haven't got it work in yet!

Some news.

The card is now recognised by OpenWrt :slight_smile:

I can confirm the need to isolate the pins 23 to 33 (so, 6 pins, on both sides) using tape and to plug it in the "left" mPCIe port, which is labeled 0.

Regarding the taping, it's a finicky job. I covered 8 pins at first (up to pin 37, so 8 pins) and that didn't work. No real idea if covering those extra 2 GND pins made a real difference or my first taping job was not well done.
This image was possibly the most helpful:

Anyway, here is the module as seen by the kernel:

# cat /sys/kernel/debug/usb/devices

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=0306 Rev= 3.10
S:  Manufacturer=Quectel
S:  Product=EP06-E
S:  SerialNumber=0123456789ABCDEF
C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

the different devices provided by the Quectel EP-06 now appear, we now have:

# ls  -l /dev/ttyUSB*

crw-rw----    1 root     dialout   188,   0 May 20 11:34 /dev/ttyUSB0
crw-rw----    1 root     dialout   188,   1 May 20 11:23 /dev/ttyUSB1
crw-rw----    1 root     dialout   188,   2 May 20 11:49 /dev/ttyUSB2
crw-rw----    1 root     dialout   188,   3 May 20 11:23 /dev/ttyUSB3
-rw-r--r--    1 root     root             3 May 20 11:23 /dev/ttyUSB4
-rw-r--r--    1 root     root             3 May 20 11:23 /dev/ttyUSB5
# ls -l /dev/cdc-wdm0 

crw-------    1 root     root      180, 176 May 20 10:37 /dev/cdc-wdm0

and finally:

# uqmi -d /dev/cdc-wdm0 --get-data-status

"disconnected"

Sadly, i also get:

# uqmi -d /dev/cdc-wdm0 --get-current-settings

"Out of call"

And i think this is a very basic problem: the card is out of network, just like a phone would be if there was no signal
I am supposing this has to do with the fact there is no antenna connected to the modem, but could anyone confirm?

I'm also trying to understand if i need to issue AT commands, and if so to which ttyUSB* devices. Again, any guidance appreciated.

1 Like

Nice to know! I think you should try to update the firmware. I am waiting for my order to arrive (EP06E and u7621-01)

Ha sure, i just need to figure out how :wink:
If you know how to, happy to learn!

I bought this modem from GL-iNet and they've now (reliably?) informed me that i won't get signal until i plug an antenna to it. Is that something others can confirm?

In any case, i'm looking at the Mikrotik mANT LTE 5o antenna. Just need to figure out the right pigtails + cable combination now…

Quick update, i bought an the antenna + SMA cables and pigtails (turns out, they don't properly fit in the back of the RBM33G enclosure, even in the little plastic caps designed to plug the wholes in the enclosure, so… they dangle out. Nice.)

After connecting the antenna, a signal appeared, and doing a uqmi -d /dev/cdc-wdm0 --start-network internet got the modem to connect :slight_smile:

I configured my network interface with a simple

config interface 'wwan'
	option ifname 'wwan0'
	option proto 'dhcp'

and it worked fine, i got an IP address and i was connected to the internet. Wooho. (ping @Toomoch, let me know if you need help)

Fast-forward to tonight, when i unplugged the router and attached the antenna in what should be a better spot, and after a reboot, while i would get an IP address at the modem level:

qmi -d /dev/cdc-wdm0 --get-current-settings
{
	"pdp-type": "ipv4",
	"ip-family": "ipv4",
	"mtu": 1358,
	"ipv4": {
		"ip": "10.181.xx.xx",
		"dns1": "xx.xx.xx.xx",
		"dns2": "xx.xx.xx.xx",
		"gateway": "10.181.xx.xx",
		"subnet": "255.255.255.248"
	},
	"ipv6": {
		
	},
	"domain-names": {
		
	}
}

the wwan interface would not get an IP, and logread showed:

wwan (3040): udhcpc: started, v1.30.1
wwan (3040): udhcpc: sending discover
wwan (3040): udhcpc: sending discover
wwan (3040): udhcpc: sending discover

and nothing. The DHCP request just not getting anything. Which, in a way, makes sense: the modem already has an IP address.

To try and workaround this, i modified the wwan interface, as follows:

config interface 'wwan'
	option proto 'qmi'
	option device '/dev/cdc-wdm0'
	option apn 'my.apn.info'
	option auth 'none'
	option pdptype 'ipv4'

and that is working. I can't understand why starting the connection with uqmi and using dhcp on the interface worked before, and now doesn't, which is very annoying.
Anyway, i at least have Internet connectivity again, which is what matters, but i'm not exactly reassured. Any clues here welcome.

Lastly, if i do a wget -O /dev/null http://test-debit.free.fr/image.iso i see the speed varying wildly. Starting off around 5 MB/s and then dropping to 3, 2, then down to 1, then back up to 2. Is this just the provider's traffic shaping kicking in, or is it something on my end i'm not thinking of?

1 Like

Wow. This is what I am about to do as a project but unfortunately the M33G is out of stock. Since you've got it working, I will go ahead and learn along the way.

I finally received my router. @axx I tried to use your instructions to connect my EP06E, but I always get the out of call error. I have signal because I tried the --get-signal-info and it's all good there. My sim card is detected normally. I also tried changing my apn and sim to another carrier, but no luck.
EDIT: I don't know what I did, I just reinstalled everything from scratch and it magically auto connected. Now I have an ip in uqmi but the dhcp client in interfaces doesn't get one.
EDIT 2 lul: aaaand I used qmi in /etc/config/network and it works perfectly. I dont have bandwith dips, so that's probably a problem on your carrier side. In my case for my carrier there are 2 APN's, the default which has cg-nat and is terrible and has packet loss and another one that works really well. Maybe in your case there's something similar.

Thanks a lot for the update @Toomoch.
Glad to hear you got it working. It was a bit mysterious for me to how it eventually "just worked", but after some tinkering. I can't remember if i removed and reinstalled packages too or not.

I suppose you also have a virtual device added on top of the QMI device to do DHCP?

In a (positively) surprising turn of events, i have since had optic fibre become available and be installed, so my RB M33G now has two uplinks. One that caps at 24 MBps and the other one at 400 :slightly_smiling_face:
I haven't set up multiwan however, and what happens is that every now and then my WWAN (4G) IP gets renewed, and that overwrites the default route, making all traffic go over 4G instead of fibre. Oops.
And while there is an option to disable setting an uplink as a default route for other devices (such as my eth uplink to the optic fibre media converter), there isn't for QMI devices. The option is called "Use default gateway (If unchecked, no default route is configured)" in LUCI and doesn't exist for my QMI device nor its virtual DHCP device.

I suppose i'll have to set multi-wan up properly if i want to have both interfaces up at the same time and avoid that issue, but for now i've just disabled the WWAN interface. And in the mid-term, i'm likely to just stop using the 4G (after all that effort), even if having the script that sends me a text message every time a device gets attributed an IP / DHCP lease is fun :slight_smile:

Yes, if you use QMI as a protocol it adds a virtual device by itself.
I now have a bigger problem that I can't seem to solve. Every 24H or so, I get disconnected and I can't find any way to reconnect and I have to reboot. Do yoj have any idea how could I solve it?