EP06-E modem not displayed



  • hello Guys,
    I bought an LTE modem module Quectel EP06-E from AliExpress, I see the module from the shell with the command "usbconfig dump_device_desc" and I got the following information about the device:

    
      bLength = 0x0012
      bDescriptorType = 0x0001
      bcdUSB = 0x0200
      bDeviceClass = 0x00ef  <Miscellaneous device>
      bDeviceSubClass = 0x0002
      bDeviceProtocol = 0x0001
      bMaxPacketSize0 = 0x0040
      idVendor = 0x2c7c
      idProduct = 0x0306
      bcdDevice = 0x0310
      iManufacturer = 0x0001  <Quectel>
      iProduct = 0x0002  <EP06-E>
      iSerialNumber = 0x0003  <0123456789ABCDEF>
      bNumConfigurations = 0x0001
    

    when i trying to add the interface as PPP, I cannot see everything about my interface (maybe its not supported yet..)

    can you help me please to resolve this problem?

    LTE Module Official Page: https://www.quectel.com/product/EP06.htm

    My pfSense Specs:
    Intel Core i3-550
    10GB Ram
    250GB SSD Kingston

    Thank you very much and have a good day :)


  • Netgate Administrator

    If it doesn't present as at least one com port pfSense will not see it. Try running: usbconfig dump_all_config_desc

    You may be able to change it's config index to something that does have a com port, if it has multiple config indexes.

    Otherwise you might need to change it's mode in a different OS before moving the card to pfSense.

    Looks like you need to register on that site to download anything. The guides there should tell you something though.

    Steve



  • Hi,

    Did you find a solution to this problem ? I face the same issue. EP06 is listed under ugen2.3 and not cuau.

    Regards


  • Netgate Administrator

    Are you seeing the same vendor/product IDs? Can you run usbconfig dump_all_config_desc and check if there is more than one config index available?

    Serial ports are usually handled by u3g, you can see what devices are supported here:
    https://github.com/pfsense/FreeBSD-src/blob/a93b08619536642be48c4fd30c39674b46edad6f/sys/dev/usb/serial/u3g.c#L202

    The only Quectel device recognised by pfSense/FreeBSD in current is the EC25:
    https://github.com/pfsense/FreeBSD-src/blob/a93b08619536642be48c4fd30c39674b46edad6f/sys/dev/usb/usbdevs#L3770



  • Hi stephenw10

    Thank you for your reply.

    My ep06 is identified as follow :

    ugen2.3: <Qualcomm CDMA Technologies MSM QUSBBULK> at usbus2, cfg=1 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)

    bLength = 0x0012
    bDescriptorType = 0x0001
    bcdUSB = 0x0200
    bDeviceClass = 0x0000 <Probed by interface class>
    bDeviceSubClass = 0x0000
    bDeviceProtocol = 0x0000
    bMaxPacketSize0 = 0x0040
    idVendor = 0x05c6
    idProduct = 0x9008
    bcdDevice = 0x0000
    iManufacturer = 0x0001 <Qualcomm CDMA Technologies MSM>
    iProduct = 0x0002 <QUSB__BULK>
    iSerialNumber = 0x0000 <no string>
    bNumConfigurations = 0x0001

    There is only one config index available.

    Does it mean that we won't be able to use our ep06 for LTE with pfsense ?

    Regards,


  • Netgate Administrator

    Well it's not a device FreeBSD knows about so probably not. Yet at least.

    That's not the full output of usbconfig -d ugen2.3 dump_all_config_desc. You should always see one config index listed.

    For example:

    [2.4.4-RELEASE][admin@fw1.stevew.lan]/root: usbconfig -d ugen0.2 dump_all_config_desc
    ugen0.2: <Sierra Wireless, Incorporated Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A> at, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
    
    
     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 
    


  • Here is the full output :

    # usbconfig -d ugen2.3 dump_all_config_desc
    ugen2.3: <Qualcomm CDMA Technologies MSM QUSBBULK> at usbus2, cfg=1 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)
    
    
     Configuration index 0
    
        bLength = 0x0009
        bDescriptorType = 0x0002
        wTotalLength = 0x0020
        bNumInterfaces = 0x0001
        bConfigurationValue = 0x0001
        iConfiguration = 0x0000  <no string>
        bmAttributes = 0x00a0
        bMaxPower = 0x0001
    
        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
    
    

    Thanks for your help


  • Netgate Administrator

    You might also be able to change the IDs it presents by accessing the command line under some other OS. It's been while but I seem to recall reading those Quectel devices were very similar to Sierra internally.

    Steve


Log in to reply