<Update>
The latest 64-bit version of most vendor’s drivers now work fine without following these instructions or using GobiLoader. I updated my Thinkpad to Win7 Retail x64 using Lenovo System Update to install all the drivers and now my Gobi card works great even after a sleep/hibernate.
</Update>
I have been surprised by the extremely small number of compromises that I’ve had to make after installing Windows 7. One of the more painful for myself however is the problem with support for my laptop’s internal WWAN card which is based on the Qualcomm Gobi chipset. It looks like this chipset is used on some HP laptops as well as my Lenovo Thinkpad (W500) and my Boss’ X301 for both Verizon and/or AT&T. This chipset is new from Qualcomm and is supposedly a global radio supporting any provider on both CDMA and GSM by using a dynamic firmware capability.
During the time of the Windows 7 beta and now the recent RC1 there have been some rumblings from people that need this support to be able to use Windows 7 full-time. Reading through the posts and trying to get this to work I’ve found there to be two blocking issues getting this card to work, the first is getting the drivers to install on Windows 7, and the second is getting the dynamic firmware to load onto the card.
Installing the Drivers
The problem with installing the drivers is caused by a library that Qualcomm uses to support the installation called difxapi. The supporting DLL for this API is included in the installation package and it conflicts with the Windows 7 version, this conflict causes a custom action in the installation routine to fail and forces a rollback of the installation.
To fix the problem we need only to replace this DLL with the one from your Windows 7 installation. If you don’t have it already you need to download the driver installation package from your laptop manufacturer’s support site and extract it somewhere.
Starting from where you unarchived your package look for a directory similar to “\Driver\Source\Module Retargetable Folder\QCUSB-Lenovo\DriverPackage\Microsoft\DIFxAPI”. Now you just need to replace the difxapi.dll here with the one from “c:\windows\system32\”. If you are running 64-bit Windows then copy the DLL into the amd64 subdirectory, for 32-bit installations copy the DLL into the x86 directory, if you’re not sure you can safely copy it into both directories.
Once you replace this DLL the setup.exe under the “Driver” directory should now run successfully. Once the installation finishes verify that you have the “QCUSB-*” and “QDLService” directories under “c:\QUALCOMM”.
Loading the Firmware
I’ve somewhat mimicked two Linux programs and wrote a tool called GobiLoader for Windows 7 that is able to successfully load firmware onto the card for any of the supported wireless providers (see More About the Firmware for more info).
Since the Qualcomm service is not able to load the firmware properly we will need to disable it so that it doesn’t conflict with GobiLoader. Bring up the “Services” control panel and in the list of services find the one labeled “Qualcomm Gobi Download Service”. Double click the service to bring up the properties, if it is running click the stop button; to disable the service change the “Startup type” drop down to “Manual” and click “OK”.
Before you use GobiLoader you will need to verify that the proper firmware files will be loaded. To find the proper firmware files you can take a look at the Qualcomm Download Service log file on your Vista installation. The log file is called “QDLService.txt” and can be found under the “C:\Users\All Users\QUALCOMM\QDLService” directory. Open the log file and verify the path to the firmware files that it is loading, you will see something like this:
05/06/2009 03:50:47.938 20 70 72 6F 74 6F 63 6F 6C 20 74 67 74 04 00 F0 05/06/2009 03:50:47.938 CB 04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 05/06/2009 03:50:47.938 30 05/06/2009 03:50:47.938 QDL sending image file: C:\QUALCOMM\QDLService\Packages\1\amss.mbn 05/06/2009 03:50:47.938 QDL protocol server request sent 05/06/2009 03:50:47.938 0002 [9 05/06/2009 03:50:47.938] 05/06/2009 03:50:47.938 25 05 68 48 4E 00 01 00 00 00 04 00 00
The number ‘1′ in the firmware path (C:\QUALCOMM\QDLService\Packages\1\amss.mbn) in this case is the ID for the firmware that my Vista installation was successfully using. Your number may be different depending on who your wireless provider is (AT&T, Verizon, Sprint).
Remembering the firmware number go back to Windows 7 and under the same “C:\Users\All Users\QUALCOMM\QDLService” directory open the “Options.txt” and verify that it is pointing at the correct firmware. After I installed the Qualcomm drivers on Windows 7 it was pointing at the wrong firmware so I had to manually correct the path. GobiLoader reads this file to load the correct firmware, so be sure it is correct or your card will not work. GobiLoader also assumes that the “Options.txt” file is located at “C:\Users\All Users\QUALCOMM\QDLService”; and it relies on the registry to detect which COM port that the QDLoader device is listening on.
Once you have everything in order you can simply run GobiLoader.exe and watch for a successful upload. Once the upload has happened you should see your WWAN modem become available.
You will need to run GobiLoader after any time that you shutdown, sleep, or hibernate your laptop.
More About The Firmware
Glancing at the firmware files I noticed that they had an ELF header, and running ‘file’ on them evoked this: amss.mbn: ELF 32-bit LSB executable, ARM, version 1 (ARM), statically linked, stripped
It seems that the Qualcomm Gobi chipset runs embedded Linux on an ARM processor, and the firmware files are simply executable programs. When the firmware files are uploaded they are being copied into RAM and then run just like any other Linux program. Since these programs are in RAM they are lost every time the card gets power-cycled (including during sleep or hibernate) and the card reverts to a blank slate.
In its blank state the card’s built-in firmware exports a single USB serial port device — called HS-USB QDLoader — to the operating system, this port is used solely for the upload of the firmware files to the card. You can think of this built-in functionality as something like a bootloader.
I find this design rather ingenious, since the running firmware programs are simply Linux executables they’ve opened up the pool of capable developers considerably. Qualcomm should be able to be quite agile in fixing bugs and adding features since the developers can write user-mode programs, where most firmware is either bare metal or kernel-mode code. As the power of embedded processors grows I expect to see solutions like this become more common.
Once the firmware has been loaded, the QDLoader device goes away and the modem’s other ports attach to the system; these devices appear in the Windows device manager.
The laptop manufacturer’s driver package installs a Windows service called “Qualcomm Gobi Download Service”, its job it is to upload these firmware files to the card after every power-cycle. Thanks to Alexander, Sergey and Mathew I was able to work out how the Download Service actually interacts with the card.
The Future
I don’t know how responsive Qualcomm is, so I don’t know how quickly these issues will be resolved; I would hope that as the Windows 7 release looms near that they will be prioritizing support. If these problems are not fixed soon then I will probably package GobiLoader up into a service that watches for the QDLoader port to load the firmware on-demand.
I’m also working on a post describing the handshake protocol in detail based on what I was able to gather from other code, protocol traces, and trial-and-error. Hopefully this detailed information can be useful in making the Linux support more robust, which — for me — is useful when firing up my Ubuntu partition.
Update:
I’ve cleaned up the source code and you can grab it here if you’d like to take a look or modify it. GobiLoader Source

86 Comments
I have had mixed success with your solution. I was able to get the installation part completed. I am getting an error when I run the GobiLoader as follows:
GobiLoader for Windows 7
—————————————
Found loader comport COM5 for a Lenovo Qualcomm card
Opening connection to card
Sending InitialMessage
Connection to card closed
!Boom: Invalid Response recieved; expected 02 got 0A
Not sure where it’s geting the COM Port from. In Device Manager the Qualcomm is listed under ports and shows port 4.
Any help would be appreciated. I really don’t want to go back to Vista.
Thanks.
Steven,
The COM port is found in the registry, which should be populated by the Qualcomm driver. For the Lenovo card it is under the HKLM\System\CurrentControlSet\Enum\USB\VID_05C6&PID_9201\DeviceParameters\PortName key. You can check to see if this jives with your device manager, also make sure that the device in device manager is called a Loader. If your device is not the one referenced by the COM port in the registry try and found out what device is, GobiLoader is talking to something.
Josh
Followed instructions for my thinkpad t400 with w7 rc installed. First I got the wrong com port, so went to device manager and discovered the 9202 is in com6 so edited registry. You were right it is in the 9201 key although one might think it is in 9202 since that’s the number of the qualcomm. I’m a neophyte, not a programmer, just an informed user. But then I got stumped. I ran gobi loader again, but this time it said expected 02 got 01, just as above with Steven.
I reinstalled all the Gobi drivers. Your loader now works. Thank you. Is it possible for you to convert it into a service so it can replace the loader provided by Qualcomm? Just a thought. If not, I’ll give it a go. It’s been a while since a wrote a service, but I can give it a try.
I’ve been trying at this a few different ways and then I realized what was going on. I do not have a QDLoader under Ports in Device Manager. I’m using the Qualcomm NMEA 9202. I tried putting in its hardware id but after doing so Gobiloader simply starts up and says ‘Press any key to continue’ and that’s it. Before that it tells me it cannot ascertain the com port in my registry for my modem.
What information do I need to give to try and get this going?
Hi Josh,
I am hoping you could help. I have successfully loaded my card using your method. Well done!!!
I have an hp6730b running Windows 7 x64 RC 7100, I can’t install the vodafone software or the VZAccess Manager software. It just exits the installer even when trying to run it in compatibility mode. Is there any software out there that I can use on my machine.
I tried using the HP Connection Manager software, but it unloads the driver.
Thanks in advance.
Regards
Image loads but the VZ software won’t initialize the card. Device manager shows that everything is loaded properly. When I try and run the self-activation it tells me I have no coverage, which is not true. I am in the middle of manhattan. Error QA918. That’s as far as I get. Any comments?
I seem to have gotten gobiloader to load up properly by simply redoing the same steps a few times. Now I’m getting loaded up as GobiGlobal. So I imagine that’s the ‘packages’ link from before that’s causing that, and will be experimenting with those momentarily.
Steven,
Half way through the activation process the card will reset itself and expects the drivers to be loaded again. During the activation process keep your Device Manager open and watch for the Loader device to reappear, when it reappears run GobiLoader again to reload the drivers and the activation process should complete successfully.
Josh
Michael,
The 9202 device is the NMEA (GPS) port for the Gobi card. If that port is showing up then the drivers are probably already loaded. When you do a cold start of your computer you should only see a Loader device in the ports collection. Once you run GobiLoader the Loader device will go away and an NMEA and Diagnostics device will show up under Ports, and a Qualcomm USB Ethernet Adapter will show up under Network adapters.
Josh
Danny,
If the NMEA port is showing up then the drivers are already loaded, you don’t want that device-id in GobiLoader. See my reply to Michael for more info.
Josh
Alright I got it to do the switch from NMEA 9202 to QDLService. I actually had to load the verizon software. Now I can’t get VZAccess Manager to see the card as a GSM one, it won’t load it up. It keeps remaining in VZGlobal and says it can’t load the driver for VZ GSM.
Uninstalling VZAccess Manager, and reloading it does nothing. And shutting down computer and various combinations of attempting to wipe the firmware from memory does not work as well.
So, specifically, it says that VZManager is unable to load GSM firmware onto the device.
I tried what you suggested and GobiLoader hangs as shown below:
GobiLoader for Windows 7
—————————————
Found loader comport COM4 for a Lenovo Qualcomm card
Opening connection to card
Sending InitialMessage
Sending FirmwarePreludeMessage
Sending SendFirmwareFileMessage
Sending firmware file to card.
20% written, 1048576 bytes of 5130344
41% written, 2097152 bytes of 5130344
61% written, 3145728 bytes of 5130344
82% written, 4194304 bytes of 5130344
100% written, 5130344 bytes of 5130344
Sending FirmwarePreludeMessage
Sending SendFirmwareFileMessage
Sending firmware file to card.
I tried it a few times and one time it went through but device manager did not reset after a succesful load, it still showed the loader under ports.
Any ideas?
Thanks.
-Steven
This software works perfectly, but after I put the machine to sleep, or hibernate or anything, it doesn’t work. The only thing to do is to shut it down and remove both batteries and restart to get it to work.
Anyone else have this problem?
Steven,
Did you ever resolve your issue with the application hanging on the second “Sending Firmware”
While this has been working perfectly for me for weeks (except that I have to pull both batteries out and restart to get it to load), all of a sudden over the past 3 days, I have been having this same error
No. I have given up on the card for now. Very annoying, but it needs to be more stable.
Hi Steven, your solution did it for me – thank you. I am lucky that I came across your solution otherwise, I’d have wasted hours and days figuring it out – with no success (as I am not a techie). I had a bit of trouble because I had been impatient – it takes about 30 secs after running Gobiloader for the system to ‘wake up’ the WWAN card. Thanks again. cL
I have a Lenovo T400 with the Qualcomm Gobi card. I’ve been looking around for a solution to the “Vista x64 driver won’t install” issue for a while, and this absolutely did it – copying over the Win7 version of dfixapi.dll worked perfectly.
I noticed that immediately after driver install, the card showed up in the Device Manager in the “initialized” (i.e. firmware loaded) state, with COM ports assigned, etc.
Rather than disable the Gobi firmware loading service, I left it running, rebooted, and found the Device Manager in the same state, i.e. firmware loaded.
Upon starting the VZ Access Manager (I have Verizon), it proceeded to initialize the card, reload a -different- firmware (the GSM firmware had been loaded by default – it stated “No SIM card found” and asked if I wanted to switch to CDMA mode) and finally came up perfectly.
Everything continues to work after sleep, shutdown, etc.
So it appears that this particular Win7 build (7100) with this particular driver version (1.0.9) on my T400 has no need for GobiLoader at all – the stock firmware loader service seems to work fine.
Thanks again for figuring out the driver installation issue.
I am trying to get this thing working on my Vaio Z Win7 64-Bit.
I have installed the Sony images (packages = frimwares for different carrieres).
I have installed the 64-bit drivers for the Qualcomm HS-USB QDLOADER 9221.
Gobiloader finds the files and the hardware on com-port 20. Unfortunately it does not always install the firmware. It says “sending frimware files” but hangs… Currently I try to go through all the packages. The one that is suppossed to be “EU UMTS generic” which should be the one I need, hangs on sending… :(
One it hangs, I can only hard-reset (force by using the 3-sec power button) my laptop to reboot.
Any idea how I can solve this?
I would really like to get WWAN to work under WIn 7 64 bit… :/
Can the GPS built into the Gobi card be accessed in this way? Is there anyway to access the GPS? I have scoured the net and have not found any software or APIs that access the GPS on the GOBI.
Can you load different firmwares based on which service/provider you want to use? I’m assuming you would also have to load their proprietary WLAN controller (like VZ Access Manager). Thank you for your hard work!
Josh, are you still reading these comments?
Thanks this worked perfectly on my VGN-Z Sony and windows 7 RTM
Just installed windows 7 RTM 64bit on hp2730p. Gobi WWAN is working fine as supposed. Installed WWAN Driver, Wireless Assistent, and Connection Manager. Installation and Usage of qualcomm Card is OK now.
The Problems described above a had also with Beta and RC of windows 7.
Matthias
Great work, although it doesn’t work with my Acer Aspire One A150-3G.
QDLoader is in the Device Manager and Drivers are correctly (modified) installed.
But GobiLoader says that it couldn’t divine the Com Port from the registry… any idea? It’s really important.
Greetz from Germany
I have GOBI running on Panasonic Toughbook CF-30 and the unit connects but then drops completely unless I restart the computer, sometimes it works flawlessly and other times it doesn’t. I have reinstalled the firmware/software for the unit same problem.
What can I check to make sure my installation worked and these problems will stop. I am using Sprint as my main Carrier here.
Thanks a lot for this post. I finally have a working Gobi card in Windows 7. My only other option was downgrading back to WIndows ME, I mean Vista.
I managed to get my GOBI WWAN card in HP EB 2530p working with beta driver from IBM.
http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=WIN7-BETA#undp
1. install driver from IBM (I installed complete package and then uninstalled APPL, leaving only QUALCOMM drivers for LENOVO), then I went to device manager and pointed driver location on qualcomm directory on root C:\QUALCOMM\QCUSB-Lenovo\DriverPackage\Qualcomm\Win32 (you need to force windows to take LENOVO driver). There are 9 drivers available, you need to point to QDLOADER driver. If installation is sucessful, system will find 4 new devices…
2. Installed drivers and application from HP web site
3. Installed HP Connection Manager 3
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&cc=US&swItem=ob-74410-1&prodTypeId=321957&prodSeriesId=3782222
It Works for me…
Probably some steps are not nessesary, I will post cleaner tips when I will install next laptop.
For those with the HP-branded cards, the new release of HP Connection Manager v3 works nicely on Win7 x64
ftp://ftp.hp.com/pub/softpaq/sp45001-45500/sp45134.exe
Strangely, the driver download page for the 6930p still references v2.
I just wanted to add that after hammering HP for weeks on this, I finally was able to get the HP un2420 Gobi WWAN module working in my HP Mini 311 running Win 7 (RTM) using a combination of SP44914 (actual Gobi 2000 drivers) and SP45134 (HP Connection Manager). Prior to those two driver file packages, nothing worked for me. It should be noted I am using AT&T for my 3G WWAN, so I do not know if 44914 is GSM specific firmware or not, but I FINALLY have a workable solution and I hope this is helpful to those who were stuck like I was.
https://coll777.securesites.net/sdk/getfile.php?file=Gobi_1000_SDK_Win.zip&dir=GOBI_1000
not sure if this will work but i found a link to the GOBI SDK
I found a solution and thought I would share:
Problem was:
New Lenovo T400 laptop with Windows 7 and Qualcomm 9202 embedded Verizon Mobile Broadband modem.
Lenovo’s Access Connections would not let me use the WWAN card to access the internet, saying that the Sim Card was not inserted, and the WAN card was not activated. Yet it would not let me activate it. Meanwhile, Verizon Wireless tells me that everything is set up properly and ready to go.
So I downloaded VZ Access Manager from the verizonwireless.com site (even though it says that Windows 7 is not supported), and used that to “activate” the card. Using VZ Access Manager, the program tells me the SIM card is not inserted…but, aha, it says that I can switch to CDMA. I clicked “yes” and now everything works perfectly!
Hi there,
I have Sony Z51XG/B with Gobi 9222 card.
All the ports show up – ethernet, WWAN and especially HS-USB COM6 (diagnostic) and HS-NMEA COM5 (NMEA) GPS ports.
However:
a) I CAN connect to mobile phone services – this is fine
b) I CAN NOT see any data coming out of the GPS part of the card.
It seems it is disabled or not setup…
What I would *really* like to do is use the GPS functionality that obviously seems built into the chip. I have contacted Qualcomm who just say ‘contact Sony!!’
Please advise!
5 Trackbacks
[...] nicht korrekt auf die Karte geladen (HS-USB QDLoader), gibt es nun eine Lösung. Die Diskussion und eine Lösung (auf englisch), aber werde das im Laufe das Tages auf meinem Aspire One A150x (G3) testen udn bei [...]
[...] some amazingly enterprising soul figured out the problems, and was not only able to divine how to install the drivers, but then even wrote a schnasty little [...]
[...] found two blogs that helped me get this over the line: The Mobile Broadband Team Blog and Josh Perry’s post about Qualcomm Gobi WWAN Card on Windows [...]
[...] endelig en Windwos 7 netværks driver til min HP Elitebook 6930p og tænkte at så mangler jeg bare driveren til WWAN kortet (link2), men det ser dog endnu ikke ud til at det kører helt efter hensigten, men jeg er dog helt [...]
[...] [...]