Home‎ > ‎

Making Micromax Funbook support your Mobile / USB Card for Internet


       
    Do you know that you can connect your mobile / USB data card to Micromax Funbook to get connected to the internet? Well, if you want to know how to do this, continue reading this article.  

    Micromax Funbook ships with Android 4. It is already rooted. So, you can easily enable your device in Funbook. First, make sure, the Terminal Emulator and Jota Text Editor apps are installed in your Funbook. I'll present the article for Windows and Linux users separately. In this article, I'm using my "LG GS500v" mobile to connect it to my tablet and dial internet connection.
    

    A few words to mention before beginning this article:

  1. The mobile has a Zero CD mode as many mobiles and USB data cards have today
  2. But, I don't need to use "usb_modeswitch" to switch my mobile from CD-ROM to Modem, because it automatically switches to Modem mode after 20-30 seconds
  3. If your device explicitly needs to switch from CD-ROM mode to Modem mode, you need to use "usb_modeswitch" command. Guidelines (though not full article) on running the command are presented at the end of this article.
  4. This entire article is based on editing a single configuration file (3g_dongle.cfg) to add support for new device. The only thing which you need to know is how to get information about your device to fill the configuration file.
  5. Hereafter, I'll be referring to both mobile, which could be connected using USB cable and USB data card with the term "Device"
DISCLAIMER: I'm not responsible for any harm that might happen to your Funbook / USB Card / Mobile or to you as a result of you following this guide. It shouldn't usually do any such harm but just for your clarification, this disclaimer is written. Also please note that I could not guarantee that this procedure works for all mobiles / dongles, because I myself tested this only with my mobile, LG GS500v. Hope this guide works with your device too.

    Okay, now let's get started. First, fire up "Terminal Emulator" app and execute the following command:

# busybox cp /etc/3g_dongle.cfg /sdcard/

    From here, I'll be showing how to get required information about your device both in Windows and Linux (Ubuntu).


Share this guide with your friends:
 
 
 



Windows Way:

  • Connect your tablet in USB Storage Mode and copy the 3g_dongle.cfg file. Open the file in Wordpad. Yes, open it in Wordpad only, not in Notepad.
  • Download and install USBDeview from http://www.nirsoft.net/utils/usb_devices_view.html
  • Connect your device to PC
  • Make sure it is listed under "Modems" tab in "Phone and Modem Options" in "Control Panel"
  • Select your device and click "Properties"
  • Goto "Diagnostics" and click "Query Modem"
  • Note down the response given by your modem for "AT+GMM" command. We are going to use it in our 3g_dongle.cfg file. In my case, I got "GS500"

  • Start adding a new entry to 3g_dongle.cfg in a way similar as shown below:
            [GS500]
        dongle_name=GS500
        production_name=GS500
        vendor_name=LG
        network_type=GSM_MODE
        pid_vid_origin=
        bcdDevice_origin=
        pid_vid_now=
        bcdDevice_now=
        at_port=
        ppp_port=
  • We will be filling rest of the fields in the steps that follow. Now open USBDeview. Right click on your modem and select properties.

  • Make a note of the "Vendor ID" and "Product ID" shown. For my mobile, they are "1004" and "6000" respectively. Based on this, I'm filling some more information in 3g_dongle.cfg as shown below:
        [GS500]
        dongle_name=GS500
        production_name=GS500
        vendor_name=LG
        network_type=GSM_MODE
        pid_vid_origin=0x10046000
        bcdDevice_origin=
        pid_vid_now=0x10046000
        bcdDevice_now=
        at_port=
        ppp_port=
  • But, as said before, if your device cannot switch itself from CD-ROM mode to Modem mode, then pid_vid_origin must be filled with "VendorIDProductID" of the USB Mass Storage virtual CD-ROM that your device mounts first. Otherwise, both will be same.
  • Now, make a note of your USB version shown in USBDeview. If it is "2.00", then bcdDevice becomes 0x0200. If it is "1.10" then it is 0x0110 and the like. So, I'm filling them now:
        [GS500]
        dongle_name=GS500
        production_name=GS500
        vendor_name=LG
        network_type=GSM_MODE
        pid_vid_origin=0x10046000
        bcdDevice_origin=0x0200
        pid_vid_now=0x10046000
        bcdDevice_now=0x0200
        at_port=
        ppp_port=
  • Again, if your device cannot switch itself to Modem mode, then you need to find the USB Version of the Mass Storage mounted by your device and fill it under bcdDevice_origin. Otherwise, both will be same.
            By now, we filled in all the info which we can, using Windows. The rest of the two entries need to be filled in tablet itself. So, now save the file and copy it back to your sdcard in tablet. Click here to continue the procedure in tablet.

Share this guide with your friends:
 
 
 




  • Connect your tablet to your PC in USB storage mode. Now, copy the "3g_dongle.cfg" to your home directory / desktop
  • Open the file in gedit.
  • Now connect your modem device to PC. Most modern linux distributions list your modem under /dev/ttyACM0.
  • Issue the following commands in a terminal:
            abhiram@abhiram-desktop:~$ echo -e "AT+GMM\r" > /dev/ttyACM0 
            abhiram@abhiram-desktop:~$ tr -s "\n" < /dev/ttyACM0 
            AT+GMM
            GS500

            OK
  • See the reply given by your modem. Press "Ctrl + C" to get out of tr command. Now start adding a new entry to your "3g_dongle.cfg" file as shown below:
        [GS500]
        dongle_name=GS500
        production_name=GS500
        vendor_name=LG
        network_type=GSM_MODE
        pid_vid_origin=
        bcdDevice_origin=
        pid_vid_now=
        bcdDevice_now=
        at_port=
        ppp_port=
  • Now, issue the following command in your terminal:
 abhiram@abhiram-desktop:~$ lsusb -vv

            Bus 004 Device 002: ID 1004:6000 LG Electronics, Inc. VX4400/VX6000 Cellphone
            Device Descriptor:
              bLength                18
              bDescriptorType         1
              bcdUSB               2.00
              bDeviceClass            2 Communications
              bDeviceSubClass         0 
              bDeviceProtocol         0 
              bMaxPacketSize0        64
              idVendor           0x1004 LG Electronics, Inc.
              idProduct          0x6000 VX4400/VX6000 Cellphone
              bcdDevice           15.12
              iManufacturer           1 
              iProduct                2 
              iSerial                 0 
              bNumConfigurations      1
              Configuration Descriptor:
                bLength                 9
                bDescriptorType         2
                wTotalLength           90
                bNumInterfaces          3
                bConfigurationValue     2
                iConfiguration          3 
                bmAttributes         0x80
                  (Bus Powered)
                MaxPower              100mA
                Interface Descriptor:
                  bLength                 9
                  bDescriptorType         4
                  bInterfaceNumber        0
                  bAlternateSetting       0
                  bNumEndpoints           1
                  bInterfaceClass         2 Communications
                  bInterfaceSubClass      2 Abstract (modem)
                  bInterfaceProtocol      1 AT-commands (v.25ter)
                  iInterface              4 
                  CDC Header:
                    bcdCDC               1.10
                  CDC Union:
                    bMasterInterface        0
                    bSlaveInterface         1 
                  CDC Call Management:
                    bmCapabilities       0x00
                    bDataInterface          1
                  CDC ACM:
                    bmCapabilities       0x07
                      sends break
                      line coding and serial state
                      get/set/clear comm features
                  Endpoint Descriptor:
                    bLength                 7
                    bDescriptorType         5
                    bEndpointAddress     0x83  EP 3 IN
                    bmAttributes            3
                      Transfer Type            Interrupt
                      Synch Type               None
                      Usage Type               Data
                    wMaxPacketSize     0x0040  1x 64 bytes
                    bInterval             255
                Interface Descriptor:
                  bLength                 9
                  bDescriptorType         4
                  bInterfaceNumber        1
                  bAlternateSetting       0
                  bNumEndpoints           2
                  bInterfaceClass        10 CDC Data
                  bInterfaceSubClass      0 Unused
                  bInterfaceProtocol      0 
                  iInterface              5 
                  Endpoint Descriptor:
                    bLength                 7
                    bDescriptorType         5
                    bEndpointAddress     0x81  EP 1 IN
                    bmAttributes            2
                      Transfer Type            Bulk
                      Synch Type               None
                      Usage Type               Data
                    wMaxPacketSize     0x0040  1x 64 bytes
                    bInterval               1
                  Endpoint Descriptor:
                    bLength                 7
                    bDescriptorType         5
                    bEndpointAddress     0x02  EP 2 OUT
                    bmAttributes            2
                      Transfer Type            Bulk
                      Synch Type               None
                      Usage Type               Data
                    wMaxPacketSize     0x0040  1x 64 bytes
                    bInterval               1
                Interface Descriptor:
                  bLength                 9
                  bDescriptorType         4
                  bInterfaceNumber        2
                  bAlternateSetting       0
                  bNumEndpoints           2
                  bInterfaceClass        10 CDC Data
                  bInterfaceSubClass      0 Unused
                  bInterfaceProtocol      0 
                  iInterface              6 
                  Endpoint Descriptor:
                    bLength                 7
                    bDescriptorType         5
                    bEndpointAddress     0x85  EP 5 IN
                    bmAttributes            2
                      Transfer Type            Bulk
                      Synch Type               None
                      Usage Type               Data
                    wMaxPacketSize     0x0040  1x 64 bytes
                    bInterval               1
                  Endpoint Descriptor:
                    bLength                 7
                    bDescriptorType         5
                    bEndpointAddress     0x04  EP 4 OUT
                    bmAttributes            2
                      Transfer Type            Bulk
                      Synch Type               None
                      Usage Type               Data
                    wMaxPacketSize     0x0040  1x 64 bytes
                    bInterval               1
            can't get device qualifier: Operation not permitted
            can't get debug descriptor: Operation not permitted
            cannot read device status, Operation not permitted (1)
  • It's a very lengthy output. See the output particular to your modem. I've highlighted what details are required for us to fill the "3g_dongle.cfg" file. Make a note of the "Vendor ID" and "Product ID" shown. For my mobile, they are "1004" and "6000" respectively. Based on this, I'm filling some more information in 3g_dongle.cfg as shown below:
            [GS500]
            dongle_name=GS500
            production_name=GS500
            vendor_name=LG
            network_type=GSM_MODE
            pid_vid_origin=0x10046000
            bcdDevice_origin=
            pid_vid_now=0x10046000
            bcdDevice_now=
            at_port=
            ppp_port=
  • But, as said before, if your device cannot switch itself from CD-ROM mode to Modem mode, then pid_vid_origin must be filled with "VendorIDProductID" of the USB Mass Storage virtual CD-ROM that your device mounts first (which can be found by lsusb). Otherwise, both will be same.
  • Now, make a note of your USB version shown under "bcdUSB". If it is "2.00", then bcdDevice becomes 0x0200. If it is "1.10" then it is 0x0110 and the like. So, I'm filling them now:
  •         [GS500]
            dongle_name=GS500
            production_name=GS500
            vendor_name=LG
            network_type=GSM_MODE
            pid_vid_origin=0x10046000
            bcdDevice_origin=0x0200
            pid_vid_now=0x10046000
            bcdDevice_now=0x0200
            at_port=
            ppp_port=

  • Again, if your device cannot switch itself to Modem mode, then you need to find the USB Version of the Mass Storage mounted by your device and fill it under bcdDevice_origin. Otherwise, both will be same.

  •             By now, we filled in all the info which we can, using Linux. The rest of the two entries need to be filled in tablet itself. So, now save the file and copy it back to your sdcard in tablet.

    Share this guide with your friends:
     
     
     




    • Open Terminal Emulator app in your tablet
    • Issue the following command: (Important!! You need to issue this command everytime you reboot your tablet)
      # su
      root@android:/ # echo "1004 6000" > /sys/bus/usb-serial/drivers/option1/new_id
    • In the above command, replace the numbers with "VendorId ProductId" for your modem device
    • Connect your device to the Funbook tablet. If your device cannot switch to Modem mode by itself, then you need to issue "usb_modeswitch" command, but that's another issue which is separately discussed at the end of this article. For my mobile, I need to wait for 20-30 sec to let it switch to Modem mode. By now, I assume your device is in modem mode. You can verify that by issuing below command:
          # dmesg
    • Scroll back to see if you get the output similar to what is shown below:
            option 1-1:1.0: GSM modem (1-port) converter detected
            usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
            option 1-1:1.1: GSM modem (1-port) converter detected
            usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
            option 1-1:1.2: GSM modem (1-port) converter detected
            usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
    • If you get the above output, then your device can work with your tablet to get connected to internet
    • Of the 3 ports shown above, we need to know which port can take AT commands, and which one can take PPPD commands, because that's all what is left to be filled in "3g_dongle.cfg". 
    • Getting to know which port takes "AT" commands is so easy. Issue the following command to each of your ports separately by replugging your device each time you change the port to which you issue the command.
            # busybox tr -s "\n" < /dev/ttyUSBx    - Do this in terminal window 1
            # echo -e "ATi\r" > /dev/ttyUSBx            - Do this in another terminal window 2
    • Note down all the port numbers x for which you get reply to the above "AT" command. If you don't get reply, just press "Ctrl + C" and try with another port after replugging the device.
    • Now, you need to find among those ports, which one is AT port and which is for PPPD
    • If you are sending the following commands to your mobile modem, rather than USB card, then you may need to restart your mobile for it to function properly to get connected to internet
    • As demonstrated above, send the following commands to all such ports x discovered in order:
            # busybox tr -s "\n" < /dev/ttyUSBx    - Do this in terminal window 1
            # echo -e "ATi\r" > /dev/ttyUSBx            - Do this in another terminal window 2
            # echo -e "AT+CGDCONT=1,\"IP\",\"www\"\r" > /dev/ttyUSBx
            # echo -e "ATDT*99***1#\r" > /dev/ttyUSBx
    • The 3rd command, "AT+CGDCONT..." needs some explanation. It is actually your modem initialization string. Usually, for GSM modems, it is AT+CGDCONT=1,"IP", "<apn>". Replace appropriately for your modem
    • The replies to each of the above commands in terminal window 1, if x is an AT port, must be the following in the order:
            OK
            OK
            ERROR
    • For a PPPD port x, the replies will be:
            OK
            OK
            CONNECT
    • If you get CONNECT for two ports, then you can use either one as AT port and the other as PPPD port.
    • Now, based on your findings, fill your 3g_dongle.cfg file completely as shown below:
            [GS500]
            dongle_name=GS500
            production_name=GS500
            vendor_name=LG
            network_type=GSM_MODE
            pid_vid_origin=0x10046000
            bcdDevice_origin=0x0200
            pid_vid_now=0x10046000
            bcdDevice_now=0x0200
            at_port=1
            ppp_port=2
    • Now, you need to edit the number to be dialed under [DIAL_NUMBER] section of 3g_dongle.cfg file. Since my connection is of type GPRS / EDGE, I edited:
            wcdma=ATDT*99***1#
    • Save the file and reboot your Funbook now. Plug-in your modem / mobile. 
    • One of our friends, Abhik Kumar, has informed me that he had to add one more dummy configuration (or duplicate the same configuration) in order to get connected to internet through his dongle. Thank you Abhik Hence, if you too face problem connecting, you can try his suggestion.
    • Your Funbook should start showing "G" icon indicating an internet connection, along with signal bars in blue.
    Share this guide with your friends:
     
     
     




    • Some USB modems require some driver / software to switch from zero CD mode to the modem mode
    • For such modems, a command known as "usb_modeswitch" needs to be used, which is present in Android delivered by Micromax Funbook
    • When you first connect your USB modem to Funbook, you can see a configuration file created with name <vendor id>_<product id> of your USB Data Card in Zero CD mode, in the location, /etc/usb_modeswitch.d/
    • Copy the file to /sdcard and open in Jota Text Editor
    • From Windows / Linux, in which your USB Data Card works properly, as described above in my guide, obtain the <vendor id> and <product id> of your USB Data Card in "Modem" mode
    • Copy the same to this configuration file, in place of target ID's
    • The message content is really bit difficult to discover.
    • For that, you need to install some USB Spying software and know the message sequence that your USB Data Card driver sends to your device to switch it to modem mode
    • Then copy that message sequence over here to MessageContent field in the configuration file
    • If everything is filled in correctly, after you plugin your USB card to Funbook, you must be able to switch it to "Modem" mode by issuing command,
            # usb_modeswitch -W -I -c /etc/usb_modeswitch.d/<vendor id>_<product id>
    • But this is not so easy as said above. Try searching for MessageContent string in the internet for your USB Data Card model. If you are lucky enough, you may find the correct one.

    Number of visits to this page: