Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Help with Dell Dw5821e WWAN card

    Scheduled Pinned Locked Moved Wireless
    20 Posts 2 Posters 4.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mikeiver
      last edited by

      So here is the output after running the command.

      ugen1.3: <DELL DW5821e Snapdragon X20 LTE> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (0mA)

      The Dw5821e appears twice in the listing but they appear to be the same listing. I put them next to each other and checked. It is running at USB2.0 rather than 3.0 so even if there was a link to the cell tower capable of 1.0Gbps DS it would be capped by the USB bandwidth. I can live with that. I stripped out the other lines as I spam filter on the site is flagging it and won't let me upload it complete. If need be I will convert to GIF and upload it that way.

      I ordered a couple different NGFF to USB adapters so I can plug it into my desktop machine and attempt to get it working under windows. The Dell drivers and firmware are available for it and I have the downloaded. There is a firmware update as well so I will try to get that into the modem. It states that it is an LTE update and since the modem comes from Korea this may well be the problem. It may have GSM firmware loaded. That is a WAG though. Will know more by Wednesday evening. If need be I will cut and run, don't want to but would like to get this working.

      As always, thanks a whole bunch for your efforts so far.

      Mike

      Hope this helps a little.

      1 Reply Last reply Reply Quote 1
      • stephenw10S
        stephenw10 Netgate Administrator
        last edited by stephenw10

        I expect to see much, much more output than that. For example here's the output from just the modem in a test box here:

        ugen0.2: <Sierra Wireless, Incorporated Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A> at, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
        
          bLength = 0x0012 
          bDescriptorType = 0x0001 
          bcdUSB = 0x0210 
          bDeviceClass = 0x0000  <Probed by interface class>
          bDeviceSubClass = 0x0000 
          bDeviceProtocol = 0x0000 
          bMaxPacketSize0 = 0x0040 
          idVendor = 0x1199 
          idProduct = 0x9071 
          bcdDevice = 0x0006 
          iManufacturer = 0x0001  <Sierra Wireless, Incorporated>
          iProduct = 0x0002  <Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A>
          iSerialNumber = 0x0003  <LF71922973041020>
          bNumConfigurations = 0x0001 
        
         Configuration index 0
        
            bLength = 0x0009 
            bDescriptorType = 0x0002 
            wTotalLength = 0x00be 
            bNumInterfaces = 0x0005 
            bConfigurationValue = 0x0001 
            iConfiguration = 0x0000  <no string>
            bmAttributes = 0x00a0 
            bMaxPower = 0x00fa 
        
            Interface 0
              bLength = 0x0009 
              bDescriptorType = 0x0004 
              bInterfaceNumber = 0x0000 
              bAlternateSetting = 0x0000 
              bNumEndpoints = 0x0002 
              bInterfaceClass = 0x00ff  <Vendor specific>
              bInterfaceSubClass = 0x00ff 
              bInterfaceProtocol = 0x00ff 
              iInterface = 0x0000  <no string>
        
             Endpoint 0
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0081  <IN>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 1
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0001  <OUT>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
        
            Interface 1
              bLength = 0x0009 
              bDescriptorType = 0x0004 
              bInterfaceNumber = 0x0001 
              bAlternateSetting = 0x0000 
              bNumEndpoints = 0x0003 
              bInterfaceClass = 0x00ff  <Vendor specific>
              bInterfaceSubClass = 0x0000 
              bInterfaceProtocol = 0x0000 
              iInterface = 0x0000  <no string>
        
              Additional Descriptor
        
              bLength = 0x05
              bDescriptorType = 0x24
              bDescriptorSubType = 0x00
               RAW dump: 
               0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
        
        
              Additional Descriptor
        
              bLength = 0x05
              bDescriptorType = 0x24
              bDescriptorSubType = 0x01
               RAW dump: 
               0x00 | 0x05, 0x24, 0x01, 0x00, 0x00
        
        
              Additional Descriptor
        
              bLength = 0x04
              bDescriptorType = 0x24
              bDescriptorSubType = 0x02
               RAW dump: 
               0x00 | 0x04, 0x24, 0x02, 0x02
        
        
              Additional Descriptor
        
              bLength = 0x05
              bDescriptorType = 0x24
              bDescriptorSubType = 0x06
               RAW dump: 
               0x00 | 0x05, 0x24, 0x06, 0x00, 0x00
        
        
             Endpoint 0
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0083  <IN>
                bmAttributes = 0x0003  <INTERRUPT>
                wMaxPacketSize = 0x000a 
                bInterval = 0x0009 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 1
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0082  <IN>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 2
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0002  <OUT>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
        
            Interface 2
              bLength = 0x0009 
              bDescriptorType = 0x0004 
              bInterfaceNumber = 0x0002 
              bAlternateSetting = 0x0000 
              bNumEndpoints = 0x0003 
              bInterfaceClass = 0x00ff  <Vendor specific>
              bInterfaceSubClass = 0x0000 
              bInterfaceProtocol = 0x0000 
              iInterface = 0x0000  <no string>
        
              Additional Descriptor
        
              bLength = 0x05
              bDescriptorType = 0x24
              bDescriptorSubType = 0x00
               RAW dump: 
               0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
        
        
              Additional Descriptor
        
              bLength = 0x05
              bDescriptorType = 0x24
              bDescriptorSubType = 0x01
               RAW dump: 
               0x00 | 0x05, 0x24, 0x01, 0x00, 0x00
        
        
              Additional Descriptor
        
              bLength = 0x04
              bDescriptorType = 0x24
              bDescriptorSubType = 0x02
               RAW dump: 
               0x00 | 0x04, 0x24, 0x02, 0x02
        
        
              Additional Descriptor
        
              bLength = 0x05
              bDescriptorType = 0x24
              bDescriptorSubType = 0x06
               RAW dump: 
               0x00 | 0x05, 0x24, 0x06, 0x00, 0x00
        
        
             Endpoint 0
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0085  <IN>
                bmAttributes = 0x0003  <INTERRUPT>
                wMaxPacketSize = 0x000a 
                bInterval = 0x0009 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 1
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0084  <IN>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 2
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0003  <OUT>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
        
            Interface 3
              bLength = 0x0009 
              bDescriptorType = 0x0004 
              bInterfaceNumber = 0x0003 
              bAlternateSetting = 0x0000 
              bNumEndpoints = 0x0003 
              bInterfaceClass = 0x00ff  <Vendor specific>
              bInterfaceSubClass = 0x00ff 
              bInterfaceProtocol = 0x00ff 
              iInterface = 0x0000  <no string>
        
             Endpoint 0
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0087  <IN>
                bmAttributes = 0x0003  <INTERRUPT>
                wMaxPacketSize = 0x0008 
                bInterval = 0x0009 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 1
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0086  <IN>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 2
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0004  <OUT>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
        
            Interface 4
              bLength = 0x0009 
              bDescriptorType = 0x0004 
              bInterfaceNumber = 0x0004 
              bAlternateSetting = 0x0000 
              bNumEndpoints = 0x0003 
              bInterfaceClass = 0x00ff  <Vendor specific>
              bInterfaceSubClass = 0x00ff 
              bInterfaceProtocol = 0x00ff 
              iInterface = 0x0000  <no string>
        
             Endpoint 0
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0089  <IN>
                bmAttributes = 0x0003  <INTERRUPT>
                wMaxPacketSize = 0x0008 
                bInterval = 0x0009 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 1
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0088  <IN>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        
             Endpoint 2
                bLength = 0x0007 
                bDescriptorType = 0x0005 
                bEndpointAddress = 0x0005  <OUT>
                bmAttributes = 0x0002  <BULK>
                wMaxPacketSize = 0x0200 
                bInterval = 0x0000 
                bRefresh = 0x0000 
                bSynchAddress = 0x0000 
        

        We need to see the USB IDs, the config indexes and interface types from that really.

        I will also say that you will never see anything close to Gigabit in current pfSense using the AT connection if it's available. Something in the 50Mbps range is far more likely.

        Steve

        1 Reply Last reply Reply Quote 1
        • M
          mikeiver
          last edited by mikeiver

          No mater what I try I can't seem to get it to not be flagged as spam! WTF!!!

          Edit: After a bit of searching I noticed that I need a rep point of 5 or more to not get flagged. So I suspect that it will be some time since I am at a "0" right now and will likely stay there for some time to come. Guess I will have to find another way to post or get help elsewhere at this point. What a pain spammers are and cause.

          50Mbps, I could live with that. But one thing at a time first. Gotta get this working! LOL

          Mike

          1 Reply Last reply Reply Quote 1
          • M
            mikeiver
            last edited by

            Sent them to you in pieces via the chat window. Only way they would go as there is a 1000 character limit to each message.

            Thanks again,

            Mike

            1 Reply Last reply Reply Quote 1
            • stephenw10S
              stephenw10 Netgate Administrator
              last edited by stephenw10

              ugen1.3: <DELL DW5821e Snapdragon X20 LTE> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (0mA)
              
              bLength = 0x0012
              bDescriptorType = 0x0001
              bcdUSB = 0x0200
              bDeviceClass = 0x0000 <Probed by interface class>
              bDeviceSubClass = 0x0000
              bDeviceProtocol = 0x0000
              bMaxPacketSize0 = 0x0040
              idVendor = 0x413c
              idProduct = 0x81d6
              bcdDevice = 0x0100
              iManufacturer = 0x0001 <DELL>
              iProduct = 0x0002 <DW5821e Snapdragon X20 LTE>
              iSerialNumber = 0x0003 <f1bf4810>
              bNumConfigurations = 0x0001
              
              Configuration index 0
              
              bLength = 0x0009
              bDescriptorType = 0x0002
              wTotalLength = 0x0020
              bNumInterfaces = 0x0001
              bConfigurationValue = 0x0001
              iConfiguration = 0x0000  <no string>
              bmAttributes = 0x00c0
              bMaxPower = 0x0000
              
              Interface 0
              bLength = 0x0009
              bDescriptorType = 0x0004
              bInterfaceNumber = 0x0000
              bAlternateSetting = 0x0000
              bNumEndpoints = 0x0002
              bInterfaceClass = 0x00ff <Vendor specific>
              bInterfaceSubClass = 0x0042
              bInterfaceProtocol = 0x0003
              iInterface = 0x0007 <fastboot>
              
               Endpoint 0
                  bLength = 0x0007
                  bDescriptorType = 0x0005
                  bEndpointAddress = 0x0081  <IN>
                  bmAttributes = 0x0002  <BULK>
                  wMaxPacketSize = 0x0200
                  bInterval = 0x0000
                  bRefresh = 0x0000
                  bSynchAddress = 0x0000
              
              Endpoint 1
                  bLength = 0x0007
                  bDescriptorType = 0x0005
                  bEndpointAddress = 0x0001  <OUT>
                  bmAttributes = 0x0002  <BULK>
                  wMaxPacketSize = 0x0200
                  bInterval = 0x0000
                  bRefresh = 0x0000
                  bSynchAddress = 0x0000
              

              Hmm, that's the full output from ugen1.3? That's disappointing if so. Only one config index and no useful interfaces really.....

              1 Reply Last reply Reply Quote 1
              • M
                mikeiver
                last edited by

                So by your response I take it that I am screwed and likely it will not work?

                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  Not without changing the card in some way. The presented default interfaces are not anything pfSense can use.

                  Via usb_mode_switch perhaps. Or a different firmware version.

                  The thread I linked above seems to imply it might be possible:

                  This module exposes two USB configurations: a QMI+AT capable setup on
                  USB config #1 and a MBIM capable setup on USB config #2.
                  

                  If it had presented 2 config indexes we could have changed it. That might have given us an AT port and that can be used.

                  Steve

                  M 1 Reply Last reply Reply Quote 1
                  • M
                    mikeiver @stephenw10
                    last edited by

                    @stephenw10 Well I have a usb adapter coming in tomorrow and I will pull the modem and see if I can get it flashed with new firmware i pulled from Dell. Then see if I can get it up in windows 10 pro with the drivers provided by Dell. If that works i might be able to find the indexes and note them. Fingers crossed and thanks again. I will post back when I have more.

                    Mike

                    1 Reply Last reply Reply Quote 0
                    • M
                      mikeiver
                      last edited by

                      Still unable to post the output of the dump without getting flagged!

                      So this is the output after loading in the firmware with the dell software. It appears that there is a SIM PIN2 lock. Verizon here seems to think that the modem PIN is PIN2 and thus the reason that I could not get it working under windows10 either. I have contacted the seller to get the pin number or to return the modem. Unless something has changed. I don't know enough to know what I am looking at. Guess the search for a modem that will work might begin again...

                      1 Reply Last reply Reply Quote 0
                      • stephenw10S
                        stephenw10 Netgate Administrator
                        last edited by

                        You can put the output in pastebin and link to it.

                        The Sierra EM7455 I showed above works fine as does the EM7355 if you need an internal modem. External Ethernet connected modems generally work much better bother because you can usually position them better and because they are not limited by FreeBSD.

                        There are some OEM branded versions of those Sierra devices that can take some messing about to make work but they generally can be made to.

                        Steve

                        1 Reply Last reply Reply Quote 1
                        • M
                          mikeiver
                          last edited by mikeiver

                          So a little update. It appears that this may be related to the fact that the FCC certified this modem for use in specific Dell products and utilizing specific antenna configurations. IE: This is a packaged product that was certified to be compliant. Not having one of the Dell laptops to play with I am not able to update the firmware on the card and see if that fixes and unlocks the modem. Will work on that next. I do have an old Dell computer and will see if I can get the software to load and run with the modem in the USB adapter on that. Long shot I suspect at the least.

                          What about the EM7565? I kind of want to stick to the internal card on one of the M.2 risers as the case and the board are already in my possession and working well. In other words I have all the pieces and just need a good modem for this to be a compact and functional package.

                          Mike

                          1 Reply Last reply Reply Quote 0
                          • stephenw10S
                            stephenw10 Netgate Administrator
                            last edited by

                            I have never tried an em7565, they are still too expensive for me. 😉

                            I believe there are some other threads here people have documented that in.

                            Steve

                            1 Reply Last reply Reply Quote 1
                            • M
                              mikeiver
                              last edited by mikeiver

                              So it appears that it does work in Linux and that brings some hope to me. Gonna have to do a fair bit more digging to see if I can get this up and running. From the looks of it FreeBSD is rather deficient in comparison to Linux in this area. Bummer because I like PFsense so far and have our home router/ firewall running it right now with no issues so far.

                              Edit: Spoke with a friend of mine that is a Cray super computer admin and deep into linux. He thinks that since there is a driver for the modem for Linux that given the source we should be able to recompile it to run on the BSD kernel. Does this sound about right?

                              Mike

                              1 Reply Last reply Reply Quote 0
                              • stephenw10S
                                stephenw10 Netgate Administrator
                                last edited by

                                Well it's all open source so anything is possible, just a matter of coding! 😉

                                But no it's not a simple compile issue. There is no MBIM or QMI support on FreeBSD (until someone ports umb from OpenBSD).
                                If the modem can present a usb com port, as that earlier thread seemed to show, then it may only be a matter of adding the USB IDs to the existing u3g driver in FreeBSD to have it create a usable AT port,

                                Steve

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  mikeiver @stephenw10
                                  last edited by

                                  @stephenw10 Well CRAP! I will refer my friend to this information and to another I found that you recently responded to about the same.

                                  Thanks,

                                  Mike

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post
                                  Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.