Sierra Wireless MC8805/DW5570 not working
-
Hello.
I have a MC8805/DW5570 4G mini PCI-e card that I would like to use with pfSense. However I can't get it to work. It is detected at boot and receives a device name of ugen0.5. This means that the USB ID worked, but not fully, as I do not have any serial port that I can use or an extra network interface. I am using the latest pfSense ISO available for download - 2.6.0.
Under Linux ( Ubuntu 20.04) it is discovered and I get 3 serial interfaces (ttyUSB0-2) plus a cdc-wdm0 device to which I can issue qmicli commands. As well, ttyUSB2 can be used to issue AT commands. The ModemManager reports the correct GSM network while in Ubuntu which means that the SIM card successfully registered with the network.
I tried all USB composition modes that are listed as supported by the device, but nothing changed in pfSense. I am currently using USB comp mode 8.
Let me know what other details you need...
Thank you!
-
What USB ID(s) does it appear as?
Do you see multiple config indexes? Some of the USB compositions present 2.
Do you see multiple end points presented in
usbconfig dump_all_config_desc
? -
USB ID, i presume you refer to VID:PID which is 413c:81a3
Yes it has multiple config indexes. I currently run on USB COMP mode 8 which has DM, NMEA, AT , MBIM.
Yes, I see multiple endpoints.
However the card it's not a real 4G. And this is the main issue, which I just discovered. I use a SIM card from one of my mobile providers here. I went on their info web page and they are using only LTE 2100MHz band 1 and 2600 MHz band 38. This MC8805 it's only HSPA+. It only connects with CS to GSM900 which is for voice. PS remains unregistered and no signal, so no data. Forcing WCDMA 2100 MHz has no effect, I loose CS and PS still unregistered. I guess I need a real LTE card for this provider.
I might try with another carrier, but still the issue of pfSense not enabling the interfaces, will remain. I wonder if I can find the VIDs:PIDs accepted by pfSense... will have to dig further. In Ubuntu I encountered the same issue with no interfaces loaded, despite the fact that the card was enumerated at boot time. I encountered this in Ubuntu after I played around with the PIDs but not changing the VID. The card was detected but no interfaces loaded. I then managed to reveal the usb-serial interfaces by using the option driver, loading it with modprobe and echo the VID:PID into the new_id file of the option driver. I wonder if this is possible in pfSense ( FreeBSD ), but will have to dig further.
Thank you!
-
@ctrlzundo said in Sierra Wireless MC8805/DW5570 not working:
413c:81a3
Yeah you probably need to revert it to a Sierra device and not the Dell rebranding it's currently using so it's recognised. On that modem it may be possible to simply set the USB IDs at the modem CLI.
https://github.com/pfsense/FreeBSD-src/blob/devel-main/sys/dev/usb/serial/u3g.c#L198
-
Yes, I will try to change the VID to 1199 and PID to 9041. This VID:PID combo will set the card to be a Sierra Wireless MC8805/MC7305
IF you are wondering, yes, I turned off FCCAUTH by getting the card into engineering mode with AT!OPENLOCK? and then using sierrakeygen. Then I issued AT!PCFCCAUTH=0. This way, the card is always out of LOW POWER and it's getting online, without waiting for a magic command from the driver.
-
Yup that should work. Shouldn't be too difficult since you're obviously familiar with the Sierra CLI.
-
I found the AT command reference for normal commands and extended ones, on Sierra website, but AT!UDVID it's not listed in those documents. However for the VID, I can do an AT!UDVID? and it returns the 413c. I think I should get into engineering mode with AT!OPENLOCK, for this change to be possible. With AT!ENTERCND="A710", VID change it's not possible. AT!UDVID=1199 -> ERROR.
All this for nothing actually, because I do not have LTE :)).
As soon as I have some results, later this week, I will post them here. Maybe it will help someone who can use this card with their provider.
-
Some Sierra devices require reflashing the firmware to de-brand them I believe. I've never had to try that myself.
But, yeah, if it doesn't support the network you're trying to connect to it might be time to look for a different modem. -
I already flashed the generic firmware found on Sierra website, but it's still a DELL :)
I then performed an AT!RMARESET and it brought back everything to stock configuration. After issuing the command the device reset and while still connected to the USB serial port I could saw that the VID:PID changed to 1199:9041 and USB composition defaulted to 6 and it was recognized in Linux dmesg as a Sierra Modem model MC8805, so no more Dell branding. But after a shutdown and reboot of the system, the card reverted to VID:PID 413c:81a3 and the firmware was Telefonica dedicated. I then flashed the generic firmware from the Sierra website, but the Dell branding persisted...
-
Hmm, might be something specific for that device then. I've never used it myself.
-
O.K., so to wrap up this post here are the findings on this MC8805/DW5570 card, flashed with the generic image found on Sierra Wireless website. On Sierra website search for MC73xx, since the MC8805 it's a SWI 9x15 chipset and actually an MC7305 but DELL branded...
"https://source.sierrawireless.com/resources/airprime/software/airprime-em73xx_mc73xx-fw-package-build-4837/"Perform a cold boot after each of the below steps and before entering AT console, please stop ModemManager. With qmicli you do not have to stop the ModemManager, but use switch (-p) in order to successfully open a session, otherwise ModemManager it's getting in the way.
In order to use it with pfSense you have to do the following, in Linux:
-
I flashed the generic image SWI9X15C_05.05.58.00 with the SPK package using qmi-firmware-update and the device found under /dev as cdc-wdmx. Wait for the boot after flash operation to complete.
-
The card could return to the USB composition no.14 which is a dual mode consisting of USB comp 6 and 9 and it will default to USB comp 9 which is MBIM only. I changed it to USB comp mode 6 in order to have the serial ports enabled, which under Linux would be ttyUSB0-2. The AT command port is ttyUSB2. To change the USB comp:
ATE
AT!ENTERCND="A710"
AT!UDUSBCOMP=6 (or you can do AT!USUSBCOMP=? to see the list of compositions available)
AT!RESET -
Disable low power mode:
ATE
AT!ENTERCND="A710"
AT!OPENLOCK?
copy the displayed result from the tool into the AT console.
Use the string displayed from AT!OPENLOCK? by inserting it in the command line of sierrakeygen.py. The tool can be found at "https://github.com/bkerler/edl/tree/master/edlclient/Tools". The tool is very simple to use. Run it without any arguments and you will see the instructions. You also have to install pip3 and then with the help of pip3 install the requirements found in a txt file in the root of the project, where there is also a help file for this keygen tool.
-
Change VID:PID:
While still in engineering mode from step 3 you can issue the below commands. If the system was rebooted, which I highly recommend after each step above, you have to enter again in engineering mode by using the sierrakeygen.py.AT!UDVID=1199
AT!UDPID=9041,9040 (APP,BOOT) For this command you can do AT!UDPID=? and it will show you some PIDs for both APP and BOOT. Set them as above and it should be fine. While doing an AT!RMARESET, at card's boot time it showed the above VID:PID and that's why I choose this numbers. You can do an AT!UDPID? before changing the PIDs. APP is 81a3 and BOOT is 81a6 with a VID of 413c. -
Halt the system, perform a cold boot and in pfSense you will notice that the driver u3g discovers 4 ports and you can find them under /dev as cuaU0.0 - 0.3. The AT port accessed with "cu -l" is cuaU0.2.
There is an issue if you perform a warm boot. The card it's not found anymore. You always have to do a cold boot. Don't know why, but in Linux this is not happening.
-
-
Hi @ctrlzundo
That's an very interesting topic!
Could you please elaborate a bit more how you be able to connect to serial of the WWAN card. I was able to flash the same firmware you described. But i'm not receiving the /dev/ttyUSBx device. I can only see /dev/cdc-wdm0 device. Also on Windows i don't have a serial port. Did you use some special driver?
Thanks in advance!
BR
-
It's probably not set to a USB composition that exposes the com devices. You need to connect to it in an OS that can talk to it with MBIM or QMI. I've done that to other Sierra devices in Linux.
-
@xt_ntwrk
I skipped how to change the usb comp if you do not have the serial ports exposed.In Linux install "libqmi-utils". This will provide you qmicli.
Then, check the current usb comp
"sudo qmicli - p - d /dev/cdc-wdm0 - - dms-swi-get-usb-composition". Most of the times it's 14
Next, change it.
"sudo qmicli - p - d /dev/cdc-wdm0 - -dms-swi-set-usb-composition=6".
Now you can follow what I wrote. Also, do not forget to stop ModemManager before opening the serial port /dev/ttyUSB2
-
-
@ctrlzundo
Thank you!!WWAN card is now prepared. I will test it in pfSense later.
-
@xt_ntwrk You're most welcome! Do not forget that this card it's not LTE, it's just HSPA+.
-
@ctrlzundo said in Sierra Wireless MC8805/DW5570 not working:
@xt_ntwrk You're most welcome! Do not forget that this card it's not LTE, it's just HSPA+.
Ok, I see but for finding out the ugen* and cuaU* numbers
and also for connecting to the modem it is not so really relevant I think. -
That's true but if you're going to the effort you might want to start with a device that's at least capable of the speeds you want.
HSPA+ might be fine here.
-