Success with USB 3G modems on Android

Hello there,

LATEST AND GREATEST UPDATE!

The author of usb_modeswitch has now written a PPP Widget for Android that automates the running of 3G/EVDO USB modems with a GUI! Rush to download your free test version!  It will later appear on Google Play Market, and remain free.

[Update 9th Aug 2011: Now get the latest versions of usb_modeswitch and data packages from its mother site, or use the links posted on Tabletroms.]

I am very happy to note that with crucial help from committed hackers, we now have a working solution for using 3G USB modems on the Adam tablet made by Notion Ink.

The most important requirements, as things stand now are:

1. A running instance of Android with inbuilt kernel support for usb-serial, ppp, option, slhc and ppp_generic, on a tablet with root access. For example, a ROM for Honeycomb (originally hacked out from the Transformer) with a modified kernel, provided by user WinnerGold here.

The current method of installation is to copy the file to the root folder of your SDcard / external SDcard, rename it to update.zip, and run recovery (reboot with Vol ‘+’ key pressed), clear cache, select update and flash.

2. Precompiled ARM binary of usb_modeswitch, available here

3. Configuration of the USB modem inserted in a config file typically called usb_modeswitch.conf, to be copied from the reference file here

Now, with these tools by your side, proceed with the following steps to get the modem working on your Adam tablet. I hope these steps will also provide a good guide for other Android tablets.

Option A

1. Install the HC16 ROM provided by WinnerGold, as it includes the drivers in the kernel, and working dialer scripts.

2. Download the precompiled ARM binary usb_modeswitch and device_reference.txt from http://draisberghof.de.  Well, I pointed you to them earlier, didn’t I?

3. Install Android Terminal Emulator and Jota text editor on the Adam. They’re there, on the Android market.

4. Find out your modem’s vendor and device ID pairs using the internet, the Device Manager under Windows, or using dmesg on the tablet. Remember that the device IDs would be different under the ZeroCD mode and the modem mode. What you’re looking for is the device ID under the modem mode.

5. Look for the ID pairs in the device_reference.txt file, and copy the block that pertains to your device. Paste it to a text file and name it usb_modeswitch.conf (or any other file name that you prefer for brevity).

6. remount the /system folder on the tablet to a read-write mode using the command

Code:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

You need to be root in order to do the above. Also, this is required after each reboot, until a better alternative is found

7. Copy the files usb_modeswitch and usb_modeswitch.conf to /system/xbin (or to /etc/ppp, but I haven’t tried this yet)

8. Make sure both the files have all executable and access rights

Code:
chmod 777 usb_modeswitch

[CODE chmod 777 usb_modeswitch.conf[/CODE]
You could try 766 too.

9. Mount the usbfs file system to /proc/bus/usb. This is necessary to avoid the “Couldn’t opendir()” error you get otherwise on running usb_modeswitch

Code:
mount -t usbfs usbfs /proc/bus/usb

Again, this is currently necessary after each reboot.

10. Plug in your modem to the normal sized USB port on the tablet. You can check if it is identified in ZeroCD mode by running dmesg from the command line

11. From the shell, cd to the directory where you copied the usb_modeswitch files, and issue the command, as root, to switch the mode

Code:
usb_modeswitch -I -W -c usb_modeswitch.conf

If you’re in another directory, it would make sense to embed the full path, e.g

Code:
/system/xbin/usb_modeswitch -I -W -c /system/xbin/usb_modeswitch.conf

12. Issuing the above command should get you an output showing usb_modeswitch searching for your device, matching it against the likely ID pairs in the .conf file and hopefully, succeeding in switching the mode. Run dmesg at the command line to see if the mode has been switched and the device linked to /dev/ttyUSB0, /dev/ttyUSB1 etc., which are the nodes for USB modems.

13. Assuming that you were successful in getting the dongle recognised as a modem, now read the dialer script pair.

The dialing script, according to WinnerGold’s implementation, is /etc/ppp/peers/gprs. It has two lines for your UserID and Password given to you by your service provider.

14. Edit the file /etc/ppp/peers/gprs with Jota editor, replace the ‘cmnet’ user ID with yours, and the ‘cmnet’ password with your password. Save and close the file. You need to do this just once.

15. Open the file /etc/ppp/gprs-connect-chat, which is the config script, and look at the line containing OK ATDT. The part following OK ATDT is the number you have to dial to connect the modem. If you have an EVDO modem, the default number is #777, and for GSM modems, it can be *99# or *99****1# or something like that. Please check your user manual or instructions on the internet, and change the default dialing number with what is applicable in your case. Save and close the file. You need to do this just once.

16. In case you get a ‘could not save’ error for steps 14 or 15, you did not have write permission. Get it.

17. Now close your eyes, say a word of thanks to free software developers, and run the command

Code:
pppd call gprs

where pppd is the PPP daemon, gprs is the dialer script, which also contains the link to the config script. If you decide to write your own alternate dialer, you’ll need to change the pointer to the correct config script too.

18. Look at the modem: does it show lights flashing to indicate dialing / successful connection?

19. Check from the command line with a ping to google.com if you are indeed connected. It helps to have the Hacker’s Keyboard installed so that you can ctrl+c to stop ping, or specify the number of attempts as a command parameter

20. If you can ping, you’re through. I hope at this moment you didn’t have your wifi working and giving you a false positive

21. Enjoy. Else, rinse and repeat step 17, 18, 19 till you’re successful.

22. Ask someone what to do when you want to disconnect. It may not be safe to pull out the modem, as it might damage the circuitry on the rare occasion.

Option B:

1. Instead of WinnerGold’s ROM, you could try just his kernel, which is not yet available separately. In this case, you might need to edit the file /etc/ppp/ip-up to include the following, as suggested by WinnerGold:

You have to add to /etc/ppp/ip-up
on the bottom

Code:
/system/bin/setprop "net.dns1" "$DNS1"
/system/bin/setprop "net.dns2" "$DNS2"
counter=`/system/bin/getprop net.dnschange`
counter=$[counter+1]
/system/bin/setprop "net.dnschange" $counter

Then follow the other steps as per Option A.

About ND

carbon-based life form, prefers science, rationality and freedom
This entry was posted in Uncategorized. Bookmark the permalink.

55 Responses to Success with USB 3G modems on Android

  1. Atul Tiwari says:

    wah 🙂
    beautiful and easy to understand tutorial. Thanks for taking pain in writing it.
    i cant wait for tuesday to test it.
    isnt there any way to copy all the required files from HC16 to the rooted stock rom. Because on 2g speed cant download 100mb rom. 😦

    another question –
    my zte bsnl evdo is of year 2008. At that time these dongles cant be installed without using extrnal cd given with it, as there wasnt any preinstalled virtual cd in device itself (i think, this is what you mean by zerocd mode).
    so, will there be any changes in that case, like in method or in files?

    sorry, i know i am asking very silly questions, for which i should have find answers either by experimenting or by googling. But i dont have proper resourses, at the moment to test and I CANT STOP MYSELF, TO PROCESS THIS METHOD IN MY MIND, so doubts are arising rapidly :p

    thanks.
    regards,
    atul

  2. Nishit says:

    Nice to know your modem didn’t need usb_modeswitch at all 😉

    However, with ZeroCD proliferating now, it is essential, and without trying it out, we would have never discovered that the darned kernel that NI gave us lacked even basic drivers.

    I’m happy to see that developers like jalto and WinnerGold have joined the effort and are contributing greatly to improve the Adam’s usability. The work we have done is also helping owners of other tablet devices.

    I only hope now that we will see driver inclusion by default in future NI / community releases. Even if they decide to give us modules instead of statically compiled drivers, getting them up and running easily every time can be accomplished with scripts, as you have seen.

  3. Hello I tested a tablet usb_mosdeswitch zt-180 7 ”
    android 2.2.
    When it comes to command-
    May fail
    Reading config file: usb_modeswitch.conf
    * usb_modeswitch: handle USB devices with multiple modes
    * Version 1.1.6 (C) Josua Dietze 2010
    * Based on libusb0 (0.1.12 and above)

    ! PLEASE REPORT NEW CONFIGURATIONS !

    DefaultVendor= 0x12d1
    DefaultProduct= 0x1446
    TargetVendor= 0x12d1
    TargetProduct= not set
    TargetClass= not set
    TargetProductList=””

    DetachStorageOnly=0
    HuaweiMode=0
    SierraMode=0
    SonyMode=0
    GCTMode=0
    KobilMode=0
    MessageEndpoint=0x01
    MessageContent=”55534243000000000000000000000011060000000000000000000000000000″
    NeedResponse=0
    ResponseEndpoint= not set
    Interface=0x00

    InquireDevice disabled
    Success check disabled
    System integration mode disabled

    usb_set_debug: Setting debugging level to 15 (on)
    usb_os_find_busses: Found 001
    usb_os_find_busses: Found 002
    usb_os_find_devices: Couldn’t open /dev/bus/usb/001/003
    usb_os_find_devices: Couldn’t open /dev/bus/usb/001/002
    usb_os_find_devices: Couldn’t open /dev/bus/usb/001/001
    usb_os_find_devices: Couldn’t open /dev/bus/usb/002/001

    Looking for target devices …
    No devices in target mode or class found
    Looking for default devices …
    No devices in default mode found. Nothing to do. Bye.

    $ usb_modeswitch -I -W -c usb_modeswitch.conf

    Reading config file: usb_modeswitch.conf

    * usb_modeswitch: handle USB devices with multiple modes
    * Version 1.1.6 (C) Josua Dietze 2010
    * Based on libusb0 (0.1.12 and above)

    ! PLEASE REPORT NEW CONFIGURATIONS !

    DefaultVendor= 0x12d1
    DefaultProduct= 0x1446
    TargetVendor= 0x12d1
    TargetProduct= not set
    TargetClass= not set
    TargetProductList=””

    DetachStorageOnly=0
    HuaweiMode=0
    SierraMode=0
    SonyMode=0
    GCTMode=0
    KobilMode=0
    MessageEndpoint=0x01
    MessageContent=”55534243000000000000000000000011060000000000000000000000000000″
    NeedResponse=0
    ResponseEndpoint= not set
    Interface=0x00

    InquireDevice disabled
    Success check disabled
    System integration mode disabled

    usb_set_debug: Setting debugging level to 15 (on)
    usb_os_find_busses: Found 003
    usb_os_find_busses: Found 001
    usb_os_find_busses: Found 002
    usb_os_find_devices: Couldn’t open /dev/bus/usb/001/003
    usb_os_find_devices: Couldn’t open /dev/bus/usb/001/002
    usb_os_find_devices: Couldn’t open /dev/bus/usb/001/001
    usb_os_find_devices: Couldn’t open /dev/bus/usb/002/001

    Looking for target devices …
    No devices in target mode or class found
    Looking for default devices …
    No devices in default mode found. Nothing to do. Bye.

    • Nishit says:

      Hi, have you checked if usbfs is mounted at /proc/bus/usb?

      You can check with a “mount” command at the console. To mount it, if not already mounted, run “mount -t usbfs usbfs /proc/bus/usb”

      It should mount in rw mode by default. If “mount” reveals it has been mounted ro, you can issue a “mount -o rw, remount -t usbfs usbfs /proc/bus/usb

      Then let me know if this works.

      Edit: Please also check the output of lsusb after plugging in the modem, and make sure you are using the right configuration file.

  4. Como es tu archivo gprs
    pega aqui

  5. You can put your file here grps?

    • Nishit says:

      Sorry for responding late, I didn’t see this last night and am at work right now. I will post the files for you when I get back home tonight.

  6. Now let’s try huawei k3765 and this is the salida.Parece be
    OK?
    But modem is not recognized as ttyUSB0.
    _______________
    The E1752 I put before, this single modem mode (AT ^ U2DIAG = 0)
    with hyper terminal, he recognizes but does not connect to ttyUSB0
    (No carrier)
    You’ve gotten your modem functions in android,,,, I
    ses can not seem to do it or not.
    Thanks for your blog and share.
    # usb_modeswitch -I -W -c usb_modeswitch.conf
    Reading config file: usb_modeswitch.conf
    * usb_modeswitch: handle USB devices with multiple modes
    * Version 1.1.6 (C) Josua Dietze 2010
    * Based on libusb0 (0.1.12 and above)
    ! PLEASE REPORT NEW CONFIGURATIONS !
    DefaultVendor= 0x12d1
    DefaultProduct= 0x1520
    TargetVendor= 0x12d1
    TargetProduct= 0x1465
    TargetClass= not set
    TargetProductList=””
    DetachStorageOnly=0
    HuaweiMode=1
    SierraMode=0
    SonyMode=0
    GCTMode=0
    KobilMode=0
    MessageEndpoint= not set
    MessageContent=”55534243123456780000000000000011060000000000000000000000000000″
    NeedResponse=0
    ResponseEndpoint= not set
    Interface=0x00
    InquireDevice disabled
    Success check disabled
    System integration mode disabled
    usb_set_debug: Setting debugging level to 15 (on)
    usb_os_find_busses: Found 001
    usb_os_find_busses: Found 002
    usb_os_find_devices: Found 005 on 001
    usb_os_find_devices: Found 004 on 001
    usb_os_find_devices: Found 001 on 001
    error obtaining child information: Inappropriate ioctl for device
    error obtaining child information: Inappropriate ioctl for device
    usb_os_find_devices: Found 001 on 002
    Looking for target devices …
    searching devices, found USB ID 12d1:1520
    found matching vendor ID
    searching devices, found USB ID 0bda:8176
    searching devices, found USB ID 1d6b:0002
    searching devices, found USB ID 1d6b:0001
    No devices in target mode or class found
    Looking for default devices …
    searching devices, found USB ID 12d1:1520
    found matching vendor ID
    found matching product ID
    adding device
    searching devices, found USB ID 0bda:8176
    searching devices, found USB ID 1d6b:0002
    searching devices, found USB ID 1d6b:0001
    Found devices in default mode, class or configuration (1)
    Accessing device 005 on bus 001 …
    Getting the current device configuration …
    OK, got current device configuration (1)
    Using endpoints 0x01 (out) and 0x81 (in)
    Using endpoints 0x01 (out) and 0x81 (in)
    USB description data (for identification)
    ————————-
    Manufacturer: HUAWEI Technology
    Product: HUAWEI Mobile
    Serial No.: not provided
    ————————-
    Sending Huawei control message …
    OK, Huawei control message sent
    Warning: ignoring MessageContent. Can’t combine with special mode
    -> Run lsusb to note any changes. Bye.

    #ppp call gprs
    ppp: permission denied
    # pppd call gprs
    pppd: In file /data/etc/ppp/peers/gprs: unrecognized option ‘/dev/ttyUSB0’

    • Nishit says:

      You need to run dmesg after running usb_modeswitch to see where the modem was being attached. However, it seems there is some conflict with the special mode switch (-H). Please make sure that you have not changed the modem to single modem mode with hyperterminal, or else reset it.

      Another thing is that you need to enter the mount command properly. Please make sure that it is exactly “mount -t usbfs usbfs /proc/bus/usb” and that no spaces are being missed or added.

  7. no tengo /proc/bus/usb
    mount-t usbfs usbfs / proc / bus / usb comand not found
    mi dispositivo es zt-180 android 2.2 de 7″

    • Nishit says:

      As I have replied earlier, please make sure that the command is “mount -t usbfs usbfs /proc/bus/usb” and not “mount-t usbfs usbfs /proc/bus/usb” or “mount-t usbfs usbfs /proc /bus /usb”. There is a space between “mount” and “-t”, and there are no spaces within “/proc/bus/usb”.

      What seems to be happening here is that the system can’t find the ‘mount-t’ command. The problem is not the ‘/proc/bus/usb’ path.

  8. #mount -t usbfs usbfs /proc/bus/usb
    no such file or directory

  9. #mount -t usbfs usbfs /proc/bus/usb
    no such file or directory
    Este es el problema
    Warning: ignoring MessageContent. Can’t combine with special mode

  10. Nishit al final lo consegui, pero no conecta aún, tengo que ver los archivos
    searching devices, found USB ID 0bda:8176
    searching devices, found USB ID 1d6b:0002
    searching devices, found USB ID 1d6b:0001

    Found target device, now opening

    Found target device 011 on bus 001

    Target device description data
    ————————-
    Manufacturer: HUAWEI Technology
    Product: HUAWEI Mobile
    Serial No.: not provided
    ————————-
    Found correct target device

    Mode switch succeeded. Bye.

    • Nishit says:

      Congratulations, Manuel! Did you check the dmesg output? Did the modem get attached to /dev/ttyUSB0?

      If you find that it is getting attached somewhere else, you need to change the relevant part of your /etc/ppp/peers/gprs file.

      Please tell me about the tablet that you have: manufacturer, model, Operating System with version, kernel version.

  11. Nishit
    I have these errors in dmesg.
    USB error: could not clear/halt ep 129: Protocol error
    Error resetting endpoint: -71
    USB error: could not release intf 0: No such device
    Salida final–Found correct target device
    Mode switch succeeded. Bye.
    Pero no fija /dev/ttyUSB0.
    pppd call gprs,,,,,no se reconoce dev/ttyUSB0
    Seguirè mirando a ver que puese ser.
    Saludos
    UPAD Zenithink 7 pulgadas Tablet PC ZT-180 4GB 256DDR 1GHZ Android 2.2 Froyo HDMI 0,3 M cámaras CEMZT180701 (75 Euros, muy barata)

  12. Nishit
    A moden released, mode = AT ^ U2DIAG = 0.
    usb_modeswitch modem works well.
    I have only unlock huawei 175 modem.
    This in ttyUSB0, I can put apn.
    But does not connect, pppd call attempts enmpieza carrier and in the end.

  13. Nishit
    You can put your file here grps?

    • Nishit says:

      Hi, I will post them soon. Sorry, I don’t carry my tablet to work, and usually get distracted with playing games on it when home.

      If you are unable to get results from ‘pppd call gprs’, please check if ril-daemon is running on your tablet with ‘ps | grep rild’ or ‘ps | grep ril-daemon’. You could also run ps by itself and scroll to see if you have /system/bin/rild in the output. If it is running, stop it with ‘stop ril-daemon’ and then run ‘pppd call gprs’.

      I have asked another user to give me his gprs and gprs-connect-chat files. I will post them as soon as I get them.

  14. radicalvision says:

    Dear dune,
    Thanks mate and thanks to WinnerGold , http://www.draisberghof.de (Josua Dietze), MrGuy, opensource enthu community. This hack works. Confirmed.
    For other readers:
    My specs:
    Reliance NetConnect Broadband+ Huawei EC1260 with
    Vendor ID: Product ID 12d1 : 140b
    Notionink Adam Wifi + 3g model with WinnerGold ROM as above

    Before flashing the ROM, please do user data/ factory reset and clear cache. Then apply update.zip
    Use Root Explorer v2.16 app, (download apk from market) to avoid read-write issues. This version runs on Honeycomb. Download from below:
    http://mobileplanet-waryam.blogspot.com/2011/05/root-explorer-file-manager-v216-android.html

  15. Kunal Khona says:

    error in /data/etc/ppp/peers/gprs
    unrecognized option -v
    if i remove -v i get error as unrecognized option -t
    where m i worng?
    plus what is the username and password(req for gprs file) for tata photon plus ec1261 ?wer can i find it?? its a direct dialup..i think so?

    • Nishit says:

      Tata Photon+ username and password both are ‘internet’.

      Don’t change the gprs file without learning about command options first. Try ‘/system/bin/chat-ril –help’ as command to understand how it works.

    • radicalvision says:

      u wanted my email id / contact me ?
      was your problem resolved ?
      sorry for commenting so late .. i was off from dune’s blog for more than a month or so..

  16. Kunal Khona says:

    radicalvision says:
    July 5, 2011 at 11:49 pm

    Dear dune,
    Thanks mate and thanks to WinnerGold , http://www.draisberghof.de (Josua Dietze), MrGuy, opensource enthu community. This hack works. Confirmed.
    For other readers:
    My specs:
    Reliance NetConnect Broadband+ Huawei EC1260 with
    Vendor ID: Product ID 12d1 : 140b
    Notionink Adam Wifi + 3g model with WinnerGold ROM as above

    mine device is also same…anyone knows how do i contact him?? dune can u giude me or provide me his email? please?

  17. Hi Nishit,
    i came across your blog searching for solutions to use my Tata Photon plus (EC152) on my Adam WiFi (non 3g).
    i am a regular user and not an expert, hence i have few queries regarding using Tata Photon (EC152) on my Adam WiFi…
    1. how do i install the HC16 ROM?
    2. how do i find out my modem’s vendor and device ID pairs.
    3. i looked for the ID pairs in the device_reference.txt file, but dis not find Huawei EC152, what is the alternative
    4. do i need to root my device, i really do not want to root it, is there any other alternative, what could be the consequences of rooting the device in future, can the device be un-rooted

    looking forward for solutions 🙂

    thanks in advance.

    • Nishit says:

      Hi Abhijeet,

      Answers to all your questions are on the TabletROMs forum. Look here and on other threads.

      I think it is a good idea to root your device, because a) Notion Ink has not voided warranty for any rooted device yet, b) they themselves are dependent on the community for fixes, and c) their support (and probably the company) is dead anyway so you don’t need to worry. The stock NI ROM does not have support for these devices, so you will need one of the community ROMs which are rooted anyway.

      You can plug your modem into a windows computer and see device manager to get the ID pairs, or you could search the internet like I just did. The unswitched ID pair is 12d1:1446 and the switched pair is 12d1:140b. This is the same as the EC1260 and EC1262 models.

      Anyway, the HC16 ROM that I had used, the AC02 and AC03 version patches that mbmad has published and the EdenX 2.7.1 that I am using now all have the whole database from usb_modeswitch-data in the usb_modeswitch.conf directory. You can just install one of these, which are already rooted as I said.

  18. I am getting “E/pppd ( 555): Connect script failed” in the logcat when I call pppd call gprs.
    Not sure what is wrong here

    Any idea?

    • Nishit says:

      Hi Arun,

      More information is needed to determine the cause, but you can check if the modem is getting a signal in the first place. On Huawei modems, two flashes at a time means the signal is OK. One flash means it doesn’t have a signal. You can let the modem rest a while and then try pppd call gprs again. Also, please check if you have changed the number to be dialed to the one used by your network type / service provider.

  19. corvusmod says:

    Any way to get this more user friendly, i mean… changing configuration from gpsr and chat files (like user or apn info)? And some way to launch it from system UI (i think about Gscript, but i want a more user friendly app, less code :D).

    You can see that i get same results in corvusmod.wordpress.com with wetab tablet.

    • Nishit says:

      No, Gscript is about it. The alternative is to make a custom ROM with scripts that recognize when the modem gets plugged in and run usb_modeswitch by themselves. I use one such ROM for the Adam, which now has the contents of usb_modeswitch-data as a directory, alleviatng the need for writing the usb_modeswitch.conf yourself. I think that hacks like these appeal more to geeky users, who might not be scared of the command line.

      In any case, the current hack of running these modems on Android is a bit too imperfect, as the Android system does not see the connection. The problem is that the Android framework does not define a PPP connection method, although the kernel and userland work with it. Therefore, most of the apps that rely on a working connection don’t run. Downloads mostly don’t work, especially in the Market. Another downside is that the battery depletes much faster.

      Another method to try is to use an RIL for the specific modem that you have, and configure it through the System Configuration widget, just like you would configure a connection using a SIM card. However, this means that you will need different RILs for each modem, and if you use a 3G enabled tab, you lose the 3G functionality as you replace the default RIL. However, under this option, all the apps work properly.

      In summation, I have come to believe that without an enhancement to the Android framework, this hack is too much effort for a little gain. It is better to run a portable hotspot, preferably on a mobile phone.

      • corvusmod says:

        Thanks…
        My problem is diferent because we are using an internal huawei mode, so no need to usb_modeswitch or worry about the user take the modem out. But i have a specific ril, so i will work with it.

        Corvus

  20. I still have a problem with my ZTE ac2726, I am using ICS on my android tablet. I try to connect with
    “usb_modeswitch -c /etc/usb_modeswitch.d/19d2_fff5”
    Then it said:

    No devices in target mode or class found
    Looking for default devices …
    No default device..

    And usb_modeswitch end.. But from I plug my USB modem the lights is up.. Is there solution for this kind of problem?

    Sorry for my bad english.

  21. Thank you for your reply.. I change the configuration file like:

    ########################################################
    # ZTE Test
    #
    # Contributor: andylog

    DefaultVendor= 0x19d2
    DefaultProduct= 0xfff1

    TargetVendor= 0x19d2
    TargetProduct= 0xfff1

    MessageContent=”5553424312345678000000000000061e000000000000000000000000000000″
    NeedResponse=1
    ########################################################

    And use “usb_modeswitch -c /etc/usb_modeswitch.d/19d2_fff1″ , it finaly show result:
    usb_modeswitch found my hardware, sent message success, but cant read message
    And when try to find target device it said my device gone..

    Still cant connected.. 😦

    Best Regards..

  22. Nishit says:

    I hope you didn’t change the DefaultProduct ID.

  23. Here is the result of the command:

    Looking for target device…
    Found device in target mode or class(1)
    Looking for default device…
    Found device in default mode, class or configuration(1)
    Accessing device 003 on bus 001…
    Getting the current device configuration..
    OK, got current device configuration(1)
    Using first interface: 0x00
    Using endpoints 0x02 (out) and 0x82 (in)
    Not a storage device, skipping SCSI inquiry

    USB description data (for identification)
    ——————————
    Manufacturer: ZTE, Incorporated
    Product: ZTA CDMA Tech
    Serial No.: not provided
    —————————–
    Looking for active driver …
    No driver found, either detached before or never attached
    Setting up communication with interface 0
    Using endpoints 0x02 for message sending…
    Trying to send message 1 to endpoint 0x02…
    Ok, message successfully sent
    Reading the response to message 1(CSW)…
    Response reading got error -110
    Device is gone, skipping any further commands

    Checking for mode switch(max. 20 times, once per second) …
    Searching for target devices …
    Searching for target devices …
    Searching for target devices …
    .
    .
    Searching for target devices …
    No new device in target mode or class found

    Mode switch has failed. Bye.

    Any clue?

  24. Recently I brought an UPAD Model: zt180, Wickedleak 1GHz CPU GOOGLE ANDROID 2.2 TABLET PC 7″? But my ZTE MF631 3g USB modem not detecting by this Tablet or not recognize by this tablet ? So, is there any way to do the same?

    • ND says:

      Hi, in order to use the modem, you will need to:

      1. Root your tablet
      2. Install a terminal emulator
      3. Install usb_modeswitch and other helper libraries and scripts

      This can make your modem work, but only some apps will recognize the connection, and downloads won’t work (as the Android framework will be unaware of this connection).

      You can alternatively buy a portable wi-fi hotspot (prices range between Rs.3,000 – Rs.5,000) to use with your modem, or ditch the modem and buy a mifi device from Vodafone, Airtel etc. Yet another alternative is to use the hotspot functionality of your mobile phone, if it has one, and a 3G connection.

    • ND says:

      …and I forgot to add that you will also need a new kernel with the necessary modules.

  25. Thanks 4 you suggestion… but is there any 3g usb modem of any make you can suggest me…other than you last suggestion… Thanks again 4 you help….

    • ND says:

      I use a Huawei EC 1262 (EVDO), and I have also used other Huawei and ZTE models. In 3G, I have also used the Airtel modem, but I forget which make it used to be.

      By the way, if you have the ability to root your tablet, you can go and check the PPP Widget for Android on http://draisberghof.de

  26. Shah Azam says:

    how can i upgrade hc16_3ghuawei in my tablet. i cant copy it directly.

  27. Vin Desai says:

    Hi I am connecting EC1262 dongle to the tablet. every thing works fine like USB mode switch. In “logcat -b radio” I find that command AT+CLCK is failing and gives CME error 10. Is there a way to issue modified command without changing ROM.

    • ND says:

      Hi sorry, but I am a bit tied up to look up for a solution right now. You could help me by providing more information about the hardware on which it is running, software, etc.

    • ND says:

      Oh, that is a ‘SIM card not inserted’ error, generated on locking, unlocking or interrogating a network facility, it seems. Is your modem becoming active (two LED flashes, not one) before it is dialed? More information needed for your setup, please.

    • ND says:

      Do you have a rooted tablet? You will need PPP Widget. However, and most importantly, please check if the Tab has a full powered USB port.

      If it does, you need just an adapter to connect the USB modem. If the port is not full power though, you’ll need a powered hub, which makes things a bit iffy and messy…

      Your next best bet is wifi tethering with your mobile phone’s 3G connection, and after that, a portable hot-spot.

  28. Samrat Saha says:

    Hello ND,

    Thanks for your tutorial, I have a q88 A13 tablet but when I connect with my USB MODEM it hung up, Could you please help me to assist how to do so, as my possible guess is my tablet is not able to power my USB MODEM.

    • ND says:

      well actually you need to have a full power USB port on your tablet, and a kernel with proper driver support. I have tried using my modem with my Galaxy Note, and it leads to crashes (I use PPP Widget). I guess the kernel and the hardware may be unable to handle the load.

      Secondly, using USB modems may also be very difficult from Android 4.3 onwards, and even the author of usb_modeswitch and PPP Widget acknowledges this.

      It’s best to invest in a good mifi device, such as an Edimax portable router now.

  29. Sreedev VJ says:

    Acess internet from Huawei Ec325 on my galaxy tab 2

    I have a huawei EC325 CDMA modem which have unlimited internet connection that i wish to connect to my galaxy tab 2 via OTG cable and acess internet.

    The modem when i connected will show the LED blinking and after some time it turns off.

    installed the PPP Widget 2 and it is not detecting the modem. is there any luck so that i can make it working with the modem.

    i also tried GSM modems through the otg cable but i am not aware about how to make the device use the external modem.

    My device is rooted and runs kitkat version of cyanogenmod

    • The Tab 2 does not provide enough power on the OTG port. Use a USB hub with external power, or an OTG cable with power ‘injection’.
      The external power supply for USB modems is actually listed as a requirement for PPP Widget 2 in its description.

Leave a comment