Sierra MC73xx working



  • After 3 weeks i finally have a module working!
    Support was added to pfSense to support in version 2.2.3 and i bought an MC7354 from a large electronics firm. Module came in and it had a different Product ID than the module added to FreeBSD. Added was a device with VID/PID 1199:6820 and my module showed up as 1199:68C0. Would not work. Bummer. So buy another a week later. Same thing different supplier 1199:68C0. So i decided to go the hardware route and switch the module PID to 6820. Quite a learning experience.

    Anybody running one of these modules???

    I finally got an EM7355 working and not the two MC7354's i bought for pfSense. Seems you can only switch to PID's which are hardcoded to the module/firmware. Some MC73xx will work some won't. My suspicion is they have removed the needed PID from the newer firmwares.



  • Thanks to J.Porter and Netgate we have a working -currently for sale and vendor supported- LTE Module.

    Here are the extended AT commands I needed. I used Putty in both Ubuntu and Windows to access the Serial Port/TTYUSB.(AT port used found in Windows Device Manager)

    AT!ENTERCND="A710"
    This is to enter extended commands needed for extended output

    AT!UDINFO?
    This pulls up the info on VID/PID

    AT!UDPID=?
    Here is the command to check to see if your device supports 6820 pid.
    If PID is not supported it will fail showing ERROR on switch attempt.

    AT!UDPID=6820
    This is the command to switch to supported PID.

    YOU MAY NOT BE ABLE TO SWITCH BACK. USE AT OWN RISK. YOU CAN BRICK A MODULE.

    Careful with this following information. Not needed. Purely Informational.

    AT!UDUSBCOMP?
    The default firmware setting for your module mode is found by this command.

    AT!UDUSBCOMP=?
    pfSense seems to work with default #6. Notice #9 has no AT console..MBIM only. Beware.

    thread Linux contributor BMORK is the most knowledgeable person on this subject.
    http://lists.freedesktop.org/archives/libqmi-devel/2014-May/000788.html

    -Edited for accuracy-




  • So I am using this EM7355 (An M.2 form factor module) In a converter board - M.2 to mini-Pcie for testing.
    The newer style M.2 modules- Both wifi and cellular- use a newer Antenna connector, very similar to Ipex/u.fl but smaller yet.
    Called Ipex/MHF4.

    I should also note i cannot use this module in Windows anymore as I have modified the PID and driver uses that for device ID.



  • So in case i was not clear, The whole MC73xx family now uses the same firmware. So except for differences in the radio frequency of different regions -they are the same. Some offer "Voice over LTE" but the carriers have minimally adopted the standard. PCM audio on the modem is the difference.

    Mini PCIe Modules
    MC7304-Europe
    MC7305-Europe-VoLTE supported
    MC7330-Australia
    MC7354-North America
    MC7355-North America-VoLTE  supported

    NGFF/M.2 Modules
    EM7305-Europe
    EM7355-North America

    Even within same models there are different SKU's

    EM7355
    1101637-OEM
    1101766-IBM 04W3801
    1101797-Dell DW5808e 2NDHX
    1102173-Dell DW5808e PN10C
    1101825-HP
    1102091-HP
    1101889-Fujistu

    MC7355
    1101796-Dell DW5808 1N1FY
    1101888-Panasonic
    1101906-OEM

    MC7354
    1102016-OEM

    So that is what I have found. Anyone care to correct any inaccuracies.

    If your thinking of buying one of these beware. The support is limited to only one PID while there are many PID's in the field.



  • I think I have found the problem. The one module i have that works has a firmware version that is different than the rest.

    ATI command shows firmware SWI9X15C_01.03.03 r8561 -Dated 12-4-12

    All the versions on the internet are SWI9X15C_05.05.16 and up.

    The strange thing is that when you run AT!UDPID=? to show available PID's the 6820 PID is not shown.

    PID's for the older firmware:
    9041
    9061
    9051
    9053
    9054
    9056
    68A2

    Now the PID's for the newer firmware:
    9041
    9054
    9056
    68A2
    68B1
    68C0

    The 68A2 is the same as the MC7710 and is the PID that was assigned to the EM7355 that I switched to PID=6820 and have working.



  • Was really happy to find CU (terminal program) a pfSense default as well. I did not even have to set up PPP to talk to the cuaU0.1 port.

    cu -l /dev/cuaU0.1

    I had all kind of troubles with term, under PPP. Now i have something i can use.



  • Here are my screenshots for the MC7354 -with the newer firmware- and its various settings. Cannot run in pfSense as is.








  • Here are the some PID's found in SierraMC73xx firmware.

    MC7355/MC7355 – VID=0x1199
    User defined PID with AT!UDPID=xxxx
    0x9041
    0x9054
    0x9056
    0x68A2
    0x68B1
    0X68C0

    Dell DW5808 -VID=0x413C
    Factory PID=0x81A8

    User defined PID with AT!UDPID=xxxx On the Dell DW5808 Module
    0x9041
    0x9051
    0x9053
    0x9054
    0X9056
    0x68A2
    0x68B1
    –--------------------------------------------------

    Linux qcserial PID assignment for cross reference.

    0x9041-Sierra Wireless MC7305/MC7355
    0x9051-Netgear AirCard 340U Modem
    0x9053-Sierra Wireless Modem
    0x9054-Sierra Wireless Modem
    0X9056-Netgear AirCard 341U Modem
    0x68A2-MC7710 QMI Mode
    0x68B1-None
    –---------------------------------------------------

    Current FreeBSD USBDEVS -PID Assignments-
    0x9041-Not assigned
    0x9051-Not Assigned
    0x9053-Not Assigned
    0x9054-Not Assigned
    0X9056-Not Assigned
    0x68A2-Not Assigned
    0x68B1-Not Assigned
    0x68C0-Not Assigned
    –----------------------------------------------------

    Product ID's I would like to be added to USBDEVS/U3G
    VID:1199 PID:68C0 DEVICE_DESC: Sierra Wireless MC7355
    VID:1199 PID:68A2 DEVICE_DESC: Sierra Wireless EM7355
    VID:1199 PID:9041 DEVICE_DESC: Sierra Wireless MC7355
    VID:413C PID:818A DEVICE_DESC: Dell DW5808 Wireless Modem (MC7355)



  • Here are some more informational screen shots showing firmware, PID's and USBCOMP mode. These are for the MC7355






  • Here are the user selectable PID's for the MC7355.




  • Here are the Dell DW5808 details. This is also a MC7355.
    They have more PID's on their list than any other. Strange how the default PID 81A8 is not in the list. Modes are different too.






  • I was able to convert a Dell DW5808 to the native Sierra MC7355.

    AT!UDVID=1199 and AT!UDPID=9041

    Turns your rotten Dell locked module into a generic OEM module usable in any Windows machine with stock drivers.

    I only tried it on one module so YMMV. It had an early firmware and i couldn't coax PID:6820 out of it…



  • While getting a couple of modules flashed to the latest ATT firmware for a trip to Texas and I decided to take them live. Most of my testing is done with no antennas, so last step is antennas before use. Used windows and flashed them -then fired up the Sierra Skylight Watcher. The speedometer/indicator was on LTE at first, then seem to drop to 3G HPSA+ and lots of back and forth and maybe even 2G/UMTS flashed up.. Seemed erratic. Used my new AT command skills and hit the extended commands pdf. AT!GSTATUS? gives you some info. Then found AT!BANDS, AT!GBAND and AT!DASBAND which i still don't understand the differences. I tried LTE only and it wouldn't find service. ATT uses B17 for most LTE. The fallback 3G seems to be 850GSM and 1900GSM for ATT.

    I am pretty impressed with Ubuntu Modem-Manager GUI as it has a nice "Scan" feature and I see 5) T-mobile towers, and only 1ea.)VZW, Sprint and ATT tower. That makes me wonder about my service. I see 4 bars on my ATT tower. I think the module needs tuning. I even see a RF calibration recommended…Whatever that means. I know my MC7700 experience was much less painful and that module maintains LTE on the Watcher...I should probably dump my Windows platform as I have installed probably a dozen different driver packages...Super weird thing is that the module "Firmware version" seems tied to software as the same module with Windows and Ubuntu shows different firmware versions...Odd why would hardware firmware version change with OS disk change? Must be tied to different Gobi.API/blob in the different OS's- i really dunno...



  • I loaded a fresh Windows and Sierra drives and Watcher. Was still seeing my LTE drop to 3G and i noticed it seemed tied to usage. When I ran speed test the speed would jump to LTE.
    I found this thread which explains why.

    Telstra cells drop you back to basic "UMTS" when there's no data in transmission between yourself and the tower. Once the data flows again, you'll typically go to "HSPA+" (single carrier) or "DC-HSPA+" (dual carrier) on Telstra, depending on the capabilities of the tower. That's got nothing to do with diversity.

    http://forums.whirlpool.net.au/archive/2178921

    This is exactly what I am seeing with ATT. Drops back to lower connection speed when not in use.



  • Phishfry, I'm from Argentina and need your help to convert a Dell DW5808 to the native Sierra MC7355.

    Thanks



  • Finally I can convert the Dell DW5808 into a Generic Sierra Wireless  MC7355 to work with Windows 7.

    Thanks to Phishfry and other web sites with a perl script to change the UDUSBCOMP to work in Ubuntu.



  • Here is the skinny. The Dell DW5808 (MC7355) module was locked in USBCOMP #9 which is MBIM only -No AT command port at all. This is the new method by which Windows 8.1 and 10 work. They flash your modem to only use MBIM effectivly locking you out of the module.

    So Juancho had to not only switch his module from Dell VID+PID to Sierra VID+PID but also regain the AT console to do it.
    Luckily one of the developers of Linux modem-manager has a perl script which can bring back the AT console.

    Here is how without installing Linux on host.
    Setup Ubuntu USB Flash/Pen drive with persistent storage like Unetbootin offers. Run you disk and install the following

    sudo apt-get install perl
    sudo apt-get install libuuid-tiny-perl
    sudo apt-get install libipc-shareable-perl
    sudo apt-get install modem-manager-gui
    sudo apt-get install putty

    So first off you need to run networkmanager and modemmanager in debug mode:
    https://www.freedesktop.org/wiki/Software/ModemManager/Debugging

    Then run this script:
    http://git.mork.no/?p=wwan.git;a=blob_plain;f=scripts/swi_setusbcomp.pl

    Here are some supporting docs.
    https://www.freedesktop.org/software/ModemManager/man/1.0.0/mmcli.8.html
    https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-3g/modem-debugging-with-mmcli

    Even on other Sierra modems you get worked:
    https://forum.sierrawireless.com/viewtopic.php?f=117&t=8863

    Different Modem same effects-different cure:
    http://zukota.com/how-to-enable-at-command-and-diagnostic-ports-and-gps-for-sierra-wireless-em7345/

    This has exactly what is needed. Note EM7305 is the same firmware wise.
    http://www.0xf8.org/2016/04/changing-dell-wireless-5809e-sierra-wireless-em7305-usb-composition-mbim-qmi-at-interface-nmea/

    Note: ModemManager and Networkmanager in debug mode might not be needed. We were trying to send the modem AT commands with mmcli and that required debug mode. Unfortunately it did not work as AT command console was not exposed. Ultimately it required the perl script. Here is sample command.
    sudo perl swi_setusbcomp.pl –usbcomp=14

    Putty set to Serial and ttyUSB1. Putty requires sudo putty from terminal to work.

    ModemManager GUI is useful in showing the mode the modem is in. For example MIBM was apparent without AT console.

    From Juancho:
    Maybe with Perl script and Putty is enough to do the conversión from Dell to Sierra Wireless.

    So the above post about bricking your module is now the new normal from Microsoft. MBIM only mode. Luckily Bjorn Mork and his magic perl script saves the day.



  • The reason I post this is the procedures are exactly the same for pfSense, FreeBSD and Windows. #14 USBCOMP works and as a bonus proves a dual configuration with DirectIP for FreeBSD/pfSense and QMI modes for Linux.



  • So I was in the middle of changing a DW5808 into a generic module when the laptop lost power. I got the VID successfully updated to 1199 but the PID is still 81A8… This means the drivers won't pick up the card as a valid combo to get me into a serial terminal to change the PID. Is there some way in Linux I can trick it into working so I can issue the PID change or is the card toast? Card is in USBcomp=6 right now if that changes anything, I see 4 interfaces exposed in windows but can't get drivers to load for them.



  • Ended up comparing the modules loaded with a 5808e in a USB carrier and manually installing the modules using modprobe. That exposed the /dev/ttyUSB0 through /dev/ttyUSB2, ttyUSB2 was the AT command interface so I was able to issue the AT!UDVID=9041 to fix. Runs like a champ now.

    
    /sbin/modprobe cdc_wdm product=0x81a8 vendor=0x1199
    /sbin/modprobe usbserial product=0x81a8 vendor=0x1199
    /sbin/modprobe qmi_wwan product=0x81a8 vendor=0x1199
    /sbin/modprobe qcserial product=0x81a8 vendor=0x1199
    
    


  • How are you guys connecting the mPCIe card to a host?  Does a USB adapter work or do I need to find a mainboard that supports mPCIe to do these steps?



  • 3g/4g modems almost all use the USB interface of Mini-PCI(e) so a USB adapter will work if you don't have a slot internally.



  • @thanatos2k:

    3g/4g modems almost all use the USB interface of Mini-PCI(e) so a USB adapter will work if you don't have a slot internally.

    Thanks!



  • Thanks for these instructions!  I also followed this post to re-flash the firmware to Sprint: https://forum.pfsense.org/index.php?topic=120614.0.

    I had to run !BOOTHOLD via the AT interface prior to flashing the firmware to get the firmware to flash without an error.



  • I'm still having trouble - it appears the device is stuck in "Low Power Mode", similar to this post: https://sigquit.wordpress.com/2015/02/09/dell-branded-sierra-wireless-3g4g-modem-not-online/

    The output of !PCINFO:
    State: LowPowerMode
    LPM force flags - W_DISABLE:0, User:0, Temp:0, Volt:0, BIOS:1, GOBIIM:0
    W_DISABLE: 0
    Poweroff mode: 0
    LPM Persistent: 0

    Indicates the BIOS system is somehow converting the module to low power.  Googling reveals linux can do this with it's ACPI modules by accident/bug:
    https://lists.freedesktop.org/archives/libqmi-devel/2015-January/001084.html

    Anyone else struggling with this?



  • I've found with the DW5805 and DW5805e that even if you change the VID/PID to non-Dell configurations, they still need the FCC auth command to be sent before they will go out of low power mode. I've not found a way to send that command under FreeBSD. I'm currently using ModemManager on OpenWRT in a secondary atom box to do the 4G connections.



  • I think I found the key:
    https://forum.sierrawireless.com/viewtopic.php?f=117&t=9771&sid=3c2d1cc46ccb965d2e37535a9ab142b1&start=15#p39184

    The PCFCCAUTH can only be changed in a special mode with OPENLOCK command.  Trying to disable it via the AT console without OPENLOCK results in an error.

    The older Sierra chips could be unlocked from here - https://github.com/bkerler/SierraWirelessGen.  But it sounds like the algorithm is updated.

    I think there is a tool out there that let's you modify these settings outside the AT interface.  May be easier.



  • @juancho1972 . can you upload the whole process? I am facing the same problem.



  • @juancho1972 Yes, please show the process.



  • So MC7355 and EM7355, which one is better to use with OpenWRT?


  • Netgate Administrator

    Hmm, seems like spam but...

    That is the same card effectively. The MC version is mPCIe and the EM is m.2.

    Steve



  • @stephenw10 thanks