Troubleshooting Wireless (WiFi) Connections on Windows CECESD-H-0051
This article provides information and steps towards troubleshooting wireless connectivity between Windows CE devices as a Wireless Access Point (WAP).
One of the most common and recurring questions that we come across is for advice and support on troubleshooting wireless network connectivity. Invariably the advice that we give comes from a standard, well worn hymn sheet. This guide represents all of the steps that you should go through in troubleshooting your problem for yourself before asking for help from the community.
Step 1: Backup your device
Use ActiveSync backup, use a CE utility or use a CF card, but backup your device. It is fairly common to find that you will inadvertently hard reset older devices by frequent insertion/ejection of CF/PC Card equipment, especially if on battery. You may also get to a point where you will have to hard reset the device as part of testing and so having a backup will allow you to continue without taking any chances.
Step 2: Updates
Ensure that you have all of the latest updated for your Windows CE device. Use HPC:Factor's H/PC:Update service to check for and download any necessary driver updates, operating system updates and ROM images for your device.
If you are running Windows CE 2.0 ensure that you are running SP1 and the HPC:Factor NSP before proceeding.
If you are running a Windows CE 2.1x device, make sure that you have installed any PCMCIA driver updates before proceeding.
Step 3: Cardbus
If you are using a Cardbus device having read the article outlined below you can stop troubleshooting.
Step 4: Interface & Interface Type
In almost all cases you will either be using a PC Card or CF Card Wireless NIC. In very rare cases you can try to get a USB dongle working, however we strongly advise you to stick with a PC Card / CF Card as success is extremely unlikely with USB.
If you are using a CF Card, make sure that you are using the card in the CF Slot. Some cards have been known to refuse to work if used in the PC Card slot by way of an adapter but will work when placed into the CF Slot.
If using CF or PC Card, get a torch and look down the CF slot / PC Card slot. See if there are any bent pins or completely imploded pins at the end of the slot. You will see a number of receded pins in a symmetrical fashion. These are fine as the recessed pins provide the power to the card - the idea is that the data and control connections are made before the device is powered, thus ensuring a clean startup. They are usually around half of the height of the data pins.
Step 5: Know your enemy
Make sure that you know the make and model of the card that you are trying to get to work. If possible try and find out the firmware version in use on the card. This information can be obtained by dipping creatively between from device manager in Windows, the sticker on the back of the card and the FCC ID on the back of the card.
If you don't know what the card is, there is no point continuing and no point asking the community for help.
Also find and document the following information:
You will need to ask the your system administrator or access the web configuration interface of the WAP. Alternatively for some industrial devices you will have to use Telnet or SSH to access a CLI to find this information. If at a minimum you don't know what the WAP is running with then you cannot proceed.
Make sure that if you control the WAP, you know how to get into the Web Interface/CLI. Look in the manual, search the Internet or simply try typing in the IP address of the WAP into the address bar of a browser on a machine that does have Internet access on your LAN.
View: FCC ID Search
Step 6: Wireless Protected Access / Wireless Protected Access 2 (WPA/WPA2)
If your WAP is using either WPA or WPA2 read the article below. Also be aware that passphrases in WEP are case sensitive and should be matched exactly between the H/PC and WAP.
Step 7: Wireless Protected Access (WEP)
A recurring problem encountered by users of the WEP protocol is in non-standard hash generation of the WEP Hexadecimal Key. Many routers and H/PC encryption user interfaces will ask you to input a "pass phrase" which will be used to populate the WEP key. It is important that you understand that your pass phrase is NOT the WEP Key. The pass phrase is run through a mathematical hashing algorithm which in turn generates the actual WEP Key. If the algorithm used on the WAP and the H/PC is different, even slightly, it can generate a completely different WEP Key from the pass phrase
Therefore, if you are using WEP always use the WEP Key itself and NOT the pass phrase on the Windows CE device.
In addition, be aware that passphrase generators are case sensitive and that all keys should be entered identically between the WAP and H/PC.
WEP keys are text strings consisting exclusively of 0-9 and A-F. No other characters are permitted as the string is actually a hexadecimal (base 16) number.
You MUST configure your WAP and Handheld PC to use the same WEP key standard. If the WAP uses WEP 128 then the H/PC card and driver must also support this. Find the first common match between the WEP key encryption length on both devices and try it.
As a rule of thumb WEP 40 is infrequently supported by H/PC devices, WEP 64 is almost universally supported and WEP 128 is supported most of the time. WEP 104 and WEP 256 are not known to be supported by any legacy driver and so should not be used.
Step 8: Is the card known to be compatible with Windows CE?
Use the HPC:Factor Hardware Compatibility List to try and find your card. This will tell you if we know the card to be compatible or incompatible with Windows CE and your Windows CE version. If the device is not on the HCL, investigate whether there are formal drivers released by the Original Equipment Manufacturer (OEM) for any Windows CE edition. If there are and we don't have it listed in the HCL please let us know. If you can't find anything on the card, keep reading.
If the card is known to be compatible with Windows CE, there may be a driver for it linked from the HCL. Follow the links and download the driver.
Why do some HCL listings have a download called "inflated"? Inflated files are zip files containing device friendly .cab installation files. Inflated files mean that HPC:Factor has decompressed a host installed for you and posted the drivers onto the HCL in a way that users without ActiveSync or Windows XP (or lower) can access.
In many cases a card will come with a driver download which has been marked as working on Windows CE but in fact is really a Pocket PC driver; it has always been a problem even with OEM's not knowing the difference. These cases are often seen with Chinese brand adapters, but large western OEM's have been just as guilty in the past. Worse than this, the CAB installer on the H/PC may not notify you that the software is incompatible with Windows CE core devices, making the situation even more confusing.
If you find that when loading the application that you receive a unknown application error or a resource error, this is often (but not exclusively) a sign that the driver will not run on the H/PC.
If you find a piece of hardware with an incorrectly labeled driver, please let us know so that we can update the HCL and where possible contact the OEM!
Step 9: Find out the chipset being used
In order to find out of there is even a possibility to get the card working with Windows CE you will need to find out the chipset. Please do not post on the forums asking for us to tell you what the chipset is. All we will do is go to Google with whatever information you can provide and search. You are just as capable of doing that as we are.
A good tip is to try and find a Linux hardware compatibility list, these often contain WiFi chipset information for different pieces of 802.11# hardware.
The most common chipset's are Intersil Prism 2.5, Prism 3.0, Agere and Cisco Aironet.
Step 10: If you know the chipset
If you cannot find an official driver for the card under Windows CE, but you do know the name of the chipset, you can try what is known as a Chipset Reference Driver. These reference drivers were released as samples by the chipset creator to be modified by OEMs to support customisation's to the card and driver user interfaces. HPC:Factor provides downloads for a number of known reference drivers. If you can match the chipset and version number to one of the downloads below there is still hope.
If you are unable to find the chipset information, it may still be worth trying the Prism 2.5, 3.0 and Agere reference drivers for you Windows CE version - you may get lucky. If you have any success please let us know! Please note however that in order to properly test each of them you should hard reset the device between versions as the uninstall process can leave the registry in an inconsistent state.
Drivers and some firmware for Cisco Aironet cards can be found in the HCL.
Start with the recommended reference driver and work up the version numbers. Do not start with the highest version number.
Step 11: Update the firmware
This is step can be complicated, however where it works it can be significant for the following reasons
It may change the hardware ID information on the card to be one that is recognised by a Windows CE driver
It may fix interface bugs that are known to cause incompatibility between the reference driver and the bespoke firmware/driver originally on the card
Note: If you are using a Cisco Aironet card it is stressed heavily in the Aironet documentation that you should match the firmware and driver version being used. As a rule of thumb always update any Aironet card to the latest firmware and use the latest driver irrespective of whether you H/PC already has an older driver in ROM.
Unfortunately it can be very difficult to get hold of firmware for PC Card devices. Do try however; Compaq and Cisco cards are both good examples of where firmware is often available.
Step 12: MiniStumbler
MiniStumbler will not work with all wireless hardware. This isn't a fault of Windows CE, but the reality that ministumbler has to be hard coded to support different chipset and so it is impractical to expect it to work with everything.
MiniStumbler is a SSID scanning utility. It can show you all available SSID's in range of the device including the channel number. This is useful as not all Windows CE drivers have a form of SSID scanner built-in. If compatible it will be able to tell you if the driver can talk to the hardware and is detecting SSID's - in which case you are almost certainly experiencing a software configuration problem and not a hardware of device driver issue.
Ministumbler is a sub-project of the NetStumbler project and is freeware.
Step 13: Location, location, location
Some WAP configuration utilities and drivers allow you to set details surrounding the country you are current located in. This is because the wireless frequency band used differs in some countries. For example in the USA channels 1 - 11 are used, while in France channels 1 - 14 can be used.
Ensure that the locations match on both devices. If you are using a driver that isn't localised, assume that the H/PC is setup to use a the US frequency range and configure your WAP (temporarily) accordingly.
Note: In some countries it is illegal to broadcast on some frequency ranges that are legal in other parts of the world. Do check before altering these settings
Step 14: Your wireless monitor is misleading you, deal with it
The absolute most common problem that we see time and time again is requests where users state that their on device wireless utility states that they are connected, have a good signal, have a good link quality reading but nothing works.
Don't believe anything that the wireless utility is telling you. Most of the time they are very poor quality and are badly written.
The fact that is says you have a connection often means that the card has a carrier and preliminary beacon association with the Wireless Access Point (WAP). It does not mean that you have passed authentication and have a working layer 3 network connection - it means you have a working later 2 data-link connection. A critical difference; but at least you know that the card believes that it is working.
Step 15: vxUtil
The Cambridge Computer Corporation have since the dawn of networking on Windows CE produced a utility called vxUtil. vxUtil provides most of the basic IP suite of utilities associated with the original Unix TCP/IP stack. With these tools you can view the status of TCP/IP on your device and test the network. Amongst others vxUtil provides:
The basic version of vxUtil is completely free and completely safe to install. Do not proceed before you have installed vxUtil and checked the state of your IP configuration. Most users who experience the problem outlined in Step 10 will find - once they have installed vxUtil - that their H/PC is not receiving any layer 3 (IP) network traffic and that DHCP is not able to request an IP address from your DHCP Server / Router.
Step 16: Simplify
Most people see that they have a wireless problem and give up at that point. Use the IT troubleshooting rule of divide and conquer to find the problem. Start in the middle by eliminating as may of the potential problems as possible. The following are recommended steps to perform before asking for help:
If you have been through all 15 steps in this article and you are still having problems, please post on the forums and the community will do its best to help. If you haven't, expect to be referred back to this article!
If in your testing you have concluded that a card does or does not work with a Windows CE version of particular device, please let us know either via the HCL submission form or on the forums, complete with any tips or special steps needed to get the device working. That way we can update the HCL and other members of the community will not have to repeat all of your activities to come to the same conclusion.
With thanks to Rich Hawley for helping with this article.